📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 第16章-INDEX函数-练习.xlsx
难度:⭐⭐⭐⭐ | 建议用时:50 分钟 | 前置知识:第15章 MATCH
本章学习目标
- 会用 INDEX 按"第几行第几列"从区域中取值
- 掌握 INDEX+MATCH 黄金组合(可替代 VLOOKUP,且更强大)
- 会做"行 MATCH + 列 MATCH"的双向查找
一、这个函数是干什么的?
INDEX 的英文意思是"索引"。给它一个区域和坐标,它把那个位置的值取出来:
“把第 3 行第 2 列的值给我” —— INDEX 就是一个听坐标指挥的取货机器人。
单独看 INDEX 平平无奇(坐标还得手填),但第15章的 MATCH 正好会自动算坐标——两者合体:
|
|
这就是 Excel 界闻名的 INDEX+MATCH 组合,VLOOKUP 的所有限制(只能向右、只能查首列、要数列号)它全都不受。
二、语法结构
|
|
| 参数 | 说明 |
|---|---|
| 区域 | 取值范围,可以是一列、一行、或一个方块 |
| 第几行 | 区域内的第几行(相对序号,同 MATCH 的口径) |
| 第几列 | 区域内的第几列;区域只有一列时可省略 |
三、基础示例(手把手)
成绩表:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 姓名 | 语文 | 数学 | 英语 |
| 2 | 张三 | 85 | 92 | 78 |
| 3 | 李四 | 90 | 88 | 95 |
| 4 | 王五 | 76 | 85 | 82 |
| 5 | 赵六 | 95 | 79 | 88 |
| 6 | 孙七 | 88 | 91 | 90 |
示例1:取区域中第 2 行第 3 列的值
|
|
结果:95
解读:区域 B2:D6 内部坐标——第 2 行是李四那行,第 3 列是 D 列(英语)→ 李四的英语 95。 ⚠️ 坐标是区域内部的相对序号:区域的第 1 行是 B2:D2(张三),不是工作表第 1 行。
示例2:单列区域省略列号
|
|
结果:79(C 列数学成绩的第 4 个 → 赵六的数学)
解读:区域只有一列时,列参数省略,只给行号。
示例3:INDEX + MATCH 合体(本章核心!)
需求:查找"王五"的数学成绩。
分两步想:
- MATCH 算坐标:
MATCH("王五",A2:A6,0)→ 王五在姓名列第 3 个 - INDEX 取货:
INDEX(C2:C6, 3)→ 数学列第 3 个 → 85
合成一个公式:
|
|
结果:85
结构口诀:
|
|
示例4:双向查找(行、列都自动定位)
需求:查"赵六"的"英语"成绩——行由姓名定、列由科目定:
|
|
结果:88
解读:
- 第一个 MATCH 在 A2:A6 找"赵六" → 行坐标 4
- 第二个 MATCH 在表头 B1:D1 找"英语" → 列坐标 3
- INDEX 取 B2:D6 的第 4 行第 3 列 → 88
两个 MATCH 分别锁定行和列,实现"十字路口"式定位。这是 INDEX+MATCH 的终极形态。
四、进阶用法
1. 向左查找(打破 VLOOKUP 天条)
根据成绩查姓名(返回列在查找列左边):
|
|
结果:赵六(语文 95 的人)。INDEX+MATCH 根本不在乎方向——返回列和查找列是独立的两根柱子。
2. 与 XLOOKUP 对比
同一个"按编码查名称":
|
|
结论:有 365/2021 就用 XLOOKUP;要兼容老版本就用 INDEX+MATCH。 两者思路完全一致(查找列 + 返回列两根柱子),学会一个另一个白送。
3. 取整行/整列(了解)
=INDEX(B2:D6, 3) 省略列号且区域是多列时,返回第 3 行的整行(365 中溢出为三个值)。
五、常见错误与注意事项
| 问题 | 原因 | 解决 |
|---|---|---|
#REF! |
行号/列号超出区域范围(如 5 行的区域要第 6 行) | 检查 MATCH 结果是否超界 |
| 取错行 | INDEX 区域和 MATCH 区域起点不一致(INDEX 用 B2:D6,MATCH 用 A3:A7) | 两个区域起点必须对齐 |
| 忘记 MATCH 的 0 | 省略第3参数变成模糊定位 | 精确查找永远写 0 |
| 结果差一行 | INDEX 区域从第2行起,MATCH 区域从第1行起 | 起点行号统一 |
| 双向查找列 MATCH 区域选错 | 列 MATCH 要在表头行里找 | 确认表头区域如 B1:D1 |
六、练习题(请先独立完成)
练习数据准备
录入本章成绩表(A1:D6)。
题目
| 题号 | 题目 | 在何处作答 |
|---|---|---|
| 1 | 用 INDEX 取 B2:D6 区域中第 4 行第 1 列的值(先心算应该是多少) | F2 |
| 2 | 用 INDEX 取数学列(C2:C6)第 2 个值 | F3 |
| 3 | 用 INDEX+MATCH 查"王五"的数学成绩 | F4 |
| 4 | 用 INDEX+MATCH 查"孙七"的语文成绩 | F5 |
| 5 | 用 INDEX+MATCH 向左查找:语文 95 分的人是谁 | F6 |
| 6 | 双向查找:查"赵六"的"英语"成绩(行、列都用 MATCH) | F7 |
| 7 | 在 H1 输入姓名"李四"、H2 输入科目"数学",写引用 H1/H2 的通用双向查找公式,改 H1/H2 测试 | F8 |
| 8 | 挑战:用 IFERROR 包装第5题,成绩无人考到时显示"无此成绩" | F9 |
七、练习讲解(做完再看)
第1题讲解
=INDEX(B2:D6,4,1):区域第 4 行 = 赵六行,第 1 列 = B 列(语文)→ 95。坐标一律按区域内部数。
第2题讲解
=INDEX(C2:C6,2) → 数学列第 2 个是李四的 88。单列省略列参数。
第3题讲解
套口诀:返回列 = 数学 C2:C6,找"王五",查找列 = 姓名 A2:A6:
|
|
MATCH 得 3 → INDEX 取 C 列第 3 个 → 85。
第4题讲解
返回列换成语文 B2:B6,找"孙七":
|
|
MATCH 得 5 → B 列第 5 个 → 88。
第5题讲解
向左查找:返回列(姓名 A 列)在查找列(语文 B 列)的左边,照样成立:
|
|
B 列里 95 在第 4 个 → A 列第 4 个 → 赵六。VLOOKUP 做不到的事,它做到了。
第6题讲解
双 MATCH:
|
|
行 MATCH = 4(赵六),列 MATCH = 3(英语在表头 B1:D1 的第 3 位),B2:D6 第4行第3列 → 88。
第7题讲解
把写死的关键字换成引用:
|
|
H1=李四、H2=数学 → 88;把 H2 改成"英语"→ 95。一个格子变成任意人任意科目的查询器——这就是动态报表的雏形。
第8题讲解
|
|
96 分没人考到 → MATCH 报 #N/A → IFERROR 兜底 → 无此成绩。
八、参考答案
| 题号 | 公式 | 结果 |
|---|---|---|
| 1 | =INDEX(B2:D6,4,1) |
95 |
| 2 | =INDEX(C2:C6,2) |
88 |
| 3 | =INDEX(C2:C6,MATCH("王五",A2:A6,0)) |
85 |
| 4 | =INDEX(B2:B6,MATCH("孙七",A2:A6,0)) |
88 |
| 5 | =INDEX(A2:A6,MATCH(95,B2:B6,0)) |
赵六 |
| 6 | =INDEX(B2:D6,MATCH("赵六",A2:A6,0),MATCH("英语",B1:D1,0)) |
88 |
| 7 | =INDEX(B2:D6,MATCH(H1,A2:A6,0),MATCH(H2,B1:D1,0)) |
88(李四数学) |
| 8 | =IFERROR(INDEX(A2:A6,MATCH(96,B2:B6,0)),"无此成绩") |
无此成绩 |
本章小结
=INDEX(区域, 行号, [列号]):按区域内相对坐标取值- 黄金组合:
=INDEX(返回列, MATCH(关键字, 查找列, 0))——无方向限制、无数列号、全版本兼容 - 双向查找:行一个 MATCH、列一个 MATCH,交叉定位
- 有新版 Excel 优先 XLOOKUP;兼容老版本用 INDEX+MATCH
恭喜!16 个函数全部学完,最后一站:综合实战:员工信息管理表