INDEX 函数¶
函数概述¶
INDEX 是 Excel 中用于“按位置返回值”的核心查找函数。它可以从指定区域/数组中,根据给定的行号、列号(以及在引用形式下的区域编号)返回对应单元格的值或引用。
在很多场景里,INDEX 会与 MATCH(或 XMATCH)组合,构建灵活、稳定的查找方案(常见的 INDEX+MATCH),尤其适用于列位置可能变动的表格。
基础语法¶
INDEX 有两种常用形式:数组形式与引用形式。
1)数组形式(最常用)¶
2)引用形式(可在多个区域间选择)¶
参数说明¶
数组形式参数¶
| 参数 | 必填 | 含义 | 说明 |
|---|---|---|---|
array |
是 | 需要返回值的数组/区域 | 如 A2:D10,也可以是数组常量或动态数组结果 |
row_num |
是 | 行号(相对 array 的第几行) |
1 表示 array 的第一行 |
column_num |
否 | 列号(相对 array 的第几列) |
省略时,要求 array 为单列区域 |
引用形式参数¶
| 参数 | 必填 | 含义 | 说明 |
|---|---|---|---|
reference |
是 | 一个或多个区域引用 | 多区域用逗号分隔,例如 (A1:B5, D1:E5) |
row_num |
是 | 行号(相对所选区域) | 与数组形式一致 |
column_num |
否 | 列号(相对所选区域) | 与数组形式一致 |
area_num |
否 | 选第几个区域 | 1 表示 reference 中第一个区域 |
小提示:
INDEX返回的结果可以是“值”,也可以是“引用”。当它被用于某些函数(如SUM、AVERAGE、OFFSET类似用途)或作为公式的一部分时,引用特性会非常有用。
基础用法示范¶
下面用一个简单数据表来举例(假设数据区域为 A1:D6):
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 姓名 | 部门 | 月份 | 销售额 |
| 张三 | 华东 | 1月 | 12000 |
| 李四 | 华南 | 1月 | 15000 |
| 王五 | 华东 | 2月 | 18000 |
| 赵六 | 华北 | 2月 | 9000 |
| 钱七 | 华南 | 3月 | 21000 |
1)按行列位置返回单元格的值¶
需求:从 A2:D6 中取第 3 行、第 4 列的值。
解释:A2:D6 的第 3 行是原表的第 4 行(王五那行),第 4 列是“销售额”,结果返回 18000。
2)只在单列区域中按行取值¶
需求:从销售额列 D2:D6 中取第 5 个值。
结果返回 21000。
3)INDEX + MATCH:按“关键字”查找返回值¶
需求:输入姓名(如在 F2),返回对应的部门。
MATCH(F2, A2:A6, 0):在姓名列中精确匹配F2,得到所在行序号INDEX(B2:B6, ...):用该行序号去部门列取值
4)二维查找:INDEX + MATCH + MATCH¶
场景:你有一个交叉表,例如 A1:D4
- 行标题在
A2:A4(如“张三/李四/王五”) - 列标题在
B1:D1(如“1月/2月/3月”) - 数据在
B2:D4
需求:给定“姓名”和“月份”,返回交叉位置的数值。
这类写法的优势是:即使月份列顺序调整,只要标题不变,公式仍然可靠。
5)在多个区域中按 area_num 选择区域返回¶
需求:从两个区域中选择其一返回第 2 行第 1 列
- 区域1:
A1:A5 - 区域2:
C1:C5 - 选择由
area_num决定(1 或 2)
解释:area_num=2 选第二个区域 C1:C5,取第 2 行第 1 列,即 C2 的值。
6)用 INDEX 构造动态区域¶
需求:对 D2:D6 中从第 1 个到第 N 个销售额求和(N 在 F2)
当 F2=3 时,相当于 SUM(D2:D4);当 F2=5 时,相当于 SUM(D2:D6)。
总结¶
INDEX的本质是:在给定区域中按“位置”取值/取引用。- 数组形式最常用:
INDEX(array,row,[col]),适合绝大多数按行列取值的需求。 INDEX + MATCH(或INDEX + XMATCH)是更灵活的查找方案:不依赖固定列序号,结构变动更抗风险。- 进阶用法中,
INDEX还能用于构建动态区间与二维交叉查询,是 Excel 公式体系里非常“底层且强大”的函数之一。