INDEX函数,不仅获取数据,还能得到单元格区域
通常情况下,使用INDEX函数来获取数据,其通用语法形式为:
=INDEX(array,row_num,column_num)
即,获取参数row_num指定的行和参数column_num指定的列交叉的单元格中的数据。
INDEX函数常与MATCH函数配合使用,以构建强大的查找公式。
下图1展示了INDEX函数的一些基本用法。
图1
然而,INDEX函数不仅可以获取单元格区域或数组中的数据,也可以获取区域。
使用INDEX函数获取整列或整行
使用INDEX函数可以获取查找的区域中的整列或者整行。要获取区域中的整列,只需将参数row_num设置为0或为空,这意味着你想获取该列中的所有行。同理,指定参数column_num为0或空将获取整行。
例如,下图2所示的工作表,使用INDEX函数获取单元格区域D3:D16,从而对该区域中的数据求和:
=SUM(INDEX(B3:D16,,MATCH("成绩",B2:D2,0)))
或:
=SUM(INDEX(B3:D16,0,MATCH("成绩",B2:D2,0)))
图2
使用INDEX函数创建动态区域
可以使用INDEX函数与COUNTA函数配合来创建动态区域,如下图3所演示。
图3
刚开始列表中的数据为单元格区域A2:C6。我们创建一个名为“Student”的动态命名区域。
在“名称框”中输入:Student
在“引用位置”框中输入公式:
=Sheet2!$A$2:INDEX(Sheet2!$A:$C,COUNTA(Sheet2!$A:$A),3)
注意,此时公式中的INDEX(Sheet2!$A:$C,COUNTA(Sheet2!$A:$A),3)返回列C中最后一个数据单元格。
因此,当数据扩充至单元格C10时,名为“Student”的区域也自动扩展为A2:C10。
在下一篇文章中,我们将会看到使用INDEX函数、MATCH函数和COUNTA函数相配合,创建更加灵活的动态区域。
结语
理解INDEX函数的用法并灵活使用,不仅能够查找并获取数据,而且可以获取单元格区域,从而创建更强大实用的公式。