flowchart TD
A[输入总成绩] --> B[MATCH 定位行号]
B --> C[INDEX 返回等级]
C --> D[填充公式至所有行]
函数介绍
INDEX()函数用于返回指定位置的值。
MATCH()函数用于返回指定值的位置。
二者可以进行组合使用,用于查找和返回指定位置的值。可以作为VLOOKUP函数的替代函数。
可视化流程
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):
| 学号 | 姓名 | 合计 | 等级(目标值) |
|---|---|---|---|
| 20010506 | 赵一 | 270 | ? |
| 20010507 | 王二 | 241 | ? |
| 20010508 | 张三 | 206 | ? |
| 20010509 | 李四 | 200 | ? |
| 20010510 | 郑五 | 200 | ? |
| 20010511 | 朱六 | 240 | ? |
| 20010512 | 陈七 | 268 | ? |
| 20010513 | 胡八 | 245 | ? |
| 20010514 | 周九 | 280 | ? |
| 20010515 | 肖十 | 216 | ? |
给定匹配标准如下(Excel工作表Sheet1,单元格范围E1:G5):
| 等级 | 区隔_上限 | 区隔_下限 |
|---|---|---|
| 优秀 | 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):
| 学号 | 姓名 | 合计 | 等级 | 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 | 中等 |
关键细节
注记
注意事项
- 辅助表必须按降序排列,否则
MATCH近似匹配会失效。 - 使用混合引用
F$2:F$5和E$2:E$5防止填充公式时范围偏移。 - 边界值验证:
- 成绩
259→ 匹配230→ 返回“良”。
- 成绩
260→ 匹配260→ 返回“优”。
- 成绩
函数对比表
| 特性 | VLOOKUP | INDEX+MATCH |
|---|---|---|
| 查找方向 | 仅支持从左到右 | 支持任意方向 |
| 列变化影响 | 列索引变化需调整公式 | 动态适应列变化 |
| 性能 | 大数据量较慢 | 更高效(尤其重复区域查找) |