INDEX/MATCH 组合把“定位行”和“返回结果”拆成两步。它不要求查找列位于返回列左侧,适合需要反向查找或需要兼顾旧版 Excel 的工作簿。

Excel 查找匹配练习工作簿“INDEX_MATCH练习”中包含名称、城市和等级三个返回示例。
下载 .xlsx 文件

完整公式

A2 保存客户编号,客户表 A 列是编号,D 列是名称:

=INDEX(客户表!$D$2:$D$11,MATCH(A2,客户表!$A$2:$A$11,0))

A2 为 C004 时,公式返回“青禾设计”。MATCH 先得到 C004 在编号区域中的相对位置,INDEX 再从名称区域同一位置取值。

先单独理解 MATCH

=MATCH(A2,客户表!$A$2:$A$11,0)

第三个参数 0 表示精确匹配。如果 C004 位于编号区域第 4 个位置,MATCH 返回 4。这个 4 是区域内的位置,不是工作表绝对行号。

再让 INDEX 返回内容

=INDEX(客户表!$D$2:$D$11,4)

这条公式会返回名称区域中的第 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(INDEX(客户表!$D$2:$D$11,MATCH(A2,客户表!$A$2:$A$11,0)),"未找到")

IFNA 不会隐藏 #REF! 等其他错误,更适合保留公式结构问题的提示。

参考资料

  • Microsoft Excel 函数说明:INDEX 返回数组中指定位置的值。
  • Microsoft Excel 函数说明:MATCH 返回查找值在区域中的相对位置。
  • 配套工作簿:INDEX_MATCH练习和客户表工作表。