Excel查找函数(三):INDEX+MATCH
- 2026-09-22 13:42:00
讲讲Excel中INDEX+MATCH查找函数
前两期我们讲了 VLOOKUP 和 XLOOKUP。VLOOKUP 入门友好,但只能从左往右找;XLOOKUP 功能强大,但需要 Excel 365 或 2021 及以上版本。今天要讲的 INDEX+MATCH,能够在所有版本的 Excel 和 WPS 中运行,而且查找方向完全自由。
INDEX+MATCH 组合函数
概念
INDEX 和 MATCH 严格来说不是一个函数,而是两个函数配合使用。MATCH 负责“找位置”,INDEX 负责“取内容”。
这两个函数单独用意义不大,但组合在一起,就能实现比 VLOOKUP 更灵活的查找。
MATCH 函数语法
公式 =MATCH(查找值, 查找区域, 匹配方式)
MATCH 的作用是返回查找值在指定区域中排第几个位置。注意:查找区域必须是一行或一列,不能是多行多列的区域。
第1个参数:查找值(找什么)
可以是文本、数字或单元格引用。
第2个参数:查找区域(在哪找)
MATCH 执行查找的范围,比如 A:A 或 A2:A100。
关键点:这个区域必须是一维的——要么一行,要么一列。如果你给的是 B2:D10 这种多行多列的区域,MATCH 会报错。
第3个参数:匹配方式(精确找还是近似找)
0:精确匹配——必须找到完全一致的值才返回结果,找不到返回 #N/A。
1:近似匹配——返回小于等于查找值的最大值,要求查找区域按升序排列。
-1:近似匹配——返回大于等于查找值的最小值,要求查找区域按降序排列。
INDEX 函数语法
公式 =INDEX(数据区域, 行号, 列号)
INDEX 的作用是返回指定区域中第几行第几列交叉位置的值。
第1个参数:数据区域(从哪取)
就是 INDEX 要取值的范围,比如 C:C 或 C2:C100。
第2个参数:行号(取第几行)
告诉 INDEX 要返回区域里的第几行。
关键点:这个行号通常就是 MATCH 返回的结果。
第3个参数:列号(取第几列,可选)
如果第1个参数是单列区域(比如 C:C),列号可以省略不写。如果是多列区域,才需要指定列号。
组合语法
公式 = INDEX(返回区域, MATCH(查找值, 查找列, 0))
先用 MATCH 在“查找列”里找到值在第几行,再用 INDEX 在“返回区域”里取那一行的数据。
场景
你有一份员工信息表,A列是姓名,B列是部门,C列是基本工资。现在你要在另一张表中,根据姓名查找出对应的工资。

第1步
先用MATCH函数找出姓名在对应的表格A列的所在第几行。

第2步
再用INDEX函数返回姓名所对应的那一行的工资数据。

二维交叉查找
INDEX+MATCH还可以进行二维交叉查找,也就是行号与列号交叉的单元格的数据。比如根据“产品名称”和“月份”,查找某个产品在某个月的价格。这就是二维交叉查找。
公式 =INDEX(数据区域, MATCH(行查找值, 行区域, 0), MATCH(列查找值, 列区域, 0))
场景
现在有一张产品每个月的价格表。

第1步
先用第1个MATCH函数找出产品对应的第几行。
第2步
再用第2个MATCH函数找出月份对应的第几列。
第3步
最后用INDEX函数,根据获得的行列取出对应的价格。

总结
INDEX+MATCH 是老版本 Excel 中比较灵活的查找方案,相比 VLOOKUP,它的方向自由、不怕插列、多条件查找也更直观。我们已经讲了足够多的函数,下期我们可以讲一讲一些更实际的案例。