首页 / 公式 / Excel INDEX MATCH 查表
查找 Excel + Google Sheets

Excel INDEX MATCH 查表

MATCH 找出某个值在清单里的位置,INDEX 按位置从区域取值。把 MATCH 放进 INDEX 里,就得到一个不在乎数据方向的查表公式——键在右边时,VLOOKUP 给不了这个答案。

INDEX MATCH 的语法

=INDEX(返回区域, MATCH(要查找的值, 查找区域, 0))

这是把两个函数叠在一起用:MATCH 报告「第几格」,INDEX 返回那个位置上的值。只有组合起来才是一次查找,单看任何一半都不成立。

1 INDEX 第 1 个参数:返回区域
必填

要取出的值所在的那一列(或那一行),例如 C2:C5。它不必包含键列,在左边或右边都可以。

2 MATCH 的 3 个参数
必填

要查找的值、要搜索的区域(键列)、以及匹配方式。匹配方式必须写 0(精确匹配);省略会变成 1(近似匹配),顺序一乱就返回错的列。

查表示例

键在左侧时,用 INDEX MATCH 取出产品单价。

产品代码品名单价
SKU-101键盘49.00
SKU-102鼠标19.50
SKU-103显示器24.99
SKU-104扩展坞89.00
=INDEX(C2:C5, MATCH("SKU-103", A2:A5, 0))

MATCH 返回 3(SKU-103 在 A2:A5 的第 3 行),INDEX 再取 C2:C5 的第 3 格,得到 24.99。返回区域一次指明,单价在左边还是右边都不影响结果。

同时用行与列定位(二维查找)

要同时用行标题与列标题定位时,放两个 MATCH:第一个找行,第二个找列。

业务员Q1Q2Q3
小王120150180
小李90110140
小陈200180210
=INDEX(B2:D4, MATCH("小李", A2:A4, 0), MATCH("Q3", B1:D1, 0))

行的 MATCH 返回 2(小李)、列的 MATCH 返回 3(Q3),于是取 B2:D4 的第 2 行第 3 列,得到 140。因为行与列分开找,把表换个顺序也不会坏。

与 VLOOKUP 的对比

同一个查找用 VLOOKUP 写,要指定「从键列往右数第几列」。差别就在这里——也是插入列时会不会出事的关键。

维度VLOOKUPINDEX MATCH
查找方向只能往键的右侧左右皆可
插入列列号跟着偏移,悄悄算错指明区域,不受影响
返回列的写法从键列数起的列号直接指明返回区域
可读性短较长,但意图明确
旧版 Excel可用可用(XLOOKUP 不可用)

列多、或这张表还有人持续加列时,INDEX MATCH 更安全。列少、只查一次,VLOOKUP 的短就是优点。若环境支持 XLOOKUP,能一个式子同时写返回值与找不到时的默认值,XLOOKUP 最短。

INDEX MATCH 最常踩的 4 个陷阱

1. 忘了写 MATCH 的匹配方式

只写 MATCH(要查找的值, 区域) 时,匹配方式是 1(近似匹配),区域没有升序排列就会返回不相干的行。永远把 0 写上。

2. INDEX 与 MATCH 的区域行数不一致

INDEX 用 C2:C5 却在 A2:A6 里找,位置就会整体偏移一格。两个区域要同行数、同起始行;若想用整张表,就把 INDEX 的行号补上偏移。

3. 要查找的值与键的类型不同

一边是文本 "103"、另一边是数字 103,就对不上。这是导入 CSV 之后最常见的症状,先统一一边的类型(VALUE 或 TEXT)再查。

4. 数组多条件只按 Enter

MATCH(1, (A2:A6="北区")*(B2:B6="Q3"), 0) 会产生数组。旧版 Excel 必须按 Ctrl+Shift+Enter,只按 Enter 会得到 #N/A 或 1。

Excel 与 Google Sheets

Microsoft Excel (365 / Desktop)

Excel 的 INDEX 有 3 个参数(区域、行、列),MATCH 也有 3 个(要查找的值、区域、匹配方式)。Excel 365 的数组多条件可直接按 Enter。INDEX 省略行或列时,会返回整列或整行。

Google Sheets

Google Sheets 语法相同,区域写法也是 A2:A5,因此 Excel 写好的公式几乎可以原样贴过去。

INDEX MATCH 实战:取出键左侧的值

在下方锁定迷你表格里,用 INDEX 加 MATCH 完成查找。这正是 VLOOKUP 到不了的方向。

打开独立练习题页
题目说明
提示 0/4
官方解法 2
–
测试用例
1
2
3
重置
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在加载交互式电子表格...
正在准备单元格数据与公式求解引擎
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。

INDEX MATCH 练习

用 INDEX 与 MATCH 从键的左侧或部分文本取出值。公式要随每一行变化,不能写死。

常见问题

INDEX MATCH 和 VLOOKUP 差在哪里?

VLOOKUP 只能往键的右侧取值,而且公式里存的是列号,插入一列就会悄悄算错。INDEX MATCH 直接指明返回区域、另外找位置,所以左右都能查,插入列也不会坏。

有 XLOOKUP 了还需要学 INDEX MATCH 吗?

需要。Excel 2019 及更早版本没有 XLOOKUP,与同事共用文件、或在 Google Sheets 协作时也常遇到。面试仍会问,财务模板也大量使用这个写法。

INDEX MATCH 怎么做多条件查询?

可以拼接键(=INDEX(C2:C6, MATCH(A2&B2, D2:D6&E2:E6, 0))),或用数组写法 =INDEX(C2:C6, MATCH(1, (A2:A6="北区")*(B2:B6="Q3"), 0))。旧版 Excel 的数组写法要按 Ctrl+Shift+Enter,Excel 365 与 Sheets 不用。