ZetCode

Excel INDEX-MATCH 组合

最后修改于 2025 年 4 月 4 日

INDEX-MATCH 组合是 Excel 中强大的查找技术。它克服了 VLOOKUP 的限制,并提供了更大的灵活性。本教程涵盖基本定义、语法和五个实用示例。您将学习如何将此组合用于垂直、水平和双向查找。

INDEX-MATCH 基础

INDEX 从范围中的特定位置返回一个值。MATCH 在范围中查找查找值的**位置**。两者结合,它们创建了一个动态查找公式。

函数 描述 语法
INDEX 在行/列的交叉点处返回值 =INDEX(array, row_num, [column_num])
MATCH 返回查找值的**位置** =MATCH(lookup_value, lookup_array, [match_type])

此表显示了 INDEX-MATCH 的基本组成部分。INDEX 需要位置数字,而 MATCH 可以动态提供这些数字。它们共同创建了灵活的查找公式。

基本垂直查找

本示例演示了使用 INDEX-MATCH 作为 VLOOKUP 替代项的简单垂直查找。

A B C
ID 名称
101 John
102 Sarah
103 Mike
=INDEX(B2:B4, MATCH(102, A2:A4, 0))

该表显示了带有 ID 和姓名列的员工数据。该公式使用 INDEX-MATCH 组合查找 ID 102 的姓名。

基本 INDEX-MATCH 公式
=INDEX(B2:B4, MATCH(102, A2:A4, 0))

此公式首先在 A2:A4 中找到 102 的位置(位置 2),然后从 B2:B4 返回相应的值。结果将是“Sarah”。

水平查找

INDEX-MATCH 可以执行水平查找,HLOOKUP 也可以做到,但 INDEX-MATCH 更具灵活性。本示例展示了如何操作。

A B C D
月份 一月 二月 三月
销售额 1500 1800 2100
=INDEX(B2:D2, MATCH("Feb", B1:D1, 0))

该表包含水平排列的月度销售数据。该公式使用 INDEX-MATCH 组合查找二月的销售额。

水平 INDEX-MATCH
=INDEX(B2:D2, MATCH("Feb", B1:D1, 0))

MATCH 在 B1:D1 中找到“Feb”(位置 2),然后 INDEX 从 B2:D2 返回相应的值。结果将是 1800。这显示了水平查找功能。

双向查找

INDEX-MATCH 可以通过组合行和列搜索来执行双向查找。本示例演示了此强大功能。

A B C D
数学 科学 历史
John 85 90 78
Sarah 92 88 95
Mike 78 85 82
=INDEX(B2:D4, MATCH("Sarah", A2:A4, 0), MATCH("Science", B1:D1, 0))

该表显示了跨学科的学生成绩。该公式使用两个 MATCH 函数分别获取行和列位置,以查找 Sarah 的科学成绩。

双向 INDEX-MATCH
=INDEX(B2:D4, MATCH("Sarah", A2:A4, 0), MATCH("Science", B1:D1, 0))

第一个 MATCH 找到 Sarah 的行(2),第二个 MATCH 找到 Science 列(2)。INDEX 返回交叉点的**值**(B3)。结果是 88。这演示了矩阵式查找。

左查

与 VLOOKUP 不同,INDEX-MATCH 可以进行左查。本示例展示了如何从查找列左侧的列中检索值。

A B C
名称 ID
John 101
Sarah 102
Mike 103
=INDEX(A2:A4, MATCH(102, B2:B4, 0))

该表具有姓名和 ID 列,其中 ID 是查找列。该公式从 ID 列向左查找,以查找 ID 102 的姓名。

使用 INDEX-MATCH 进行左查
=INDEX(A2:A4, MATCH(102, B2:B4, 0))

MATCH 在 B2:B4 中找到 102(位置 2),INDEX 从 A2:A4 返回相应的姓名。结果是“Sarah”。这解决了 VLOOKUP 的左查限制。

近似匹配

INDEX-MATCH 可以执行近似匹配,就像 VLOOKUP 一样。本示例展示了如何使用近似匹配在范围中查找值。

A B C
分数 等级
0 F
60 D
70 C
80 B
90 A
=INDEX(B2:B6, MATCH(85, A2:A6, 1))

该表显示了成绩阈值。该公式使用近似匹配(MATCH 中第三个参数为 1)查找分数 85 的成绩。

使用 INDEX-MATCH 进行近似匹配
=INDEX(B2:B6, MATCH(85, A2:A6, 1))

MATCH 找到小于或等于 85 的最大值(位置 4 处的 80)。INDEX 返回相应的成绩“B”。这就像 VLOOKUP 的近似匹配一样工作,但更灵活。

在许多情况下,INDEX-MATCH 组合优于 VLOOKUP。它提供左查、动态列引用和更好的性能。示例展示了垂直、水平、双向、左查和近似查找。掌握 INDEX-MATCH 将大大提高您的 Excel 查找技能。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。我自 2007 年以来一直撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 Excel 公式