原创

学霸Excel


Excel学海拾贝

2025年09月01日 22:21

单词index的意思是”指标;索引;指数

函数INDEX的功能是,在单元格区域或数组中,返回指定的行和列交叉处的单元格引用或值。

语法

INDEX(array,row_num,column_num)

array数组或单元格区域;

row_num行号;

column_num列号。

结果会返回数组array中第row_num行、第column_num列的数据。

使用INDEX查找引用数据,关键是确定数据所在的行号和列号。

示例1、单列数据转换为多列数据

如下图,A1:A60是单列的数据,需要将其转换为5列,A1:A5摆放在结果的第一行,A6:A10摆放在结果的第二行……

本例为将单列数据转化为多列的形式,实际上是改变数据布局。为了改变数据布局,可以在新布局中的每个位置上,记录好该位置对应的原始数据的位置,再用INDEX引用即可。

上图中,C2:G13区域为新数据布局,每个位置的数字就是该位置需要引用的原始数据A列的行号,再在I2单元格输入如下公式,向右向下填充即可

=INDEX($A:$A,C2,1)

示例2INDEXMATCH相结合来查找引用数据

单列数据查询

如下图,A:G列是成绩数据表,第一行为标题行,班级没有在最左侧。要查询I列的班级对应的数学成绩。

本例不能直接使用VLOOKUP,因为VLOOKUP只能返回查找值所在列的右侧列的数据,而本例的数学在班级的左侧。此时,可以联合使用INDEXMATCH来实现任意方向的查找。

J2单元格输入公式,并向下填充

=INDEX(B:B,MATCH(I2,D:D,0),1)

公式解析

MATCH(I2,D:D,0)可以确定查询的班级在数据表D列中的位置,这就是需要的行号。再用INDEX返回B列中这一行、第一列的值。

55、INDEX函数:通过行列索引号来引用数据。改变数据布局,INDEX、MATCH结合使用,区域旋转,向右旋转90度

二维表查询

如下图,A:G列为成绩数据表,第一行为标题行。需要查找I列班级对应的数学、生物、英语分数。

本例可以使用VLOOKUPMATCH来完成,也可以使用INDEX配合两个MATCH来查找。需要引用的数据就是成绩表中,班级所在行和科目所在列交叉处的值,而行号和列号都可以用MATCH来确定。

J2单元格输入公式,并向右向下填充,注意单元格的绝对引用和相对引用。

=INDEX($A$1:$G$9,MATCH($I2,$A$1:$A$9,0),MATCH(J$1,$A$1:$G$1,0))

示例3、数据区域旋转以向右旋转90度为例

如下图,A1:D5区域是一个5×4的区域,向右旋转90度后,将变为右边4×5的区域,数据位置变化如图。

结果中的第1行数据,来源于数据源的第1列。其中:

1列数据17,对应最后1行(第5行),第1列;

2列数据13,对应倒数第2行,第1列;

3列数据9,对应倒数第3行,第1列;

。。。

结果中的第2行数据,来源于数据源的第2列。其中:

1列数据18,对应最后1行(第5行),第2列;

2列数据14,对应倒数第2行,第2列;

3列数据10,对应倒数第3行,第2列;

。。。

通过上述分析,在引用源数据过程中,随着公式向下填充,行号不变,列号要增大;随着公式向右填充,行号要减小,列号不变。因此,使用INDEX的公式为

=INDEX($A$1:$D$5,ROWS($A$1:$D$5)-COLUMN(A$1)+1,ROW($A1))

公式解析:

行索引号ROWS($A$1:$D$5)-COLUMN(A$1)+1因为向右填充时,行号要从最后1行到第1行,依次递减,而向下填充公式时,行号不变。因此,用ROWS($A$1:$D$5)得到区域的总行数,再减COLUMN(A$1)1COLUMN(A$1)在向下填充公式时不变,向右填充公式时,会从1依次增大。

列索引号ROW($A1):向下填充公式时,会从1依次增大,向右填充公式时,值不变。