01最常用的十个excel函数
01x01 SUM 函数
SUM函数将为值求和。 你可以将单个值、单元格引用或是区域相加,或者将三者的组合相加。
例如:
=SUM(A2:A10) 将单元格 A2:10中的值相加。
=SUM(A2:A10, C2:C10) 将单元格 A2:10以及单元格 C2: C10 中的值相加。
语法
SUM(number1,[number2],…)
参数名称 | 说明 |
---|---|
number1 必需 | 要相加的第一个数字。 该数字可以是 4 之类的数字,B6 之类的单元格引用或 B2:B8 之类的单元格范围。 |
number2-255 可选 | 这是要相加的第二个数字。 可以按照这种方式最多指定 255 个数字。 |
与直接用+号求和相比的优势
- 若引用的单元格中含有非数字(文本)值,则直接相加的公式会中断,从而产生 #VALUE! 错误。 SUM 将忽略文本值,只给出数字值的求和结果。
- 如果删除了行或列,直接相加的公式将不会更新来排除已删除的行,并且会返回 #REF! 错误,而这种情况下 SUM 函数将会自动更新。
- 插入行或列时,直接相加的公式不会更新引用,SUM 函数将自动更新(前提是添加的行位于公式中引用的区域之内)。
01x02 IF 函数
IF 函数是 Excel 中最常用的函数之一,它可以对值和期待值进行逻辑比较。
因此 IF 语句可能有两个结果。 第一个结果是比较结果为 True,第二个结果是比较结果为 False。
例如,=IF(C2=”Yes”,1,2) 表示 IF(C2 = Yes, 则返回 1, 否则返回 2)。
语法
IF(logical_test, value_if_true, [value_if_false])
参数名称 | 说明 |
---|---|
logical_test (必需) | 要测试的条件。 |
value_if_true (必需) | logical_test 的结果为 TRUE 时,您希望返回的值。 |
value_if_false (可选) | logical_test 的结果为 FALSE 时,您希望返回的值。 |
注意: 如果要在公式中使用文本,需要将文字用引号括起来(例如“Text”)。 唯一的例外是使用 TRUE 和 FALSE 时,Excel 能自动理解它们。 |
01x03 LOOKUP 函数
查找的区域必须按升序排列,查找的维度从较宽的一侧开始
向量形式
LOOKUP 的向量形式在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。
语法
LOOKUP(lookup_value, lookup_vector, [result_vector])
参数名称 | 说明 |
---|---|
lookup_value 必需 | LOOKUP 在第一个向量中搜索的值。Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用 |
lookup_vector 必需 | 只包含一行或一列的区域。 lookup_vector 中的值可以是文本、数字或逻辑值。 |
result_vector 可选 | 只包含一行或一列的区域。 result_vector 参数必须与 lookup_vector 参数大小相同。 其大小必须相同。 |
注意: |
- lookup_vector 中的值必须按升序排列:…, -2, -1, 0, 1, 2, …, A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。
- 如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。
- 如果 lookup_value 小于 lookup_vector 中的最小值,则 LOOKUP 会返回 #N/A 错误值。
数组形式
LOOKUP 的数组形式在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列中同一位置的值。 当要匹配的值位于数组的第一行或第一列中时,请使用 LOOKUP 的这种形式。
语法
LOOKUP(lookup_value, array)
参数名称 | 说明 |
---|---|
lookup_value 必需 | LOOKUP 在数组中搜索的值。 lookup_value 参数可以是数字、文本、逻辑值、名称或对值的引用。 |
array 必需 | 包含要与 lookup_value 进行比较的文本、数字或逻辑值的单元格区域。 |
注意: |
- 如果数组包含宽度比高度大的区域(列数多于行数)LOOKUP 会在第一行中搜索 lookup_value 的值。
- 如果数组是正方的或者高度大于宽度(行数多于列数),LOOKUP 会在第一列中进行搜索。
- 数组中的值必须按升序排列:…, -2, -1, 0, 1, 2, …, A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。
- 如果 LOOKUP 找不到 lookup_value 的值,它会使用数组中小于或等于 lookup_value 的最大值。
- 如果 lookup_value 的值小于第一行或第一列中的最小值(取决于数组维度),LOOKUP 会返回 #N/A 错误值。
01x04 VLOOKUP 函数
当需要在表格或区域中按行查找项目时,请使用 VLOOKUP。
= VLOOKUP (你想要查找的内容,要查找的位置,包含要返回的值的区域中的列号,返回近似或精确匹配-表示为 1/TRUE 或 0/假)。
语法
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
参数名称 | 说明 |
---|---|
lookup_value (必需) | 要查找的值。 要查找的值必须位于您在table_array参数中指定的单元格区域的第一列中。 |
Table_array (必需) | VLOOKUP 在其中搜索 lookup_value 和返回值的单元格区域。 你可以使用命名区域或表,并且可以在参数中使用名称,而不是单元格引用。 |
col_index_num (必需) | 包含返回值的列号(从1开始的table_array的最左侧列)。 |
range_lookup (可选) | 一个逻辑值,该值指定希望 VLOOKUP 查找近似匹配还是精确匹配:近似匹配-1/TRUE假设表中的第一列按数值或字母顺序排序(不要求升序或降序排列),然后将搜索最接近的值。 这是未指定值时的默认方法。 例如,= VLOOKUP (90,A1: B100,2,TRUE)。完全匹配-0/FALSE将搜索第一列中的确切值。 例如,= VLOOKUP (“Smith”,A1: B100,2,FALSE)。 |
注意:
- 查阅值应该始终位于所在区域的第一列,这样 VLOOKUP 才能正常工作
- (可选参数)如果需要返回值的近似匹配,可以指定 TRUE;如果需要返回值的精确匹配,则指定 FALSE。 如果没有指定任何内容,默认值将始终为 TRUE 或近似匹配。
- 要获得准确的结果,请尝试使用 CLEAN 函数或 TRIM 函数删除单元格中表格值后后面的后置空格。
01x05 MATCH 函数
使用 MATCH 函数在范围单元格中搜索特定的项,然后返回该项在此区域中的相对位置。
语法
MATCH(lookup_value, lookup_array, [match_type])
参数名称 | 说明 |
---|---|
lookup_value 必需 | 要在 lookup_array 中匹配的值。参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。 |
lookup_array 必需 | 要搜索的单元格区域。(必须是单列、单行区域) |
match_type 可选 | 数字 -1、0 或 1。 match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。 此参数的默认值为 1 |
下表介绍该函数如何根据 match_type 参数的设置查找值
Match_type | 行为 |
---|---|
1 或省略;从后向前查找 | MATCH 查找小于或等于 lookup_value 的最大值。 lookup_array 参数中的值必须以升序排序,例如:…-2, -1, 0, 1, 2, …, A-Z, FALSE, TRUE。 |
0 ;从前向后查找 | MATCH 查找完全等于 lookup_value 的第一个值。 lookup_array 参数中的值可按任何顺序排列。 |
-1从前向后查找 | MATCH 查找大于或等于 lookup_value 的最小值。 lookup_array 参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, …2, 1, 0, -1, -2, … 等等。 |
注意:
- 匹配文本值时,MATCH 函数不区分大小写字母。
- (如果 match_type 为 0 且 lookup_value 为文本字符串,您可在 lookup_value 参数中使用通配符 - 问号 (?) 和星号 (*) 。 问号匹配任意单个字符;星号匹配任意一串字符。 如果要查找实际的问号或星号,请在字符前键入波形符 (~)。
0x06 CHOOSE 函数
使用 index_num 返回数值参数列表中的数值。 使用 CHOOSE 可以根据索引号从最多 254 个数值中选择一个。
语法
CHOOSE(index_num, value1, [value2], …)
参数名称 | 说明 |
---|---|
index_num 必需 | 用于指定所选定的数值参数。 index_num 必须是介于 1 到 254 之间的数字,或是包含 1 到 254 之间的数字的公式或单元格引用。 |
value1, value2, … Value1 是必需的,后续值是可选的 | 1 到 254 个数值参数,CHOOSE 将根据 index_num 从中选择一个数值或一项要执行的操作。 参数可以是数字、单元格引用、定义的名称、公式、函数或文本。 |
注意:
- 如果 index_num 为小数,则在使用前将被截尾取整。
- 如果 index_num 为一个数组,则在计算函数 CHOOSE 时,将计算每一个值。可以作为VLOOKUP、INDEX等函数的输入参数。
- 如果 index_num 小于 1 或大于列表中最后一个值的索引号,则 CHOOSE 返回 #VALUE! 错误值。
0x07 DATE 函数
如果需要采用三个单独的值并将它们合并为一个日期,请使用 Excel 的 DATE 函数。
语法
DATE(year,month,day)
参数名称 | 说明 |
---|---|
Year 必需 | year 参数的值可以包含一到四位数字。Excel 将根据计算机正在使用的日期系统来解释 year 参数。默认情况下,Microsoft Excel for Windows 使用的是 1900 日期系统,这表示第一个日期为 1900 年 1 月 1 日。 |
Month 必需 | 一个正整数或负整数,表示一年中从 1 月至 12 月(一月到十二月)的各个月。 |
Day 必需 | 一个正整数或负整数,表示一月中从 1 日到 31 日的各天。 |
注意-year参数: |
- 为避免出现意外结果,请对 year 参数使用四位数字。例如,“07”可能意味着“1907”或“2007”。因此,使用四位数的年份可避免混淆。
- 如果 year 介于 0(零)到 1899 之间(包含这两个值),则 Excel 会将该值与 1900 相加来计算年份。例如,DATE(108,1,2) 返回 2008 年 1 月 2 日 (1900+108)。
- 如果 year 介于 1900 到 9999 之间(包含这两个值),则 Excel 将使用该数值作为年份。例如,DATE(2008,1,2) 将返回 2008 年 1 月 2 日。
- 如果 year 小于 0 或大于等于 10000,则 Excel 返回 错误值 #NUM!。
注意-month参数:
- 如果 month 大于 12,则 month 会从指定年份的第一个月开始加上该月份数。例如,DATE(2008,14,2) 返回表示 2009 年 2 月 2 日的序列数。
- 如果 month 小于 1,则 month 会从指定年份的第一个月开始减去该月份数,然后再加上 1 个月。例如,DATE(2008,-3,2) 返回表示 2007 年 9 月 2 日的序列号。
注意-day参数:
- 如果 day 大于指定月中的天数,则 day 会从该月的第一天开始加上该天数。例如,DATE(2008,1,35) 返回表示 2008 年 2 月 4 日的序列数。
- 如果 day 小于 1,则 day 从指定月份的第一天开始减去该天数,然后再加上 1 天。例如,DATE(2008,1,-15) 返回表示 2007 年 12 月 16 日的序列号。
0x08 DAYS 函数
返回两个日期之间的天数。
语法
DAYS(end_date, start_date)
参数名称 | 说明 |
---|---|
End_date 必需 | End_date 是用于计算期间天数的截止日期。 |
Start_date 必需 | Start_date 是用于计算期间天数的起始日期。 |
注意:
- 如果两个日期参数为数字,DAYS 使用 EndDate–StartDate 计算两个日期之间的天数。
- 如果任何一个日期参数为文本,该参数将被视为 DATEVALUE(date_text) 并返回整型日期,而不是时间组件。
- 如果日期参数是超出有效日期范围的数值,DAYS 返回 #NUM! 错误值。
- 如果日期参数是无法解析为字符串的有效日期,DAYS 返回 #VALUE! 错误值。
0x09 FIND、FINDB 函数
函数 FIND 和 FINDB 用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。
FIND 适用于使用单字节字符集 (SBCS) 的语言,而 FINDB 适用于使用双字节字符集 (DBCS) 的语言。 您的计算机上的默认语言设置对返回值的影响方式如下:
- 无论默认语言设置如何,函数 FIND 始终将每个字符(不管是单字节还是双字节)按 1 计数。
- 当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,FINDB 会将每个双字节字符按 2 计数。 否则,FINDB 会将每个字符按 1 计数。
支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。
语法
FIND(find_text, within_text, [start_num])
FINDB(find_text, within_text, [start_num])
参数名称 | 说明 |
---|---|
find_text 必需 | 要查找的文本。 |
within_text 必需 | 包含要查找文本的文本。 |
start_num 可选 | 指定开始进行查找的字符。 within_text 中的首字符是编号为 1 的字符。 如果省略 start_num,则假定其值为 1。 |
注意:
- FIND 和 FINDB 区分大小写,并且不允许使用通配符。 如果您不希望执行区分大小写的搜索或使用通配符,则可以使用 SEARCH 和 SEARCHB 函数。
- 如果 find_text 为空文本 (“”),则 FIND 会匹配搜索字符串中的首字符(即编号为 start_num 或 1 的字符)。
- Find_text 不能包含任何通配符。
- 如果 find_text 未显示在 within_text 中, 则 FIND 和 FINDB 返回 #VALUE! 。
- 如果 start_num 不大于零, 则 FIND 和 FINDB 返回 #VALUE! 。
- 如果 start_num 大于 within_text 的长度, 则 FIND 和 FINDB 返回 #VALUE! 。
- 可以使用 start_num 来跳过指定数目的字符。 FIND 始终返回从within_text 的起始位置计算的字符编号,如果 start_num 大于 1,则会对跳过的字符计数。
0x10 INDEX 函数
INDEX 函数返回表格或区域中的值或值的引用。
数组形式
返回表或数组中元素的值,由行号和列号索引选择。
当函数 INDEX 的第一个参数为数组常量时,使用数组形式。
语法
INDEX(array, row_num, [column_num])
参数名称 | 说明 |
---|---|
array 必需 | 单元格区域或数组常量。 |
row_num 必需,除非存在 column_num | 选择数组中的某行,函数从该行返回数值。 如果省略 row_num,则需要 column_num。 |
column_num 可选 | 选择数组中的某列,函数从该列返回数值。 如果省略 column_num,则需要 row_num。 |
注意:数组形式 |
- 如果同时使用 row_num 和 column_num 参数,则 INDEX 返回位于 row_num 和 column_num 交叉处的单元格中的值。
- row_num 和 column_num 必须指向数组内的单元格;否则,INDEX 将返回 #REF! 错误。
- 如果将 row_num 或 column_num 设置为0(零),则 INDEX 将分别返回整列或整行的值的数组。 若要使用以数组形式返回的值,请以数组公式的形式输入 INDEX 函数。
- 如果数组只包含一行或一列,则相应的 row_num 或 column_num 参数是可选的。
引用形式
返回指定的行与列交叉处的单元格引用。 如果引用由非相邻的选项组成,则可以选择要查找的选择内容。
语法
INDEX(reference, row_num, [column_num], [area_num])
参数名称 | 说明 |
---|---|
reference 必需 | 对一个或多个单元格区域的引用。 |
row_num 必需 | 引用中某行的行号,函数从该行返回一个引用。 |
column_num 可选 | 引用中某列的列标,函数从该列返回一个引用。 |
area_num 可选 | 选择一个引用区域,从该区域中返回 row_num 和 column_num 的交集。 选择或输入的第一个区域的编号为1,第二个区域为2,依此类推。 如果省略 area_num,则 INDEX 使用区域1。 |
注意:引用形式
- 如果要为引用reference输入非相邻区域,请将引用括在括号中。
- 如果引用中的每个区域仅包含一行或一列,则 “row_num” 或 “column_num” 参数分别是可选的。 例如,对于单行的引用,可以使用函数 INDEX(reference,column_num)。
- 如果将 row_num 或 column_num 设置为0(零),则 INDEX 将分别返回整列或整行的引用。
- row_num、column_num 和 area_num 必须指向引用中的单元格;否则,INDEX 将返回 #REF! 错误。 如果省略 row_num 和 column_num,则 INDEX 返回由 area_num 指定的引用中的区域。
- area_num 列出的区域必须位于一个工作表上。 如果你指定的区域不在同一工作表上,它将导致 #VALUE! 错误。 如果需要使用彼此位于不同工作表上的区域,建议使用 INDEX 函数的数组形式,并使用另一个函数计算构成数组的区域。 例如,可以使用 CHOOSE 函数计算将使用的范围。
- 函数 INDEX 的结果为一个引用,且在其他公式中也被解释为引用。 根据公式的需要,函数 INDEX 的返回值可以作为引用或是数值。