Excel基本公式及重要函数 2 及 3 —28
一 Excel 基础知识
1. Excel公式、单元格、区域详细信息
2 . 给单元格提供内容的方式:
1)直接输入数据-输入的内容是什么,单元格内容就是什么
2)“=单元格地址”-直接引用单元格内容。
3)“=Excel"-计算公式结果来给单元格提供内容(公式涉及到的数据可以是具体的数据,也可以是引用单元格内容)
4)”=函数调用表达式“-获取函数返回子来填充表格
- 注意:使用excel进行数学运算的时候,可以直接添加具体的内容进行计算,也可以引用单元格进行计算,这两种方法计算下来的结果无异,但是,当对数据内容进行改变的时候,就会出现直接添加的内容无法及时更改计算结果,而引用单元格的选项可以直接会马上更新计算结果。
二、Excel基本公式
2.1 单元格地址引用
引用单元格内容的时候,如果引用地址没有锁定,往下拉单元格行号不断加1,往右拉单元格,列号不断加1,行号列号都没有锁定
-
D1 - 行号、列好都没有锁定
-
$D$1 - 行号列号都锁定
-
D$1 - 行号锁定,列好不锁定
-
$D1 - 列号锁定,行号不锁定。
在单元格格式里面引用的时候,一定要注意确定要锁定行还是列。分析清楚在使用。
2.2 1列 变 多列
-
方法:观察一列数据的行号和列号,以及按照要分成多列的特点,行号,列号有什么特点,再去操作。
-
案例演示:题目要求将一列有100个数据的名字写成无列。
-
解题思路:
- 第一步:观察写成5列数据的地址,排列规律,就清楚每一行是一个公差为20的等差数列,每一列是一个公差为1的等差数列,所有,写好第一行,第二行的两个数据。
- 第二步:利用快速填充,产生所有的数据地址,
- 第三步:查找和替换,点击Ctrl+F查找出需要找的A,点击替换成=A,就可以引用对应数据的内容。
-
操作过程演示
2.3 多列变1列
-
以上一个例题为例,将多列数据转成一列数据。
-
操作步骤:
-
通过引用复制原来的数据
-
在第一列的最后引用第二列第一个数右拖,再往下托(拖100行)
-
选择性粘贴第一列数据的数值,删除多余数据
-
-
案例演示
三 重要函数 — 基本函数
明确的事情
- 调用函数注意事项:
- 调用函数先写等号
- 按提示写,找到需要内容,按tab键后回车,不要补全括号,会报错。
- 所有的函数字母,符号都是在英文状态下的。
1. 文本函数
- 注意:文本函数后缀有B和无B的区别,函数后缀有B的不适用于所有的语言,只有在支持DBCS的语言(支持DBCS语言包括日语,中文(简体)、中文(繁体)、朝鲜语),有后缀名B的是将每个字符按照2个字节计数,否则函数后缀有B的和无B的函数的计算结果是相同的。
(1) LEFT( )
- 用法:LEFT(文本,指定个数的字符 )
- 返回值:查找到的文本内容
- 函数理解:从指定文本字符串的第一个字符开始返回指定个数的字符。
- LEFTB( ),用法一样,不同的是,DBCS语言一个字是两个字符。注意:如果指定字符的个数是奇数个,取出的数据只有(奇数-1)个字符对应的文本数据。
(2)RIGHT( )
- 用法:RIGHT(文本,指定个数的字符 )
- 返回值:查找到的文本内容。
- 函数理解:根据所指定的字符数返回文本字符串中最后一个或多个字符。
- RIGHTB( ),用法一样,不同的是,DBCS语言一个字是两个字符。注意:如果指定字符的个数是奇数个,取出的数据只有(奇数-1)个字符对应的文本数据。
(3)MID( )
- 用法:MID(文本,开始的指定字符start,取指定个数的字num )
- 返回值:查找到的文本内容
- 函数理解:返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。。
- MIDB( ),用法一样,不同的是,DBCS语言一个字是两个字符。注意:如果起始字符是偶数,指定字符的个数是奇数,那么取出的数据的对应的字符数字范围是[start+1,(start+1)+(num-1)]所对应的数据。
(4)LEN( )
- 用法:LEN(文本内容或者单元格位置 )
- 返回值:字符的个数
- 函数理解:返回文本字符串中的字符个数。
- LENB( ),用法一样,返回文本字符串中用于代表字符的字节数。不同的是,DBCS语言一个字是两个字符。
- 可以利用LEN和LENB来计算一个字符串中中文字符的个数。
- 如:LENB(“asib山语城多军”)-LEN(“asib山语城多军”)
- 返回值是5
(5)FIND( )
- 用法:FIND(“指定字符”,“用于定位的文本串” )
- 返回值:字符数。
- 函数理解:用于从一个文本串中定位另一个文本串的起点并返回字符数
- FINDB( ),用法一样,返回文本字符串中用于代表字符的字节数。不同的是,DBCS语言一个字是两个字符。
- 注意:find在查找的时候,区分英文大小写。如FIND(“A”,“asdcdv”) ,返回值会报错,是#value(#value:用于从一个文本串中定位另一个文本串的起点并返回字符数)
(6)SEARCH( )
- 用法:SEARCH(“指定字符”,“用于定位的文本串” )
- 返回值:字符数。
- 函数理解:用于从一个文本串中定位另一个文本串的起点并返回字符数
- SEARCHB( ),用法一样,返回文本字符串中用于代表字符的字节数。不同的是,DBCS语言一个字是两个字符。
- 注意:SEARCH在查找的时候,不区分英文大小写。如SEARCHD(“A”,“asdcdv”) ,返回值是1.
(7)REPLACE( )
-
用法:REPLACE(“指定字符串”,替换的字符数,替换几个字符数,“替换成什么内容写在这个位置“ )
-
返回值:替换后的文本串。
-
函数理解:将旧字符串的指定位置(字符下标)指定字符数的字符串替换为新字符串
-
REPLACEB( ),用法一样,将旧字符串的指定位置(字节下标)指定字节数的字符串替换为新字符串,不同的是,DBCS语言一个字是两个字符。
(8)LOWER( )
-
用法:LOWER(“指定字符串” )
-
返回值:所有字母都是大写的文本串。
-
函数理解:将一个文本字符串中的所有大写字母转换为小写字母。
(9)UPPER( )
-
用法:UPPER(“指定字符串” )
-
返回值:所有字母都是小写的文本串。
-
函数理解:将文本转换为大写字母。
(10)REPT( )
-
用法:REPT(“指定字符串” ,N重复次数)
-
返回值:重复了N次的文本串。
-
函数理解:将文本重复一定次数
(11)SUBSTITUTE( )
- 用法:SUBSTITUTE(“指定字符串” ,“旧文本”,“新文本”)
- 返回值:替换了指定文本的新的文本串。
- 函数理解:在文本字符串中用新文本替换旧文本。
- 注意:REPLACE( ) 与SUBSTITUE( )两个函数的区别是前者是替换指定字符位置的文本,后者是所有的旧文本全部替换,如果需要替换的地方只有一个,那么这两种替换后的结果是一样的,替换文本有多个,就不一样。
(12)TRIM( )
-
用法:TRIM(“指定字符串” )
-
返回值:去掉了多余空格后的新的文本串。
-
函数理解:除了单词之间的单个空格之外,移除文本中的所有空格
-
如:=TRIM(“换 恢 复 市 场 即”)
返回值是:换 恢 复 I36市 场 即(之间只有一个空格)
(13)TEXT( )
-
用法:TEXT(“指定字符串”,自定义显示的格式 )
-
返回值:按照自定义格式设置好的文本串。
-
函数理解:自定义单元格格式(text函数)
-
如:=TEXT(I21,“¥#.00”)
返回值是:¥12.35
(14)VALUE( )
-
用法:VALUE(“文本字符串”,显示为数字 )
-
返回值:数字
-
函数理解:将表示数字的文本字符串转换为数字
-
如:=VALUE(“$1,000”)
返回值是:1000
2 . 数学函数
(1)ABS( )
-
用法:ABS(“指定数字” )
-
返回值:返回数字的绝对值
-
函数理解:取指定数字的绝对值
-
如:=ABS(“-23”)
返回值是:23
(2)INT( )
-
用法:INT(指定数字 )
-
返回值:返回数字
-
函数理解:让指定的数字向小取整,
-
如:=INT(-2.3)
返回值是:3
(3)MOD(被除数,除数 )
-
用法:INT(指定数字 )
-
返回值:返回数字,即余数
-
函数理解:返回两数相除的余数(结果的符号和余数相同)
-
如:=MOD(-10,3)
返回值是:-1
(4)RAND( )
-
用法:INT(指定数字 )
-
返回值:0到1之间的一个小数
-
函数理解:[0,1)之间的随机数,可以取到0
-
注意,不需要传参,只需要调用函数即可。
-
如:=RAND( )
返回值是:0.232456
(5)RANDBETWEEN( )
-
用法:RANDBETWEEN(a,b )
-
返回值:数字
-
函数理解:[a,b]之间的随机整数
-
如:=RANDBETWEEN(1,100)
返回值是:56
(6)ROUND( )
-
用法:ROUND(指定数字,保留几位小数 )
-
返回值:数字
-
函数理解:将数字四舍五入到指定位数
-
如:=ROUND(2.34183,3)
返回值是:2.342
(7)SQRT( )
-
用法:SQRT(指定数字 )
-
返回值:数字
-
函数理解:返回指定数字的算术平方根
-
如:=SQRT(16)
返回值是:4
(8)SUM( )
-
用法:SUM(指定的多个数字/给出求和范围 )
-
返回值:数字
-
函数理解:将单个值、单元格引用或者区域相加,或者将三者的组合相加
-
如:=SUM(10,20,30,40,5,6)
返回值是:111
(9)SUMIF( )
-
用法:SUMIF(条件范围,条件,求和范围 )
-
返回值:数字
-
函数理解:对范围中符合指定条件的值求和
-
注意:
- 条件需要用双引号引起来
- 如果求和范围和条件范围一样,求和范围可以省略。
- 条件中,可以用*号作为通配符,代表任意符号,出现任意次。
- 如果想要*在条件中表示 *本身,而不是通配符,就在 * 号前加~。
-
如:=SUMIF(E16:E19,“>1600000”)
=SUMIF(E16:E19,“>”&G16,F16:F19)
=SUMIF(E28:E33,“水果”,G28:G33)
=SUMIF(F28:F33,“西*”,G28:G33)
=SUMIF(E28:E33,“”,G28:G33) —未指定内容的数据
(10)SUMIFS( )
-
用法:SUMIFS(求和范围,条件范围1,条件1,条件范围2,条件2,…)
-
返回值:数字
-
函数理解:计算满足多条件的全部参数的值
-
注意:不等于的表示方法是<>
-
如:=SUMIFS(E42:E49,F42:F49,“香*”,G42:G49,“卢宁”)
=SUMIFS(E42:E49,G42:G49,“卢宁”,F42:F49,“<>香蕉”)
3 . 统计函数
(1)AVERAGE( )
-
用法:AVERAGE(指定范围 )
-
返回值:平均数
-
函数理解:返回其参数的平均值(求指定范围内容所有数字的和再除以数字的个数)
-
如:=AVERAGE(F1:F4)
(2)AVERAGEA( )
- 用法:AVERAGE(指定范围 )
- 返回值:平均数
- 函数理解:返回其参数的平均值,包括数字、文本和逻辑值(求指定范围内容所有数字的和再除以所有数据的个数)
- 如:=AVERAGE(F1:F4)
- 注意,上述两个求平均数的区别是,第一个只计算数字数据的平均数,第二个是所有数字的和除以该范围内数据的个数。
(3)AVERAGEIF( )
- 用法:AVERAGEIF(指定范围 ,条件)
- 返回值:平均数
- 函数理解:返回区域中满足给定条件的所有单元格的平均值
- 注意:条件必须用英文状态下的双引号。
- 如:=AVERAGEIF(B19:B22,“<23000”)
(4)AVERAGEIFS( )
- 用法:AVERAGEIFS(求平均值范围,条件范围1,条件1,条件范围2,条件2,…)
- 返回值:平均数
- 函数理解:返回区域中满足给定条件的所有单元格的平均值
(5)COUNT( )
-
用法:COUNT(范围 )
-
返回值:数字
-
函数理解:计算参数列表中数字的个数
-
如:=COUNT(F1:F8)
返回值 5
(6)COUNTA( )
-
用法:COUNTA(范围 )
-
返回值:数字
-
函数理解:计算参数列表中值的个数
-
如:=COUNTA(F1:F8)
返回值:8
- 注意:COUNT与COUNTA的区别,前者只统计数字的个数,后者是统计所有数据的个数
(7)COUNTIF( )
-
用法:COUNTIF(统计范围,“条件” )
-
返回值:数字
-
函数理解:计算区域内符合给定条件的单元格的数量
-
如:=COUNTIF(B19:B22,“<23000”)
返回值是:3
(8)COUNTIFS( )
-
用法:COUNTIFS(条件1范围,“条件1”,条件2范围,“条件2”,… )
-
返回值:数字
-
函数理解:计算区域内符合多个条件的单元格的数量
-
如:=COUNTIFS(A29:A34,“<5”,B29:B34,“<2011/5/3”)
返回值是:2
(9)FREQUENCY( )
-
用法:FREQUENCY(统计对象的范围,分箱节点对应的范围 )
-
返回值:频率的分布
-
函数理解:以垂直数组的形式返回频率分布(分箱)
(10)MAX( ) /MIN( )
-
用法:MAX( 范围) /MIN( 范围)
-
返回值:数字
-
函数理解:返回参数列表中的最大(最小)值
-
如:=MAX(F1:F4)
(11)RANK( )
-
用法:RANK( 数值,范围)
-
返回值:数字
-
函数理解:返回一列数字的数字排位(数字排位是相对于列表中其他值的大小)
-
如:=RANK(90,F11:I11)
56 78 90 7 返回 1
(12)RANK.AVG( )
-
用法:RANK.AVG
-
( 数值,范围)
-
返回值:数字
-
函数理解:返回一列数字的数字排位(数字排位是相对于列表中其他值的大小,如果多个值具有相同的排位,则返回平均排位)
-
如:=RANK.AVG(78,F13:J13)
56 78 90 77 78
返回 2.5
(13)RANK.EQ()
-
用法:RANK.EQ( 数值,范围)
-
返回值:数字
-
函数理解:返回一列数字的数字排位,其大小与列表中其他值相关,如果多个值具有相同的排位,则返回该组值的最高排位
-
如:=RANK.EQ(78,F13:J13)
56 78 90 77 78
返回 2
4 . 日期函数
(1)DATE( )
-
用法:DATE(年月日数据)
-
返回值:日期
-
函数理解:根据年、月、日三个数值返回其表示的日期
-
如:=DATE(2022,2,2)
2022/2/2
(2)DATEVALUE( )
-
用法:DATEVALUE(年月日数据)
-
返回值:十进制数字
-
函数理解:返回由文本字符串表示的日期的十进制数字
-
如:=DATEVALUE(“2022/1/1”)
返回值 :44562
(3)TIME( )
-
用法:TIME(时,分,秒)
-
返回值:表示时间
-
函数理解:根据时、分、秒三个数值返回其表示的时间的十进制格式
-
如:=TIME(8,23,12)
返回值 :8:23 AM
(4)TIMEVALUE( )
-
用法:TIME(时,分,秒)
-
返回值:数字
-
函数理解:按照一天的24小时的时间来看,返回由文本字符串表示的时间的十进制数字,占了24小时的多少。
-
如:=TIMEVALUE(“12:12:10”)
返回值 :0.508449074
(5)DAY( )
-
用法:TIME(文本年月日数据)
-
返回值:数字
-
函数理解:返回序列数表示的某月的天数
-
如:=DAY(“2022/7/8”)
返回值 :8
(6)MONTH( )
-
用法:MONTH(文本年月日数据)
-
返回值:数字
-
函数理解:返回序列数表示的某年的月份
-
如:=MONTH(“2022/10/5”
返回值 :10
(7)YEAR( )
-
用法:YEAR(文本年月日数据)
-
返回值:数字
-
函数理解:返回序列数表示的年份
-
如:=YEAR(“2022/9/8”)
返回值 :2022
(8)SECOND( )
-
用法:SECOND(文本时间)
-
返回值:数字
-
函数理解:返回时间值的秒数
-
如:=SECOND(“12:9:23”)
返回值 :23
(9)MINUTE( )
-
用法:MINUTE(文本时间)
-
返回值:数字
-
函数理解:返回时间值的分钟
-
如:=MINUTE(“12:45:23”)
返回值 :45
(10)HOUR( )
-
用法:HOUR(文本时间)
-
返回值:数字
-
函数理解:返回时间值的小时数
-
如:=HOUR(“12:23:45”)
返回值 :12
(11)TODAY( )
-
用法:TODAY( )
-
返回值:日期
-
函数理解:返回当前日期
-
如:=TODAY()
返回值 :2022/8/24
(12)NOW( )
-
用法:NOW( )
-
返回值:日期和时间
-
函数理解:返回当前的日期和时间
-
如:=NOW()
返回值 :2022/8/24 20:58
(13)EDATE( )
-
用法:EDATE( 文本日期或者引用单元格内容,N间隔月数)
-
返回值:日期序列数
-
函数理解:返回与某个日期相隔N个月的日期的序列数
-
如:=EDATE(“1998/3/4”,5))
返回值 :1998/8/4
(14)EOMONTH( )
-
用法:EOMONTH(文本日期或者引用单元格内容,N间隔月数)
-
返回值:日期序列数
-
函数理解:返回与指定日期相隔N个月份数的月份的最后一天
-
如:=EOMONTH(“1990/9/8”,1)
返回值 :1990/10/31
(15)DATEDIF( )
-
用法:DATEDIF( 小一些的文本日期(引用单元格),大一些的文本日期(引用单元格),相差的年/月/日/一年内相差的天数/一年内相差的月数/一月内相差的天数)
-
返回值:年数、天数、月数
-
函数理解:计算两个日期之间的天数、月数、年数
-
如:=DATEDIF(“1990/9/8”,“1992/9/10”,“MD”)
返回值 :2
5 . 逻辑函数
(1)AND( )
-
用法:AND ( 条件1,条件2)
-
返回值:布尔值
-
函数理解:用于测试所有条件是否均为TRUE
-
如:=AND(90>60,34>60)
返回值 :FALSE
(2)OR( )
-
用法:OR ( 条件1,条件2)
-
返回值:布尔值
-
函数理解:用于测试是否有为TRUE的条件
-
如:=OR(90>60,34>60)
返回值 :TRUE
(3)NOT( )
-
用法:NOT ( 条件1)
-
返回值:布尔值
-
函数理解:将TRUE或者False的结果取反
-
如:=NOT(90>60)
返回值 :FALSE
(4)TRUE( )
-
用法:TRUE ( )
-
返回值:TRUE
-
函数理解:返回TRUE
-
如:=TRUE( )
返回值 :TRUE
(5)FALSE( )
-
用法:FALSE( )
-
返回值:FALSE
-
函数理解:返回FALSE
-
如:=FALSE( )
返回值 :FALSE
(6)IF( )
-
用法:IF (条件,条件成立对应的结果,条件不成立对应的结果 )
-
返回值:输入的结果中的一个
-
函数理解:判断单个条件是否为真
-
如:=IF(MOD(12,2)=1,“奇数”,“偶数”)
返回值 :偶数
(7) IFS( )
-
用法:IF (条件1,结果1,条件2,结果2,条件3,结果3,…)
-
返回值:第一个符合条件的值。
-
函数理解:检查是否满足一个或多个条件,且返回第一个符合条件的值
-
注意:后面的结果是在前面条件不成立的时候判断的
-
如:=IFS(K2>60,“及格”,K2<60,“不及格”,K2=60,“刚好及格”)
返回值 :及格
(8) IFERROR( )
-
用法:IF (条件1,结果1,条件2,结果2,条件3,结果3,…)
-
返回值:有异常,返回异常值,无异常,返回正确的值。
-
函数理解:异常捕获,捕获错误值,公式计算结果为错误时返回指定的值;否则,它将返回公式的结果。
-
如:=IFERROR(M2/0,“除数不能为0”)
返回值 :除数不能为0.
(9) SWITCH( )
-
用法:Switch(运算表达式,值1,结果1,值2,结果2,值3,结果3,…)
-
规则:计算运算表达式,计算如果是结是值1,最后的结果就是结果1,如果计算结果是值2,那么最后的结果就是2…
-
函数理解:只能判断计算结果是不是一个具体的值,根据表达式的计算结果返回相应的值。
-
如:=SWITCH(INT(O2/10),9,“优秀”,8,“良好”,7,“合格”,6,“及格”)
返回值 :及格。
6 . 查找与引用函数
(1) COLUMN( )
-
用法:COLUMN (对应数据的单元格行列号)
-
返回值:数字
-
函数理解:返回与列号对应的数字
-
如:=COLUMN(L4)
返回值:12
(2) ROW( )
-
用法:ROW (对应数据的单元格行列号)
-
返回值:数字
-
函数理解:返回与行号对应的数字
-
如:=ROW(L4)
返回值:4
(3) SORT( )
-
用法:SORT (排序序列,排序依据对应的列号,排序方式)
- 排序序列 - 需要排序的对象
- 排序依据对应的列号- 排序时,比较大小对象在排序序列的位置,如果不赋值,默认按照选中数据的第一列数据的大小。
- 排序方式:1表示升序,-1表示降序。
-
返回值:按照一定顺序排好的序列
-
函数理解:对范围内的数据或数组的内容进行排序。
-
如:=SORT(E16:F29,2,-1)
(4) SORTBY( )
-
用法:SORTBY (排列序列范围,第一排列范围,排序方式,第二排序范围,排序方式,第三排序范围,排序方式3,…)
-
排序序列 — 需要排序的对象
-
第一排列标准 — 依据的是哪一个列
-
第二排序标准----依据那一列数据的排序方式,(在第一排序范围的数据出现相同的时候,会启用第二排序标准)。
-
第几排序标准都是对前面排序相同数据进行排序的参考标准。
-
排序方式:1表示升序,-1表示降序。
-
返回值:按照一定顺序排好的序列
-
函数理解:对范围内的数据或数组的内容进行排序。当有相同数据,排序的时候,会参照第二排序标准,第三排序标准。
-
如:=SORTBY(E33:G43,F33:F43,-1,G33:G43,1)
-
(5) UNIQUE( )
-
用法:UNIQUE(去重对象,行列去重方式,去重方式)
- 去重对象-----提供需要去重的一行或者一列数据范围,
- 行列去重方式----去重对象是一列数据,按行去重(false–默认)、去重对象是一行数据按列去重(True)
- 去重方式---->False(默认),返回原数据去掉重复数据后的结果,True---->直接返回数据中没有出现重复的数据。
- 一列数据,一个数据占一行,所以是唯一行。
-
如:=UNIQUE(L16:L29,FALSE)
(6) GETPIVOTDATA()
- 返回数据透视表中的可见数据
(7) LOOKUP( )
-
用法:LOOKUP(查找对象,查找对象在原数据所在的列,查找结果所在的列)
-
函数理解:在一行或者一列中查找某个值并从另一行或者列中找到同位置的值。
-
注意:使用LOOKUP做数据查询的时候,必须保证查询数据所在的列中,查找对象前面的数据必须是有序的(升序或降序)。如果是无序的,那么就是查找出来的是错误结果
LOOKUP(查找对象,查找范围(包括对象和结果的范围,也可以只写查对象所在的范围),结果范围)。
(8) VLOOKUP( )
-
用法:VLOOKUP(查找对象,同时包含查找对象和结果的序列,结果在前面给的序列中所在的列号,查找方式)
-
查找对象-----双引号引起来的。
-
查找对象在原数据所在的列及结果所在的范围,查找结果所在的列数。
-
查找方式:
TRUE------近似匹配,在查找对象所在的列本身是有序的时候使用。
FALSE-------精确查找,在查找对象所在的列本身是无序的时候使用。
-
如果结果所在的列在查找对象的前面,那么就无法查找到数值。
-
-
函数理解:按行查找表格或区域内容
(9) XLOOKUP( )
-
用法:XLOOKUP(查找对象,查找对象所在的lie(的范围),结果所在的列(范围),找不到返回值,匹配模式选择)
- 在查找对象所在的列本身是无序或有序的时候都可以找到数据。
- 如果找不到对应的对象,可以设置返回值内容。
- 匹配模式:精确匹配
- 注意:xlookup是万能的,可以按行或列进行查找,无论是查找对象前的数据是否有序。对象和结果的数据是否顺序对应正常,都可以找到结果。
-
函数理解:按行查找表格或区域内容
(10)HLOOKUP( )
- 用法:HLOOKUP(查找对象,查找范围,查找对象的结果在第几行,匹配方式)