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(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(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(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(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(B2:B6, MATCH(85, A2:A6, 1))
MATCH 找到小于或等于 85 的最大值(位置 4 处的 80)。INDEX 返回相应的成绩“B”。这就像 VLOOKUP 的近似匹配一样工作,但更灵活。
在许多情况下,INDEX-MATCH 组合优于 VLOOKUP。它提供左查、动态列引用和更好的性能。示例展示了垂直、水平、双向、左查和近似查找。掌握 INDEX-MATCH 将大大提高您的 Excel 查找技能。
作者
列出 所有 Excel 公式。