第16章:INDEX 函数(+ MATCH 黄金组合)—— 按位置取值

按位置取值:INDEX+MATCH黄金组合与双向查找

📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 第16章-INDEX函数-练习.xlsx

难度:⭐⭐⭐⭐ | 建议用时:50 分钟 | 前置知识:第15章 MATCH

本章学习目标

  • 会用 INDEX 按"第几行第几列"从区域中取值
  • 掌握 INDEX+MATCH 黄金组合(可替代 VLOOKUP,且更强大)
  • 会做"行 MATCH + 列 MATCH"的双向查找

一、这个函数是干什么的?

INDEX 的英文意思是"索引"。给它一个区域和坐标,它把那个位置的值取出来:

“把第 3 行第 2 列的值给我” —— INDEX 就是一个听坐标指挥的取货机器人。

单独看 INDEX 平平无奇(坐标还得手填),但第15章的 MATCH 正好会自动算坐标——两者合体:

1
INDEX(取货区域, MATCH算出第几行)   =  按关键字自动取值

这就是 Excel 界闻名的 INDEX+MATCH 组合,VLOOKUP 的所有限制(只能向右、只能查首列、要数列号)它全都不受。

二、语法结构

1
=INDEX(区域, 第几行, [第几列])
参数 说明
区域 取值范围,可以是一列、一行、或一个方块
第几行 区域内的第几行(相对序号,同 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 列的值

1
=INDEX(B2:D6, 2, 3)

结果:95

解读:区域 B2:D6 内部坐标——第 2 行是李四那行,第 3 列是 D 列(英语)→ 李四的英语 95。 ⚠️ 坐标是区域内部的相对序号:区域的第 1 行是 B2:D2(张三),不是工作表第 1 行。

示例2:单列区域省略列号

1
=INDEX(C2:C6, 4)

结果:79(C 列数学成绩的第 4 个 → 赵六的数学)

解读:区域只有一列时,列参数省略,只给行号。

示例3:INDEX + MATCH 合体(本章核心!)

需求:查找"王五"的数学成绩。

分两步想:

  1. MATCH 算坐标:MATCH("王五",A2:A6,0) → 王五在姓名列第 3
  2. INDEX 取货:INDEX(C2:C6, 3) → 数学列第 3 个 → 85

合成一个公式:

1
=INDEX(C2:C6, MATCH("王五", A2:A6, 0))

结果:85

结构口诀

1
2
=INDEX( 要取哪列的值 , MATCH( 找谁 , 在哪列找 , 0 ) )
        ↑ 返回列                ↑ 关键字  ↑ 查找列

示例4:双向查找(行、列都自动定位)

需求:查"赵六"的"英语"成绩——行由姓名定、列由科目定:

1
=INDEX(B2:D6, MATCH("赵六",A2:A6,0), MATCH("英语",B1:D1,0))

结果:88

解读

  • 第一个 MATCH 在 A2:A6 找"赵六" → 行坐标 4
  • 第二个 MATCH 在表头 B1:D1 找"英语" → 列坐标 3
  • INDEX 取 B2:D6 的第 4 行第 3 列 → 88

两个 MATCH 分别锁定行和列,实现"十字路口"式定位。这是 INDEX+MATCH 的终极形态。

四、进阶用法

1. 向左查找(打破 VLOOKUP 天条)

根据成绩查姓名(返回列在查找列左边):

1
=INDEX(A2:A6, MATCH(95, B2:B6, 0))

结果:赵六(语文 95 的人)。INDEX+MATCH 根本不在乎方向——返回列和查找列是独立的两根柱子。

2. 与 XLOOKUP 对比

同一个"按编码查名称":

1
2
=XLOOKUP(F2, A2:A6, B2:B6)                      ← 新版写法,简洁
=INDEX(B2:B6, MATCH(F2, A2:A6, 0))              ← 经典写法,全版本兼容

结论:有 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:

1
=INDEX(C2:C6,MATCH("王五",A2:A6,0))

MATCH 得 3 → INDEX 取 C 列第 3 个 → 85。

第4题讲解

返回列换成语文 B2:B6,找"孙七":

1
=INDEX(B2:B6,MATCH("孙七",A2:A6,0))

MATCH 得 5 → B 列第 5 个 → 88。

第5题讲解

向左查找:返回列(姓名 A 列)在查找列(语文 B 列)的左边,照样成立:

1
=INDEX(A2:A6,MATCH(95,B2:B6,0))

B 列里 95 在第 4 个 → A 列第 4 个 → 赵六。VLOOKUP 做不到的事,它做到了。

第6题讲解

双 MATCH:

1
=INDEX(B2:D6,MATCH("赵六",A2:A6,0),MATCH("英语",B1:D1,0))

行 MATCH = 4(赵六),列 MATCH = 3(英语在表头 B1:D1 的第 3 位),B2:D6 第4行第3列 → 88。

第7题讲解

把写死的关键字换成引用:

1
=INDEX(B2:D6,MATCH(H1,A2:A6,0),MATCH(H2,B1:D1,0))

H1=李四、H2=数学 → 88;把 H2 改成"英语"→ 95。一个格子变成任意人任意科目的查询器——这就是动态报表的雏形。

第8题讲解

1
=IFERROR(INDEX(A2:A6,MATCH(96,B2:B6,0)),"无此成绩")

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 个函数全部学完,最后一站:综合实战:员工信息管理表

世界是你们
使用 Hugo 构建
主题 StackJimmy 设计