原文:https://www.jianshu.com/p/d7cc9314195f
在学习数据分析回顾EXCEL函数过程中,本着输出是第一学习力的原则,给自己挖下了整理函数的坑,但我却花了3天才爬出这个坑,抹泪~。在整理的过程中,也发现一些平时用不到的三角函数等,考虑生命时间的宝贵就果断舍弃了。本文主要汇总的是EXCEL常用函数,并根据自己的习惯分为七大类,见下图:
说明:函数的介绍和用法,主要来自微软帮助。在我刚接触EXCEL函数的时候,主要也是通过微软帮助和百度学习的。所以,各位对下述总结如有不明之处,试着百度搜索,特别是百度经验和一些知名的OFFICE论坛有更多的案例可供大家学习理解。
第一类:文本处理函数
Trim函数:
- 作用:除了单词之间的单个空格之外,移除文本中的所有空格。
- 语法:TRIM(text),Text为必需项,为要移除空格的文本。
Concatenate函数:
- 作用:将两个或多个文本字符串联接为一个字符串。
- 语法:CONCATENATE(text1, [text2], ...),至少包含一个项目,最多255个项目,最多支持8192个字符,项目可以是文本值、数字、或单元格引用。
- 说明:可以利用连接符&实现相同的功能。
Replace函数:
- 作用: 将特定位置的字符串替换为不同的文本字符。
- 语法:REPLACE(old_text, start_num, num_chars, new_text),old_text为需要替换的文本,start_num替换字符的位置,num_chars利用new_text替换的字符数,new_text要替换old_text的新文本。
Substitue函数:
- 作用:在某一文本字符串中替换指定的文本
- 和Replace区别:Substitue根据文本内容进行替换,Replace根据字符位置进行替换。
- 语法:SUBSTITUTE(text, old_text, new_text, [instance_num]),text为包含需要替换的文本,old_text为需要替换的文本,new_text为替换old_text的文本,instance_num为可选参数,指定了数字则只替换相应顺序的old_text,否则全部替换。
Left函数:
- 作用:从文本字符串的第一个字符开始返回指定个数的字符。
- LEFT(text, [num_chars]),text包含要提取的字符,num_chars为指定要提取的自负数量,必须≥0,如果大于文本长度,则返回全部文本,如果省略则假定其值为1。
Right函数:
- 用法同Left,只是取数方向相反,从右侧开始取数。
Mid函数:
- 作用:从指定位置开始提取特定数目的字符
- 语法:MID(text, start_num, num_chars),text包含要提取字符的文本,start_num文本中要提取第一个字符的位置,num_chars希望提取的字符个数。
第二类:信息反馈函数
Exact函数:
- 作用:比较两个文本字符串,如果它们完全相同,则返回 TRUE,否则返回 FALSE。 函数 EXACT 区分大小写,但忽略格式上的差异。 使用 EXACT 可以检验在文档中输入的文本。
- 语法:EXACT(text1, text2),text1和text2两个需要比较的字符串。
Len函数:
- 作用:返回文本中字符的个数,一般和其他函数配合使用。
- 语法:LEN(text),text为需要查询长度的文本,空格将作为字符进行计数。
IS函数:
- 作用:此类函数可检验指定值并根据结果返回 TRUE 或 FALSE。 在对某一值执行计算或执行其他操作之前,可以使用 IS 函数获取该值的相关信息。
- 语法:ISBLANK(value),ISERR(value),ISERROR(value),ISLOGICAL(value),ISNA(value),ISNONTEXT(value),ISNUMBER(value),ISREF(value),ISTEXT(value)。value指的是要测试的值。 参数 value 可以是空白(空单元格)、错误值、逻辑值、文本、数字、引用值,或者引用要测试的以上任意值的名称。
第三类:查找引用函数
Vlookup函数:
- 作用:在表格区域中按行查找对应内容。
- 语法:VLOOKUP(要查找的值,要在其中查找值的区域,区域中包含返回值的列号,精确匹配或近似匹配 – 指定为 0/FALSE 或 1/TRUE)。
- 视频:微软VLOOKUP函数培训课程
- 注意事项:要查找的值需要始终位于所在区域的第一列
Hlookup函数:
- 作用:在表格中按列查找对应内容。
- 语法:HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup]),参数和VLOOKUP相对应,第三个参数为行号,VLOOKUP第三个参数为列号。
Index函数:
- 作用:返回表格或区域中的值或值的引用
- 语法:INDEX(array, row_num, [column_num]),array单元格区域或数组常量,row_num为数组的某行,column_num为数组中的某列。除此之外还有引用的形式,感兴趣的话可以自行百度或使用微软帮助。
- 视频:微软INDEX函数培训课程
- 说明:如果使用参数row_num和column_num,则INDEX函数返回行列号交叉处单元格的值;如果将row_num设置为0,则返回整列数值的值,对column同样适用;若要输入数组公式,需要在公式输入完后,按Ctrl + Shift + Enter。
Match函数:
- 作用:在范围单元格中搜索特定的项,然后返回该项在此区域中的相对位置。
- 语法:MATCH(lookup_value, lookup_array, [match_type]),lookup_value要查找的值,look_arrary单元格区域,match_type=1或省略,查找≤lookup_value的最大值,lookup_arrary需要升序排列;=0,查找完全等于lookup_value的第一个值;=-1,查找≥lookup_value的最小值,lookup_arrary需要降序排列。
- 视频:微软MATCH函数培训课程
- 说明:MATCH不区分大小写字母,可以再lookup_value使用?或,?匹配任意单个字符,匹配任意一串字符,如果要查找实际的问号或者星号,需要在字符前添加~。
Search函数:
- 作用:函数可在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。
- 语法:SEARCH(find_text,within_text,[start_num]),find_text为需要查找的文本,with_text包含要查找的文本,start_num为从开始搜索的字符编号。
- 说明:SEARCH不区分大小写,FIND函数区分大小写,可以使用通配符?和*。
Find函数:
- FIND函数区分大小写,并且不能使用通配符,其他用法和SEARCH函数一致。
Choose函数:
- 作用:根据参数返回数值参数列表中的数值。
- 语法:CHOOSE(index_num, value1, [value2], ...),index_num指选定的数值参数,介于1到254之间,index_num为1则返回value1,为2则返回value2...
- 示例:SUM(CHOOSE(2,A1:A10,B1:B10,C1:C10))=SUM(B1:B10)
Row / Column函数:
- ROW([reference])返回引用的行号,COLUMN([reference])返回引用的列号,如果reference省略,则返回该函数所在位置的行/列号。
Offset函数:
- 作用:返回对单元格或单元格区域中指定行数和列数的区域的引用。
- 语法:OFFSET(reference, rows, cols, [height], [width]),reference为偏移量的参考位置,rows偏移的行数,cols偏移的列数,height和width为指定返回的行高和列宽。
- 说明:引用的位置不能超过工作表边缘;省略height和width,则其高宽和reference相同。
Indirect函数:
- 作用:返回文本字符串指定的引用
- 语法:INDIRECT(ref_text, [a1]),ref_text对单元格的引用,如果对另一个工作簿引用,则引用的工作簿必须已打开。a1为true或省略,则为A1样式,否则为R1C1样式。
Address函数:
- 作用:根据指定行号和列号获得工作表中的某个单元格的地址,如ADDRESS(2,3) 返回 2。
- 语法:ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text]),row_num为行号,column_num为列号,abs_num可以用来指定返回的引用类型,=1或省略返回绝对值;=2返回绝对行号,相对列号;=3返回相对行号,绝对列号;=4返回相对值。a1的用处同INDIRECT函数中参数介绍。sheet_text用于指定外部引用的工作表的名称。
第四类:逻辑运算函数
If函数:
- 作用:对值和期待值进行逻辑比较
- 语法:IF(logical_test, value_if_true, [value_if_false]),当logical_test成立时,返回value_if_true,当logical_test不成立时,返回value_if_false。IF函数最多嵌套64个。
Iferror函数:
- 作用:如果公式的计算结果错误,则返回您指定的值;否则返回公式的结果。 使用 IFERROR 函数可捕获和处理公式中的错误。
- 语法:IFERROR(value, value_if_error),value为要检查的值,value_if_error为在value为错误时返回的值,错误类型包括:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、 #NAME? 或 #NULL!。
Ifna函数:
- 作用:如果公式返回错误值 #N/A,则结果返回您指定的值;否则返回公式的结果。
- 语法:IFNA(value, value_if_na),和IFERROR语法相同,只是检查的错误值范围不同。
And函数:
- 用于确定测试中的所有条件是否均为 TRUE。
Or函数:
- 用于确定测试中的任一条件是否为TRUE。
Not函数:
- 对其参数的逻辑求反。
第五类:数学统计函数
Sum函数:
- 作用:可以将单个值、单元格引用或是区域相加,或者将三者的组合相加。
- 语法:SUM(number1,[number2],...)
Sumif函数:
- 作用:对符合条件的值求和,例如,对B2~B25单元格大于5的值求和,可以使用公式=SUMIF(B2:B25,">5")
- 语法:SUMIF(range, criteria,[sum_range]),range为需要计算的区域,字符数不能超过255个;criteria求和的条件,可以使用通配符?和*;sun_range为可选条件,指定实际求和的区域。
- 视频:微软SUMIF函数培训课程
Sumifs函数:
- 作用:用于计算其满足多个条件的全部参数的总量。
- 语法:SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) ,sum_range要求和的区域,criteria_range1为条件区域1,criteria1为对区域1进行条件限定的条件1,之后的参数以此类推。
Sumproduct函数:
- 作用:在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
- 语法:SUMPRODUCT(array1, [array2], [array3], ...),array1 / array2...为对其相应元素进行相乘并求和的几组数组参数,数组参数需要具有相同的维数,非数值型数组元素将作为0处理。
Count函数:
- 作用:计算包含数字的单元格个数以及参数列表中数字的个数。
- 语法:COUNT(value1, [value2], ...),value1为要计算数字个数的第一项、单元格应用或区域,value2可选参数,作用同value1。
- 说明:参数为数字、日期、代表数字的文本(如“1”)、逻辑值和直接键入参数列表中的数字将被计算在内。
Countif函数:
- 作用:用于统计满足某个条件的单元格的数量
- 语法:COUNTIF(range,criteria),类似SUMIF初级使用方法
Countifs函数:
- 作用:将条件应用于跨多个区域的单元格,然后统计满足所有条件的次数。
- 语法:COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2],…),criteria_range1为条件区域1,criteria1为对criteria_range1指定的限定条件1,其他以此类推。
Counta函数:
- 作用:计算不为空的单元格的个数。
- 语法:COUNTA(value1, [value2], ...),value1表示要计数区域,value2可选参数,作用同value1。
Countblank函数:
- COUNTBLANK(range)计算选中区域的空单元格个数。
Max / Min函数:
- MAX(number1, [number2], ...),MIN(number1, [number2], ...)计算选中区域的最大值和最小值。
Rank函数:
- 作用:返回一列数字的数字排位, 数字的排位是其相对于列表中其他值的大小。
- 语法:RANK(number,ref,[order]),number需要排位的数字;ref数字排列的数组;order可选参数,=0或省略降序排列,=不为零升序排列。
Rand函数:
- 作用:返回大于等于 0 且小于 1 的均匀分布随机实数,每次计算工作表时都将返回一个新的随机实数。
- 语法:RAND(),如要产生a与b之间的随机实数,可用公式RAND()*(b-a)+a
Randbetween函数:
- 作用:返回位于两个指定数之间的一个随机整数。 每次计算工作表时都将返回一个新的随机整数。
- 语法:RANDBETWEEN(bottom, top),bottom将返回的最小整数,top将返回的最大整数。比如RANDBETWEEN(1,100)=RAND()*99+1将返回1-100之间的随机数。
Average函数:
- 作用:返回参数的平均值(算术平均值)。
- 语法:AVERAGE(number1, [number2], ...),number1为求平均值的区域,number2为可选参数,作用等同number1。
Subtotal函数:
- 作用:返回列表或数据库中的分类汇总。
- 语法:SUBTOTAL(function_num,ref1,[ref2],...),function_num为数字1-11或101-111,用于指定要为分类汇总使用的函数。如果使用1-11,将包括手动隐藏的行;如果使用101-111,则排除手动隐藏的行;始终排除已筛选掉的单元格。
第六类:日期时间函数
Datedif函数:
- 作用:计算两个日期间隔的年数、月数、天数,常用于计算年龄的公式中。
- 语法:DATEDIF(start_date,end_date,unit),start_date表示起始日期,end_date表示结束日期。日期值的输入方式有多种:带引号的文本字符串(例如:"2001/1/30")、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE("2001/1/30"))。
- 说明:日期存储为可用于计算的序列号。默认情况下,1899 年 12 月 31 日的序列号是 1,而 2008 年 1 月 1 日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。
Networkdays函数:
- NETWORKDAYS(start_date, end_date, [holidays])返回两个日期之间的工作日个数。
Now函数:
- 作用:返回当前的日期和时间,每次打开工作表时间会更新。
- 语法:NOW(),无参数。
- 说明:1.Excel 可将日期存储为序列号,以便可以在计算中使用它们。 默认情况下,1900 年 1 月 1 日的序列号为 1,2008 年 1 月 1 日的序列号为 39,448,这是因为它距 1900 年 1 月 1 日有 39,447 天。2.序列号中小数点右边的数字表示时间,左边的数字表示日期。 例如,序列号 0.5 表示时间为中午 12:00。3.NOW 函数的结果仅在计算工作表或运行含有该函数的宏时才改变。
Today函数:
- 作用:返回当前日期,在打开工作簿自动更新日期,常用于计算年龄等。
- 语法:TODAY(),无参数。
Weekday函数:
- 作用:返回对应日期为一周中第几天
- 语法:WEEKDAY(serial_number,[return_type]),Serial_number 一个序列号,代表尝试查找的那一天的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。Return_type可选参数,用于确定返回值类型的数字。
Weeknum函数:
- 作用:返回日期的周数
- 语法:WEEKNUM(serial_number,[return_type]),Serial_number 必需。 代表一周中的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。Return_type可选参数,确定星期从哪一天开始,默认值为 1。
Date函数:
- 作用:将三个独立的值合并为一个日期
- 语法:DATE(year,month,day),year年,month月,day天
Year / Month / Day函数:
- 参数为日期,分别可以得到年月日信息。
Hour / Minute / Second函数:
- 参数为时间,分别可以得到小时、分钟、秒。
Time函数:
- 将三个独立的值合并为一个时间,功能类似DATE函数。
第七类:格式显示函数
Text函数:
- 作用:将数字按指定方式显示,常和其他函数配合使用,例如合并文本数值,需要数值以特定的格式显示,这时候可以使用TEXT函数。
- 语法:TEXT(Value you want to format, "Format code you want to apply")
Upper / Lower函数:
- UPPER(text)、LOWER(text)可以分别将text以大写和小写字母的形式输出。
Proper函数:
- 将文本字符串的首字母转换成大写,将其余字母转换为小写。
Roud函数:
- 作用:将数字四舍五入到指定的位数。
- 语法:ROUND(number, num_digits),number要四舍五入的数字,num_digits需要四舍五入运算的位数,>0四舍五入到指定的小数位数,=0四舍五入到最接近的整数,<0四舍五入到小数点左边相应位数。
Roudup函数:
- RANDUP语法同RAND,只是采用的使用将数字向上舍入而非四舍五入。
Rouddown函数:
- RANDDOWN语法同RAND,只是采用的是将数字向下舍去而非四舍五入。
Rept函数:
- 作用:将文本重复指定次数,一般用于在单元格填充文本字符串。
- 语法:REPT(text, number_times),text需要重复显示的文本,number_times需要重复的次数。
Fixed函数:
- 作用:将数字舍入到指定的小数位数,使用句点和逗号,以十进制数格式对该数进行格式设置,并以文本形式返回结果。
- 语法:FIXED(number, [decimals], [no_commas]),number要进行四舍五入并转换为本文的数字,decimals(可选)小数点右边的位数,no_commas(可选)逻辑值,如果为TRUE则会禁止FIXED返回的文本包含逗号。
总结
至此,EXCEL七大类常用函数介绍完毕。关于本文,如有不明之处,欢迎和大家探讨交流。
最后,附上几个EXCEL常用帮助/学习网址:
百度经验
微软官方EXCEL帮助
ExcelHome