- 函数功能概述
- INDEX 函数用于返回表格或区域中的值或对值的引用。它可以根据指定的行和列的位置从一个单元格区域中提取数据。这个函数有两种形式:数组形式和引用形式。
- 语法结构(数组形式)
INDEX(array, row_num, column_num)
- array(必需):这是一个单元格区域或数组常量。例如,可以是 A1:C10 这样的单元格区域,也可以是一个由大括号 {} 括起来的数组常量,如
{1,2,3;4,5,6;7,8,9}
(其中分号表示换行)。 - row_num(可选):这是要返回的单元格所在的行号。如果省略 row_num,则必须有 column_num 参数。例如,在一个 3 行 3 列的区域中,如果想返回第 2 行的数据,row_num 就设为 2。
- column_num(可选):这是要返回的单元格所在的列号。如果省略 column_num,则必须有 row_num 参数。例如,在一个 3 行 3 列的区域中,如果想返回第 3 列的数据,column_num 就设为 3。
- 语法结构(引用形式)
INDEX(reference, row_num, column_num, area_num)
- reference(必需):这是对一个或多个单元格区域的引用。可以是多个不相邻的区域,如 (A1:C10,E1:G10)。
- row_num(可选):含义同数组形式中的行号。
- column_num(可选):含义同数组形式中的列号。
- area_num(可选):当 reference 包含多个区域时,用于指定要使用的区域编号。第一个选定的区域编号为 1,第二个为 2,依此类推。
- 应用示例(数组形式)
- 示例一:提取指定单元格的值
- 假设在 A1:C3 单元格区域中有以下数据:
- 要提取第 2 行第 3 列的单元格(即 6)的值,在一个空白单元格(比如 D1)中输入公式
=INDEX(A1:C3,2,3)
,按下回车键后,函数会返回 6。
- 示例二:结合 MATCH 函数使用(动态提取数据)
- 假设在 A1:A10 中有员工姓名,B1:B10 中有对应的员工绩效得分。现在要根据员工姓名查找对应的绩效得分。例如,要查找 “张三” 的绩效得分,已知 “张三” 在 A 列中的位置可以用
MATCH("张三",A1:A10,0)
来获取,假设返回的位置是 3。那么在一个空白单元格(比如 C1)中输入公式=INDEX(B1:B10,MATCH("张三",A1:A10,0))
,就可以提取到 “张三” 对应的绩效得分。
- 应用示例(引用形式)
- 示例:从多个区域中提取数据
- 假设在 A1:C3 中有一组数据,在 E1:G3 中有另一组数据:
A | B | C |
---|
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
E | F | G |
--- | --- | --- |
10 | 11 | 12 |
13 | 14 | 15 |
16 | 17 | 18 |
- 要从第二个区域(E1:G3)中提取第 2 行第 3 列的单元格(即 15)的值,在一个空白单元格(比如 H1)中输入公式
=INDEX((A1:C3,E1:G3),2,3,2)
,按下回车键后,函数会返回 15。这里的 2 表示引用的第二个区域。
- 注意事项
- 如果数组或引用的单元格为空,或者 row_num 或 column_num 超出范围,INDEX 函数可能会返回错误值。例如,如果在一个 3 行 3 列的区域中,row_num 设为 4,就会出错。
- 在引用形式中,当 area_num 参数超出 reference 所包含的区域数量时,也会返回错误值。