Microsoft Lab
全部软件
Excel查找与引用(Lookup & Reference)约 4 分钟

INDEX and MATCH INDEX 与 MATCH 组合查找

重点内容


函数速查

函数语法用途例子
MATCH=MATCH(lookup_value, lookup_array, [match_type])返回某个值在范围里的位置(第几个)=MATCH(53,B3:B9,0) → 5
INDEX=INDEX(array, row_num)返回范围中指定位置的值=INDEX(E3:E9,5)

VLOOKUP 和 INDEX+MATCH 怎么选

场景用法备注
查找列在最左边,向右取值VLOOKUP写法最简单
查找列不在最左边(要向左查找)INDEX+MATCHVLOOKUP 做不到,见 EP07
表格中间插入/删除列INDEX+MATCHcol_index_num 写死的 VLOOKUP 容易跟着错位
需要用两个条件一起查找INDEX+MATCH见 EP10 双列查找

MATCH 函数:找位置

=MATCH(53,B3:B9,0),在范围 B3:B9 里查找值 53,返回它是第几个(结果是 5)。第三参数设为 0 表示精确匹配。


INDEX 函数:按位置取值

=INDEX(E3:E9,5),在一维范围 E3:E9 里,返回第 5 个位置的值。


组合成 INDEX+MATCH

把 INDEX 里手动写的位置数字(5)换成 MATCH 函数,让位置动态查找:

=INDEX(E3:E9,MATCH(53,B3:B9,0))

比如要查 ID 为 53 的员工薪资:MATCH 先在 ID 列找到 53 的位置,INDEX 再从薪资列取出对应位置的值。

📷 画面提示

员工 ID 列(B3:B9)和薪资列(E3:E9)的示例数据表,标出 MATCH 找到的行位置和 INDEX 最终取值的单元格


进阶应用(后续笔记会分别展开)

  • 双向查找(Two-way Lookup,见 EP04):在二维范围里同时按行和列查找
  • 区分大小写查找(Case-sensitive Lookup,见 EP06):用 INDEX、MATCH 搭配 EXACT
  • 左向查找(Left Lookup,见 EP07):突破 VLOOKUP 只能向右查找的限制
  • 双列查找(Two-column Lookup,见 EP10):同时依据两个条件查找
  • 最接近匹配(Closest Match,见 EP11):用 INDEX、MATCH、ABS、MIN 找最接近的值

学完你会

常见错误

  • MATCH 的第三参数忘记设成 0,导致做的是近似匹配而不是精确匹配,结果找错位置
  • INDEX 和 MATCH 用的范围行数对不上(比如 INDEX 用 E3:E9 但 MATCH 用 B2:B9),导致取到位置错位的值
  • 误以为 INDEX+MATCH 只是 VLOOKUP 的复杂版,忽略了它最大的优势——可以向左查找、可以用两个条件联合查找

Sources

Blog / Website:

  1. Index and Match
只记在你的浏览器里,换设备不会同步。