INDEX+MATCH函数使用

INDEX+MATCH函数与VLOOKUP函数对比

介绍INDEX+MATCH函数的基本用法,包括INDEX+MATCH函数与VLOOKUP函数对比。
Excel
lab01
INDEX+MATCH
作者

胡华平

发布于

2026年4月15日

函数介绍

INDEX()函数用于返回指定位置的值。

MATCH()函数用于返回指定值的位置。

二者可以进行组合使用,用于查找和返回指定位置的值。可以作为VLOOKUP函数的替代函数。

可视化流程

flowchart TD
    A[输入总成绩] --> B[MATCH 定位行号]
    B --> C[INDEX 返回等级]
    C --> D[填充公式至所有行]

MATCH()函数

MATCH()函数用于返回指定值的位置。函数参数如下:

=MATCH(lookup_value, lookup_array, [match_type])

具体的参数如下:

  • 第一个参数lookup_value:要查找的值。
  • 第二个参数lookup_array:要查找的区域。
  • 第三个参数match_type:可选,用于指定匹配类型。可选取值包括:0表示精确匹配,1表示小于匹配,-1表示大于匹配。默认值为0。
注记Excel示例

请用MATCH函数查找270在D2:D5区域中的位置。

# 计算1:使用MATCH函数查找270在`D2:D5`区域中的位置。
=MATCH(lookup_value, lookup_array, [match_type])
=MATCH(270, D2:D5, 1)

INDEX()函数

INDEX()函数用于返回指定位置的值。函数参数如下:

=INDEX(array, row_num, [column_num])

具体的参数如下: - 第一个参数array:要返回的区域。 - 第二个参数row_num:要返回的行号。 - 第三个参数column_num:要返回的列号。

注记Excel示例

请用INDEX函数返回D2:D5区域中第2行的值。

# 计算1:使用INDEX函数返回`D2:D5`区域中第2行的值。
=INDEX(D2:D5, 2)

组合使用

我们可以将MATCH()函数和INDEX()函数组合使用,用于查找和返回指定位置的值。

=INDEX(array, match_result) # 简化公式
=INDEX(array, MATCH(lookup_value, lookup_array, [match_type])) # 完整公式

实验任务:请用MATCH()函数和INDEX()函数组合使用,用于查找和返回指定位置的值。

具体任务内容:

  • 首先使用MATCH()函数,查找每个同学的成绩在目标匹配标准(成绩范围等级)中的位置。
  • 然后使用INDEX()函数,根据MATCH()函数返回的位置,返回对应的等级。

数据表格如下(Excel工作表Sheet1,单元格范围A1:D11):

成绩表{#tbl-score .striped .hover}
学号 姓名 合计 等级(目标值)
20010506 赵一 270 ?
20010507 王二 241 ?
20010508 张三 206 ?
20010509 李四 200 ?
20010510 郑五 200 ?
20010511 朱六 240 ?
20010512 陈七 268 ?
20010513 胡八 245 ?
20010514 周九 280 ?
20010515 肖十 216 ?

给定匹配标准如下(Excel工作表Sheet1,单元格范围E1:G5):

匹配标准(成绩范围等级){#tbl-match-standard .striped .hover}
等级 区隔_上限 区隔_下限
优秀 300 260
良好 260 230
中等 230 200
较差 200 0

目标任务:请用MATCH()函数和INDEX()函数组合使用,用于查找和返回指定位置的值。

操作步骤(组合函数公式):

# 计算1:使用MATCH()函数和INDEX()函数组合使用,用于查找和返回指定位置的值。
=INDEX(E1:E5, MATCH(A2,D1:D5,1))

最终结果(Excel工作表Sheet1,单元格范围A2:A4):

总成绩 公式 等级
270 =INDEX(E$2:E$5, MATCH(A2,F$2:F$5,-1)) 优秀
241 =INDEX(E$2:E$5, MATCH(A3,F$2:F$5,-1)) 良好
206 =INDEX(E$2:E$5, MATCH(A4,F$2:F$5,-1)) 中等

最终结果(Excel工作表Sheet1,单元格范围A1:F11):

最终结果{#tbl-final-result .striped .hover}
学号 姓名 合计 等级 match等级-位置 等级-文本
20010506 赵一 270 ? 1 优秀
20010507 王二 241 ? 2 良好
20010508 张三 206 ? 3 中等
20010509 李四 200 ? 4 较差
20010510 郑五 200 ? 4 较差
20010511 朱六 240 ? 2 良好
20010512 陈七 268 ? 1 优秀
20010513 胡八 245 ? 2 良好
20010514 周九 280 ? 1 优秀
20010515 肖十 216 ? 3 中等

关键细节

注记

注意事项

  1. 辅助表必须按降序排列,否则 MATCH 近似匹配会失效。
  2. 使用混合引用 F$2:F$5 和 E$2:E$5 防止填充公式时范围偏移。
  3. 边界值验证:
    • 成绩 259 → 匹配 230 → 返回“良”。
    • 成绩 260 → 匹配 260 → 返回“优”。

函数对比表

特性 VLOOKUP INDEX+MATCH
查找方向 仅支持从左到右 支持任意方向
列变化影响 列索引变化需调整公式 动态适应列变化
性能 大数据量较慢 更高效(尤其重复区域查找)