Excel——常用函数二
常用函数
- 一、查找与引用函数
- 1.1、VLOOKUP(列查找内容)
- 1.2、HLOOKUP(行查找内容)
- 1.3、INDEX(引用)
- 1.4、MATCH(匹配并返回相对位置)
- 1.5、INDIRECT(返回引用)
- 二、文本函数
- 2.1、LEFT(左侧截取)
- 2.2、RIGHT(右侧截取)
- 2.3、MID(中间截取)
- 2.4、FIND(查找子串)
- 2.5、SEARCH(子串位置)
- 2.6、LEN(文本长度)
- 2.7、CONCAT(合并文本)
- 2.8、TEXTJOIN(文本组合)
- 2.9、SUBSTITUTE(文本替换)
- 2.10、REPLACE(文本替换)
- 2.11、TRIM(移除空格)
一、查找与引用函数
1.1、VLOOKUP(列查找内容)
- 作用:搜索表区域首列满足条件的元素,确定待检索单元格在区域中的行序号,再进一步返回选定单元格的值。默认情况下,表是以升序排序的
- 语法:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
- 参数:
Lookup_value
: 需要在数据表首列进行搜索的值,可以是数值、引用或字符串Table_array
: 要在其中搜索数据的文字、数字或逻辑值表。Table_array 可以是对区域或区域名称的引用Col_index_num
: 应返回其中匹配值的 table_array 中的列序号。表中首个值列的序号为 1Range_lookup
: 逻辑值: 若要在第一列中查找大致匹配,请使用 TRUE 或省略;若要查找精确匹配,请使用 FALSE
需要在表格或区域中按行查找内容时,请使用 VLOOKUP。 例如,按部件号查找汽车部件的价格,或根据员工 ID 查找员工姓名。在这一最简单的形式中,VLOOKUP 函数表示:
=VLOOKUP(要查找的内容、要查找的位置、包含要返回的值的范围内的列号、返回表示为 1/TRUE 或 0/FALSE 的近似或精确匹配项)
需要四条信息才能构建 VLOOKUP 语法:
- 要查找的值,也被称为查阅值。
- 查阅值所在的区域。 请记住,查阅值应该始终位于所在区域的第一列,这样 VLOOKUP 才能正常工作。 例如,如果查阅值位于单元格 C2 内,那么您的区域应该以 C 开头。
- 区域中包含返回值的列号。 例如,如果指定 B2:D11 作为区域,那么应该将 B 算作第一列,C 作为第二列,以此类推。
- 可选)如果需要返回值的近似匹配,可以指定 TRUE;如果需要返回值的精确匹配,则指定 FALSE。 如果没有指定任何内容,默认值将始终为 TRUE 或近似匹配。
现在将上述所有内容集中在一起,如下所示:
=VLOOKUP(查找值,包含查找值的范围,包含返回值的范围中的列号,近似匹配 (TRUE) 或精确匹配 (FALSE))。
1.2、HLOOKUP(行查找内容)
- 作用:搜索数组区域首行满足条件的元素,确定待检索单元格在区域中的列序号,再进一步返回选定单元格的值
- 语法:
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
- 参数:
Lookup_value
: 需要在数据表首行进行搜索的值,可以是数值、引用或字符串Table_array
: 需要在其中搜索数据的文本、数据或逻辑值表。Table_array 可为区域或区域名的引用Row_index_num
: 满足条件的单元格在数组区域 table_array 中的行序号。表中第一行序号为 1Range_lookup
: 逻辑值: 如果为 TRUE 或忽略,在第一行中查找最近似的匹配;如果为 FALSE,查找时精确匹配
1.3、INDEX(引用)
数组形式:
返回表元素或数组元素的值,该元素是通过行号和列号索引选定的。当函数 INDEX 的第一个参数为数组常量时,使用数组形式。
- 语法:
INDEX(array, row_num, [column_num])
- 参数:
array
必需。 单元格区域或数组常量。- 如果数组只包含一行或一列,则相对应的参数 row_num 或 column_num 为可选参数。
- 如果数组有多行和多列,但只使用 row_num 或 column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。
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 函数作为数组公式。
引用形式:
返回指定的行与列交叉处的单元格引用。 如果引用由不连续的选定区域组成,可以选择某一选定区域。
- 语法:
INDEX(reference, row_num, [column_num], [area_num])
- 参数:
reference
必需。 对一个或多个单元格区域的引用。- 如果为引用输入一个不连续的区域,必须将其用括号括起来。
- 如果引用中的每个区域均只包含一行(或一列),则 row_num(或 column_num)为可选参数。 例如,对于单行的引用,可以使用函数 INDEX(reference,column_num)。
row_num
必需。 引用中某行的行号,函数从该行返回一个引用。Column_num
可选。 引用中某列的列标,函数从该列返回一个引用。area_num
可选。 选择要返回 row_num 和 column_num 的交叉点的引用区域。 选择或输入的第一个区域的编号为 1,第二个的编号为 2,依此类推。 如果省略 area_num,则 INDEX 使用区域 1。 此处列出的区域必须全部位于一张工作表。 如果指定的区域不位于同一个工作表,将导致 #VALUE!。 错误。 如果需要使用的范围彼此位于不同工作表,建议使用函数 INDEX 的数组形式,并使用其他函数来计算构成数组的范围。 例如,可以使用 CHOOSE 函数计算将使用的范围。
1.4、MATCH(匹配并返回相对位置)
- 作用:在 范围 单元格中搜索特定的项,然后返回该项在此区域中的相对位置。 例如,如果 A1:A3 区域中包含值 5、25 和 38,那么公式 =MATCH(25,A1:A3,0) 返回数字 2,因为 25 是该区域中的第二项。
- 语法:
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。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, … 等等。
1.5、INDIRECT(返回引用)
- 作用:返回由文本字符串指定的引用。 此函数立即对引用进行计算,并显示其内容。 如果需要更改公式中对单元格的引用,而不更改公式本身,请使用函数 INDIRECT。
- 语法:
INDIRECT(ref_text, [a1])
- 参数:
Ref_text
必需。 对包含 A1 样式引用、R1C1 样式引用、定义为引用的名称或作为文本字符串引用的单元格的引用的引用。 如果ref_text不是有效的单元格引用,INDIRECT 将返回 #REF! 错误值。- 如果ref_text引用另一个工作簿 (外部引用) ,则必须打开另一个工作簿。 如果源工作簿未打开,INDIRECT 将返回 #REF! 错误值。
- 如果ref_text引用的单元格区域超出了行限制 1,048,576 或列限制 16,384 (XFD) ,INDIRECT 将返回 #REF! 错误。
A1
可选。 一个逻辑值,用于指定包含在单元格 ref_text 中的引用的类型。- 如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。
- 如果 a1 为 FALSE,则将 ref_text 解释为 R1C1 样式的引用。
二、文本函数
2.1、LEFT(左侧截取)
- 作用:从文本字符串的第一个字符开始返回指定个数的字符。
- 语法:
LEFT(text, [num_chars])
- 参数:
text
必需。 包含要提取的字符的文本字符串。num_chars
可选。 指定要由 LEFT 提取的字符的数量。- Num_chars 必须大于或等于零。
- 如果 num_chars 大于文本长度,则 LEFT 返回全部文本。
- 如果省略 num_chars,则假定其值为 1。
2.2、RIGHT(右侧截取)
- 作用:根据所指定的字符数返回文本字符串中最后一个或多个字符。
- 语法:
RIGHT(text,[num_chars])
- 参数:
text
必需。 包含要提取字符的文本字符串。num_chars
可选。 指定希望 RIGHT 提取的字符数。- Num_chars 必须大于或等于零。
- 如果 num_chars 大于文本长度,则 RIGHT 返回所有文本。
- 如果省略 num_chars,则假定其值为 1。
2.3、MID(中间截取)
- 作用:返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。
- 语法:
MID(text, start_num, num_chars)
- 参数:
text
必需。 包含要提取字符的文本字符串。start_num
必需。 文本中要提取的第一个字符的位置。 文本中第一个字符的 start_num 为 1,以此类推。- 如果 start_num 大于文本长度,则 MID 返回空文本 (“”)。
- 如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
- 如果start_num小于 1,则 MID 返回 #VALUE! 错误值。
num_chars
MID 是必需的。 指定希望 MID 从文本中返回字符的个数。- 如果num_chars为负数,则 MID 返回 #VALUE! 错误值。
2.4、FIND(查找子串)
- 作用:在第二个文本字符串中查找一个文本字符串,并返回第一个文本字符串从第二个文本字符串的第一个字符开始位置的编号。
- 语法:
FIND(find_text, within_text, [start_num])
- 参数:
find_text
必需。 要查找的文本。within_text
必需。 包含要查找文本的文本。start_num
可选。 指定开始进行查找的字符。 within_text 中的首字符是编号为 1 的字符。 如果省略 start_num,则假定其值为 1。
- 备注:
- FIND 区分大小写,不允许使用通配符。 如果不想执行区分大小写的搜索或使用通配符,可以使用 SEARCH。
- 如果 find_text 为空文本 (“”),则 FIND 会匹配搜索字符串中的首字符(即编号为 start_num 或 1 的字符)
- Find_text 不能包含任何通配符。
- 如果within_text中未显示find_text,FIND 将返回 #VALUE! 错误值。
- 如果start_num不大于零,FIND 将返回 #VALUE! 错误值。
- 如果start_num大于within_text的长度,FIND 将返回 #VALUE! 错误值。
- 可以使用 start_num 来跳过指定数目的字符。 以 FIND 为例,假设要处理文本字符串“AYF0093.YoungMensApparel”。 若要在文本字符串的说明部分中查找第一个“Y”的编号,请将 start_num 设置为 8,这样就不会搜索文本的序列号部分。 FIND 从第 8 个字符开始查找,在下一个字符处找到 find_text,然后返回其编号 9。 FIND 始终返回从 within_text 的起始位置计算的字符编号,如果 start_num 大于 1,则会对跳过的字符计数。
2.5、SEARCH(子串位置)
- 作用:在第二个文本字符串中查找一个文本字符串,并返回第一个文本字符串从第二个文本字符串的第一个字符开始位置的编号。
- 语法:
SEARCH(find_text,within_text,[start_num])
- 参数:
find_text
必需。 要查找的文本。within_text
必需。 要在其中搜索 find_text 参数的值的文本。start_num
可选。 within_text 参数中从之开始搜索的字符编号。
- 备注:
- SEARCH 函数不区分大小写。 如果要执行区分大小写的搜索,可以使用 FIND。
- 可以在 find_text 参数中使用通配符 (问号 (?) 和星号 (*)) 。 问号匹配任意单个字符;星号匹配任意一串字符。 如果要查找实际的问号或星号,请在字符前键入波形符 (~)。
- 如果未找到 find_text 的值,则 #VALUE! 错误值。
- 如果省略了 start_num 参数,则假设其值为 1。
- 如果 start_num 不大于 0 (零) 或大于 within_text 参数的长度,则 #VALUE! 错误值。
2.6、LEN(文本长度)
- 作用:返回文本字符串中的字符个数。
- 语法:
LEN(text)
- 参数:
text
必需。 要查找其长度的文本。 空格将作为字符进行计数。
2.7、CONCAT(合并文本)
- 作用:合并来自多个区域和/或字符串的文本,但它不提供分隔符或 IgnoreEmpty 参数。
- 语法:
CONCAT(text1, [text2],…)
- 参数:
text1
要联接的文本项。 字符串或字符串数组,如单元格区域。text2, ...
要联接的其他文本项。 文本项最多可以有 253 个文本参数。 每个参数可以是一个字符串或字符串数组,如单元格区域。
由于此函数允许整列和整行引用,所以它将返回以下结果:A’sa1a2a4a5a6a7B’sb1b2b4b5b6b7
2.8、TEXTJOIN(文本组合)
- 作用:将多个区域和/或字符串的文本组合起来,并包括你在要组合的各文本值之间指定的分隔符。 如果分隔符是空的文本字符串,则此函数将有效连接这些区域。
- 语法:
TEXTJOIN(delimiter, ignore_empty, text1, [text2], …)
- 参数:
delimiter
必需 文本字符串,或者为空,或用双引号引起来的一个或多个字符,或对有效文本字符串的引用。 如果提供一个数字,则将被视为文本。ignore_empty
必需 如果为 TRUE,则忽略空白单元格。text1
必需 要联接的文本项。 文本字符串或字符串数组,如单元格区域中。text2, ...
可选 要联接的其他文本项。 文本项最多可以包含 252 个文本参数 text1。 每个参数可以是一个文本字符串或字符串数组,如单元格区域。
2.9、SUBSTITUTE(文本替换)
- 作用:在文本字符串中用 new_text 替换 old_text。 如果需要在某一文本字符串中替换指定的文本
- 语法:
SUBSTITUTE(text, old_text, new_text, [instance_num])
- 参数:
text
必需。 需要替换其中字符的文本,或对含有文本(需要替换其中字符)的单元格的引用。old_text
必需。 需要替换的文本。new_text
必需。 用于替换 old_text 的文本。Instance_num
可选。 指定要将第几个 old_text 替换为 new_text。 如果指定了 instance_num,则只有满足要求的 old_text 被替换。 否则,文本中出现的所有 old_text 都会更改为 new_text。
2.10、REPLACE(文本替换)
- 作用:根据指定的字符数,REPLACE 将部分文本字符串替换为不同的文本字符串。
- 语法:
REPLACE(old_text, start_num, num_chars, new_text)
- 参数:
old_text
必需。 要替换其部分字符的文本。start_num
必需。 old_text 中要替换为 new_text 的字符位置。num_chars
必需。 old_text 中希望 REPLACE 使用 new_text 来进行替换的字符数。new_text
必需。 将替换 old_text 中字符的文本。
2.11、TRIM(移除空格)
- 作用:除了单词之间的单个空格之外,移除文本中的所有空格。
- 语法:
TRIM(text)
- 参数:
text
必需。 要从中移除空格的文本。