MICROSOFT

EP03. “INDEX and MATCH INDEX 与 MATCH 组合查找”

首页 Microsoft 工具 Excel · Functions · Lookup & Reference · EP03
约 5 分钟· #EP03#Excel#Lookup & Reference
🔒 登录后可标记已读
  • INDEX+MATCH 是比 VLOOKUP 更灵活的查找组合
  • MATCH 负责「找位置」,INDEX 负责「根据位置取值」
  • 两者搭配可以突破 VLOOKUP 只能向右查找的限制
  • 前置知识建议先看过 EP01 的 VLOOKUP
  • 学完能理解为什么很多进阶用户更喜欢用 INDEX+MATCH 而不是 VLOOKUP

重点内容


函数速查

函数语法用途例子
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 找出一个值在范围里的位置,再用 INDEX 按位置取值
  • ✅ 能组合 INDEX+MATCH 做出比 VLOOKUP 更灵活的查找
  • ✅ 能判断什么场景该用 VLOOKUP,什么场景要改用 INDEX+MATCH

常见错误

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

Sources

Blog / Website:

  1. Index and Match