INDEX 函数返回表格或区域中的值或值的引用。
使用 INDEX 函数有两种方法:
数组形式
说明
返回表元素或数组元素的值,该元素是通过行号和列号索引选定的。
当函数 INDEX 的第一个参数为数组常量时,使用数组形式。
语法
INDEX(array, row_num, [column_num])
INDEX 函数的数组形式具有以下参数:
阵 列 必填。 单元格区域或数组常量。
- 如果数组只包含一行或一列,则相对应的参数 row_num 或 column_num 为可选参数。
- 如果数组有多行和多列,但只使用 row_num 或 column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。
row_num 必需,除非存在column_num。 选择数组中的某行,函数从该行返回数值。 如果省略 row_num,则需使用 column_num。
column_num 选。 选择数组中的某列,函数从该列返回数值。 如果省略 column_num,则需使用 row_num。
备注
如果同时使用 row_num 和 column_num 参数,则 INDEX 返回 row_num 和 column_num 交叉处的单元格中的值。
row_num 和 column_num 均必须指向数组内的单元格;否则,INDEX 将返回错误值 #REF! 错误。
如果将 row_num 或 column_num 设置为 0(零),则 INDEX 将分别返回整列或整行值的数组。 若要使用作为数组返回的值,请输入 INDEX 函数作为数组公式。
注意
如果你有 当前版本的 Microsoft 365,则可以在输出区域的左上角单元格中输入公式,然后按 Enter 确认该公式为动态数组公式。 否则,必须首先选择输出区域,在输出区域的左上角单元格中输入公式(公式必须作为遗留的数组公式进行输入),然后按 CTRL+SHIFT+ENTER 进行确认。 Excel 将使用括号将公式括起来。 有关数组公式的详细信息,请参阅数组公式指南和示例。
数组窗体示例
示例 1
下面的示例使用 INDEX 函数查找某一行和某一列的交叉单元格中的值。
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。
| 数据 | 数据 | |
|---|---|---|
| 苹果 | 柠檬 | |
| 香蕉 | 梨 | |
| 公式 | 说明 | 结果 |
| =INDEX(A2:B3,2,2) | 位于区域 A2:B3 中第二行和第二列交叉处的数值。 | 梨 |
| =INDEX(A2:B3,2,1) | 位于区域 A2:B3 中第二行和第一列交叉处的数值。 | 香蕉 |
示例 2
此示例在数组公式中使用 INDEX 函数查找一个 2x2 数组中指定两个单元格中的值。
注意
如果你有 当前版本的 Microsoft 365,则可以在输出区域的左上角单元格中输入公式,然后按 Enter 确认该公式为动态数组公式。 否则,必须先选择两个空白单元格,在输出区域左上角的单元格中输入公式,然后按 Ctrl+SHIFT+ENTER 确认公式,才能将公式输入为旧数组公式。 Excel 将使用括号将公式括起来。 有关数组公式的详细信息,请参阅数组公式指南和示例。
| 公式 | 说明 | 结果 |
|---|---|---|
| =INDEX ({1,2;3,4},0,2) | 数组的第一行、第二列中找到的数值。 数组包含第一行中的 1 和 2 以及第二行中的 3 和 4。 | 2 |
| 数组(与上面的数组相同)的第二行、第二列中找到的数值。 | 4 |
引用形式
说明
返回指定的行与列交叉处的单元格引用。 如果引用由不连续的选定区域组成,可以选择某一选定区域。
语法
INDEX(reference, row_num, [column_num], [area_num])
INDEX 函数的引用形式具有以下参数:
参考 必填。 对一个或多个单元格区域的引用。
- 如果为引用输入一个不连续的区域,必须将其用括号括起来。
- 如果引用中的每个区域均只包含一行(或一列),则 row_num(或 column_num)为可选参数。 例如,对于单行的引用,可以使用函数 INDEX(reference,,column_num)。
row_num 必填。 引用中某行的行号,函数从该行返回一个引用。
column_num 选。 引用中某列的列标,函数从该列返回一个引用。
area_num 选。 选择要返回 row_num 和 column_num 的交叉点的引用区域。 选择或输入的第一个区域的编号为 1,第二个的编号为 2,依此类推。 如果省略 area_num,则 INDEX 使用区域 1。 此处列出的区域必须全部位于一张工作表。 如果指定的区域不位于同一个工作表,将导致 #VALUE!。 错误。 如果需要使用的范围彼此位于不同工作表,建议使用函数 INDEX 的数组形式,并使用其他函数来计算构成数组的范围。 例如,可以使用 CHOOSE 函数计算将使用的范围。
例如,如果引用描述的单元格为 (A1:B4,D1:E4,G1:H4),则 area_num 1 为区域 A1:B4,area_num 2 为区域 D1:E4,而 area_num 3 为区域 G1:H4。
备注
- 在 reference 和 area_num 选择了特定区域后,row_num 和 column_num 将选择一个特定的单元格:row_num 1 是该区域的第一行,column_num 1 是第一列,依此类推。 INDEX 返回的引用是 row_num 和 column_num 的交叉点。
- 如果将 row_num 或 column_num 设置为 0(零),INDEX 将分别返回对整列或整行的引用。
- row_num、column_num 和 area_num 均必须指向引用中的单元格;否则,INDEX 将返回错误值 #REF! 错误。 如果省略 row_num 和 column_num,则 INDEX 将返回由 area_num 指定的引用区域。
- 函数 INDEX 的结果为一个引用,且在其他公式中也被解释为引用。 根据公式的需要,函数 INDEX 的返回值可以作为引用或是数值。 例如,公式 CELL("width",INDEX(A1:B2,1,2)) 等价于公式 CELL("width",B1)。 CELL 函数将函数 INDEX 的返回值作为单元格引用。 而在另一方面,公式 2*INDEX(A1:B2,1,2) 将函数 INDEX 的返回值解释为 B1 单元格中的数字。
参考表单示例
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。
| 水果 | 价格 | 计数 |
|---|---|---|
| 苹果 | ¥6.90 | 40 |
| 香蕉 | ¥3.40 | 38 |
| 柠檬 | ¥5.50 | 15 |
| 橙子 | ¥2.50 | 25 |
| 梨 | ¥5.90 | 40 |
| 杏 | ¥28.00 | 10 |
| 腰果 | ¥35.50 | 16 |
| 花生 | ¥12.50 | 20 |
| 胡桃 | ¥17.50 | 1.2 |
| 公式 | 说明 | 结果 |
| =INDEX(A2:C6, 2, 3) | 区域 A2:C6 中第二行和第三列的交叉处,即单元格 C3 的内容。 | 38 |
| =INDEX((A1:C6, A8:C11), 2, 2, 2) | 第二个区域 A8:C11 中第二行和第二列的交叉处,即单元格 B9 的内容。 | 1.25 |
| =SUM(INDEX(A1:C11, 0, 3, 1)) | 对第一个区域 A1:C11 中的第三列求和,即对 C1:C11 求和。 | 216 |
| =SUM(B2:INDEX(A2:C6, 5, 2)) | 返回以单元格 B2 开始到单元格区域 A2:A6 中第五行和第二列交叉处结束的单元格区域的和,即单元格区域 B2:B6 的和。 | 2.42 |