本文介绍 Microsoft Excel 中 INDEX 函数的公式语法和用法。

数组形式

说明

返回表格或数组中的元素值,此元素由行号和列号的索引值给定。

当函数 INDEX 的第一个参数为数组常量时,使用数组形式。

语法

INDEX(array, row_num, [column_num])

INDEX 函数语法具有下列参数:

  • Array 必需。单元格区域或数组常量。

    • 如果数组只包含一行或一列,则相对应的参数 Row_num 或 Column_num 为可选参数。

    • 如果数组有多行和多列,但只使用 Row_num 或 Column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。

  • Row_num 必需。选择数组中的某行,函数从该行返回数值。如果省略 Row_num,则必须有 Column_num。

  • Column_num 可选。选择数组中的某列,函数从该列返回数值。如果省略 Column_num,则必须有 Row_num。

备注

  • 如果同时使用参数 Row_num 和 Column_num,函数 INDEX 返回 Row_num 和 Column_num 交叉处的单元格中的值。

  • 如果将 Row_num 或 Column_num 设置为 0(零),函数 INDEX 则分别返回整个列或行的数组数值。若要使用以数组形式返回的值,请将 INDEX 函数以数组公式形式输入,对于行以水平单元格区域的形式输入,对于列以垂直单元格区域的形式输入。若要输入数组公式,请按 Ctrl+Shift+Enter。

    注意: 在 Excel Web App 中,不能创建数组公式。

  • Row_num 和 Column_num 必须指向数组中的一个单元格;否则,INDEX 返回 错误值 #REF!。

示例 1

下面的示例使用 INDEX 函数查找某一行和某一列的交叉单元格中的值。

复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。要使公式显示结果,请选中它们,按 F2,然后按 Enter。如果需要,可调整列宽以查看所有数据。

数据

数据

苹果

柠檬

香蕉

公式

说明

结果

=INDEX(A2:B3,2,2)

位于区域 A2:B3 中第二行和第二列交叉处的数值。

=INDEX(A2:B3,2,1)

位于区域 A2:B3 中第二行和第一列交叉处的数值。

香蕉

示例 2

此示例在数组公式中使用 INDEX 函数查找一个 2x2 数组中指定两个单元格中的值。

在此例中,选择任意两个垂直单元格,如 A1:A2,将下列公式 =INDEX({1,2;3,4},0,2) 粘贴到第一个单元格中,然后按 CTRL+SHIFT+ENTER。当作为数组公式输入时,Excel 会自动将公式粘贴到第二个单元格中。

公式

说明

结果

=INDEX({1,2;3,4},0,2)

数组的第一行、第二列中找到的数值。数组包含第一行中的 1 和 2 以及第二行中的 3 和 4。

2

数组(与上面的数组相同)的第二行、第二列中找到的数值。

4

注意: 这是数组公式,需使用 Ctrl+Shift+Enter 输入。Excel 会自动将公式括在大括号 {} 中。如果尝试自己输入,Excel 会将公式作为文本显示。如果不使用 Ctrl+Shift+Enter,则公式将返回一个 #VALUE! 错误。

引用形式

说明

返回指定的行与列交叉处的单元格引用。如果引用由不连续的选定区域组成,可以选择某一选定区域。

语法

INDEX(reference, row_num, [column_num], [area_num])

INDEX 函数语法具有下列参数:

  • Reference 必需。对一个或多个单元格区域的引用。

    • 如果为引用输入一个不连续的区域,必须将其用括号括起来。

    • 如果引用中的每个区域只包含一行或一列,则相应的参数 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 必须指向 reference 中的单元格;否则,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 Web App 中 CELL 函数不可用。

复制下表中的示例数据,然后将其粘贴进新的 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

12

公式

说明

结果

=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