在 Excel 里做数据查找,很多人只会用 VLOOKUP。但一旦遇到反向查找、插入列报错、多条件匹配,VLOOKUP 直接 “罢工”。真正能解决 90% 查找难题、兼容所有 Excel 版本的,其实是这对黄金组合 ——INDEX+MATCH。
一、为什么说 INDEX+MATCH 是 “万能查找”?
- 兼容低版本 Excel,没有 XLOOKUP、FILTER 也能用
- 突破限制:支持反向查找(从右往左查)
- 更稳定:插入 / 删除列,公式不会乱
- 速度更快:大数据量下计算效率更高
- 学会它,等于掌握 Excel查找引用核心逻辑
二、先拆两个函数:看懂一个,就全会了
1. INDEX:按坐标 “取数”
作用:告诉你在哪个区域、第几行、第几列,它就把对应值给你。
公式: INDEX(取数区域, 第几行, 第几列)
例:按姓名提取白居易的总分:

- 单行取数:
=INDEX(B8:H8,0,7) - 单列取数:
=INDEX(H5:H12,4,0) - 区域取数:
=INDEX(B5:H12,4,7)
一句话总结:INDEX 只管 “拿结果”。
2. MATCH:找位置的 “导航仪”
作用:找到目标在区域里是第几个,返回数字序号。
公式: MATCH(找什么, 在哪一行/一列找, 0精确匹配)
例:提取李白所在的行号和列号
- 找姓名在第几行:
=MATCH(J6,D5:D12,0) - 找表头在第几列:
=MATCH(J6,B4:H4,0)
一句话总结:MATCH 只管 “报位置”。
备注:MATCH 查找范围只能选择单行或者单列。
三、组合起来:INDEX+MATCH 才是真王者
逻辑非常简单:先用 MATCH 定位,再用 INDEX 取值。
公式: INDEX(数据区域, MATCH(找行), MATCH(找列))
例:分三种情况:
- 按单行取数:=INDEX(B8:H8,,MATCH(L4,B4:H4,0))
- 按单列取数:=INDEX(H4:H11,MATCH(K8,D4:D11,0))
- 按区域取数:=INDEX(B4:H11,MATCH(K11,D4:D11,0),MATCH(L10,B4:H4,0))
四、4 个经典案例,直接复制套用
案例 1:单条件查找(完美替代 VLOOKUP)
例:根据姓名查总分:
index+match 公式: =INDEX($I$2:$I$9,MATCH(K3,$D$2:$D$9,0))
vlookup 公式:=VLOOKUP(K3,$D$2:$I$9,6,FALSE)
优点:插入列不会出错,比 VLOOKUP 更稳。
案例 2:反向查找(VLOOKUP 做不到)
例:班级在左,姓名在右,通过姓名查找班级(从右往左查)
index+match 公式: =INDEX(C2:C9,MATCH(K2,D2:D9,0))
xlookup 公式:=XLOOKUP(K2,D2:D9,C2:C9)
vlookup 公式:=VLOOKUP(K2,IF({1,0},D2:D9,C2:C9),2,FALSE)
优点:xlookup 有版本要求,vlookup 公式难以理解, index+match 无版本要求,不用 IF ({1,0}) 绕弯,简单直接。
案例 3:多条件交叉查找(工作高频)
例:按姓名 + 科目交叉查分数:
公式: =INDEX($B$2:$H$9,MATCH($J3,$D$2:$D$9,0),MATCH(K$2,$B$2:$H$2,0))
公式写好后, 向右 + 向下拖动,自动匹配所有数据
案例 4:匹配最高分 / 最低分
例:查语文第一名是谁:
公式: =INDEX($D$2:$D$9,MATCH(MAX(E2:E9),E2:E9,0))
查倒数第一: =INDEX($D$2:$D$9,MATCH(MIN(E2:E9),E2:E9,0))
五、记住 INDEX+MATCH
- MATCH:找第几行、第几列
- INDEX:根据行号列号拿数据
- 组合公式: INDEX(区域, MATCH(行条件,区域,0), MATCH(列条件,区域,0))