INDEX/MATCH 组合把“定位行”和“返回结果”拆成两步。它不要求查找列位于返回列左侧,适合需要反向查找或需要兼顾旧版 Excel 的工作簿。
完整公式
A2 保存客户编号,客户表 A 列是编号,D 列是名称:
A2 为 C004 时,公式返回“青禾设计”。MATCH 先得到 C004 在编号区域中的相对位置,INDEX 再从名称区域同一位置取值。
先单独理解 MATCH
第三个参数 0 表示精确匹配。如果 C004 位于编号区域第 4 个位置,MATCH 返回 4。这个 4 是区域内的位置,不是工作表绝对行号。
再让 INDEX 返回内容
这条公式会返回名称区域中的第 4 项。将固定数字 4 替换为 MATCH 公式,就能根据输入编号动态返回结果。
反向查找为什么可行
INDEX 的返回区域和 MATCH 的查找区域互相独立。无论返回列在编号列左边还是右边,只要两个区域的起止行一致,都可以正确匹配。相比之下,VLOOKUP 只能在选定区域的第一列查找。
| 需要返回的字段 | INDEX 返回区域 |
|---|---|
| 客户名称 | 客户表!$D$2:$D$11 |
| 城市 | 客户表!$C$2:$C$11 |
| 客户等级 | 客户表!$E$2:$E$11 |
最容易出现的区域错位
如果查找区域是 A2:A11,返回区域却是 D3:D12,两个区域虽然都有 10 行,但起始行错开了一行,结果会整体偏移。建议选择区域后检查首行和末行,并用 F4 锁定。
INDEX 和 MATCH 在较早版本的 Excel 中已经存在。向不确定版本的同事发送文件时,这一组合通常比 XLOOKUP 更稳妥。
处理未找到结果
可以使用 IFNA 只处理 #N/A:
IFNA 不会隐藏 #REF! 等其他错误,更适合保留公式结构问题的提示。
参考资料
- Microsoft Excel 函数说明:INDEX 返回数组中指定位置的值。
- Microsoft Excel 函数说明:MATCH 返回查找值在区域中的相对位置。
- 配套工作簿:INDEX_MATCH练习和客户表工作表。