目录
1. VLOOKUP 函数
用途:
在数据表的最左侧列(首列)中查找指定的值(数据),并返回该行(指定数据所在行)中某一指定列的值(数据)。
语法:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
- lookup_value:要查找的值(可以是单元格引用或直接输入的固定值)。
- table_array:包含数据的整个区域,查找值必须位于该区域的第一列。
- col_index_num:指定当找到匹配行时,从该区域的第几列返回值(第一列为 1)。
- range_lookup:可选参数,填写 TRUE或1(或省略)表示近似匹配,填写 FALSE 或0表示精确匹配。
示例:
假设 A2:C7 是一个员工信息表,第一列为员工编号,第三列为工资。若希望查找单元格 E2 中的编号对应的工资,则公式为:
=VLOOKUP(E2, A2:C7, 3, FALSE)
此公式会在 A2:A7 中查找与 E2 完全匹配的编号,然后返回同一行第 3 列的工资值。
2. HLOOKUP 函数
用途:
与 VLOOKUP
类似,但 HLOOKUP
用于水平查找,即在表格的第一行中查找值,并返回该列中指定行的值。
语法:
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
- lookup_value:要查找的值。
- table_array:数据区域,查找值必须在第一行。
- row_index_num:指定返回值所在的行数(第一行为 1)。
- range_lookup:同
VLOOKUP
,TRUE
或1为近似匹配,FALSE
或0为精确匹配。
示例:
如果数据区域为 A1:F5,第一行为产品名称,第二行为库存,想查找产品名称在单元格 H1 中对应的库存,则公式为:
=HLOOKUP(H1, A1:F5, 2, FALSE)
3. XLOOKUP 函数
功能概述
XLOOKUP
是 Office 365 / Excel 2021 及以后版本中新增的查找函数,它旨在替代 VLOOKUP
、HLOOKUP
以及传统的 INDEX
+MATCH
组合。它既支持精确匹配,也支持模糊匹配,并且不受查找方向的限制(既可以向右也可以向左查找)。
语法:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
- lookup_value:要查找的值,可以是数值、文本或单元格引用。
- lookup_array:待查找的区域或数组,该数组中包含可能匹配的值。
- return_array:当查找到匹配值后,要返回值的区域,返回区域和查找区域的行数(或列数)应一致。
- if_not_found(可选):如果找不到匹配值时返回的内容;如果省略,当没有匹配时将返回 #N/A 错误。
- match_mode(可选):指定匹配方式,常用的有:
- 0:完全匹配
- -1:完全匹配或下一个较小值
- 1:完全匹配或下一个较大值
- 2:使用通配符进行匹配
- search_mode(可选):控制搜索顺序,1 表示从第一项开始搜索,-1 表示从最后一项开始搜索,其他值还可以指定二分搜索等方式。
示例:
假设你有一个产品列表,产品编号在 A2:A10,价格在 B2:B10。你想查找单元格 D2 中的产品编号对应的价格,可以写成:
=XLOOKUP(D2, A2:A10, B2:B10, "未找到", 0)
如果找不到,则返回“未找到”。由于 XLOOKUP 内置了错误处理,因此比传统的 VLOOKUP 更加直观和灵活。
4. LOOKUP 函数
用途:
用于在一个单行或单列中查找数据,然后返回另一数组中相同位置的值。LOOKUP
不仅支持文本和数字查找,还可用于查找近似值,但要求查找数组必须按升序排序。
语法(向量形式):
=LOOKUP(lookup_value, lookup_vector, [result_vector])
- lookup_value:需要查找的值。
- lookup_vector:包含可能查找值的单列或单行。
- result_vector:返回值所在的单列或单行,其位置与
lookup_vector
对应。
示例:
假设 A2:A7 为姓名,C2:C7 为年龄,若要查找 E2 中的姓名对应的年龄,可以写成:
=LOOKUP(E2, A2:A7, C2:C7)
(注意:使用 LOOKUP 时,A2:A7 必须按升序排序,否则可能返回错误结果)
5. INDEX 函数
用途:
返回数组中指定位置的值。INDEX
可用于单行、单列或二维区域。
语法:
=INDEX(array, row_num, [column_num])
- array:数据区域或数组。
- row_num:所需返回值所在的行号。
- column_num:(可选)所需返回值所在的列号;当 array 为二维区域时需指定。
示例:
如果 A2:C7 是一个二维区域,想返回第 4 行第 2 列的内容,则:
=INDEX(A2:C7, 4, 2)
6. MATCH 函数
用途:
在一维数组中查找指定的值,并返回该值在数组中的位置(相对序号)。
语法:
=MATCH(lookup_value, lookup_array, [match_type])
- lookup_value:要查找的值。
- lookup_array:查找范围(通常为一列或一行)。
- match_type:指定匹配类型,0 表示精确匹配,1 表示查找小于或等于 lookup_value 的最大值(数组必须升序),-1 表示查找大于或等于 lookup_value 的最小值(数组必须降序)。
示例:
在 A2:A7 中查找单元格 E2 的值,返回其在区域中的位置:
=MATCH(E2, A2:A7, 0)
7. INDEX 与 MATCH 组合
这两个函数经常结合使用,可以替代 VLOOKUP
进行更加灵活的查找。
组合公式:
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
示例:
使用 A2:A7 为姓名区域,C2:C7 为年龄区域,要查找 E2 中姓名对应的年龄:
=INDEX(C2:C7, MATCH(E2, A2:A7, 0))
这种组合的优点包括可以在任意方向查找(例如查找值不一定必须在最左侧)以及对数据区域结构变化更为稳健。
7. OFFSET 函数
用途:
基于给定的起始引用(top_cell),返回经过指定行、列偏移后的单元格或区域。常用于动态区域引用。
语法:
=OFFSET(reference, rows, cols, [height], [width])
- reference:起始单元格或区域。
- rows:向下(正值)或向上(负值)偏移的行数。
- cols:向右(正值)或向左(负值)偏移的列数。
- height 和 width:(可选)返回区域的高度和宽度。
示例:
若 A1 为起始单元格,想引用从 A1 开始,向下偏移 3 行、向右偏移 2 列的单元格,则公式为:
=OFFSET(A1, 3, 2)
返回的是单元格 C4(如果 A1 为第一行第一列)。
8. XMATCH 函数
功能概述
XMATCH
是与 MATCH
类似的函数,但功能更强大、灵活。它返回指定查找值在数组中的相对位置,并支持从前向后或从后向前的搜索,还可以进行通配符匹配。相比传统 MATCH
,XMATCH
更直观且更易于使用。
语法:
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
- lookup_value:要查找的值。
- lookup_array:待查找的区域(必须为一维数组)。
- match_mode(可选):指定匹配方式,常用参数与 XLOOKUP 类似:
- 0:精确匹配
- -1:精确匹配或查找小于查找值的最大值
- 1:精确匹配或查找大于查找值的最小值
- 2:允许使用通配符匹配
- search_mode(可选):指定搜索方向,1 表示从第一项开始,-1 表示从最后一项开始。
示例:
假设在区域 A2:A10 中查找某个文本“张三”的位置:
=XMATCH("张三", A2:A10, 0)
该函数将返回“张三”在 A2:A10 中的相对位置(例如如果“张三”在第 5 行,则返回 4,因为 A2 是第一项)。
9. ROW 和 COLUMN 函数
ROW 函数
用途: 返回指定单元格的行号。
语法:
=ROW([reference])
示例:
=ROW(A5)
返回 5;如果不提供 reference,则返回公式所在单元格的行号。
COLUMN 函数
用途: 返回指定单元格的列号。
语法:
=COLUMN([reference])
示例:
=COLUMN(D1)
返回 4;同样,不提供 reference 则返回公式所在单元格的列号。
10. CHOOSE 函数
功能概述
CHOOSE
函数根据给定的索引值,从一系列值或数组中返回对应的项。它常用于在多个选项中根据数字选择返回不同的数据,也可以与其他函数结合使用实现动态选择。
语法:
=CHOOSE(index_num, value1, value2, [value3], …)
- index_num:一个数值,表示你希望返回第几项(必须为正整数)。
- value1, value2, …:一个或多个值或表达式,CHOOSE 根据 index_num 返回对应的值。
示例:
假设你想根据一个选择数字返回不同的水果名称:
=CHOOSE(2, "苹果", "香蕉", "橙子")
结果将返回“香蕉”,因为索引 2 对应第二个值。
应用场景:
- 当需要根据用户输入或计算结果在多个选项中切换返回值时,非常方便。
- 可与 XLOOKUP、INDEX 等函数配合,实现更灵活的数据选择和查找操作。