在Excel中,INDEX函数是我们经常使用的函数之一,可以返回一个值,然而,如果将其行参数或者列参数指定为0(或者忽略),那么会返回对指定列或行的引用。注意,这里返回的不是单个值,而是一组值。
如下所示,公式:
=INDEX(A1:D4,0,2)
或者:
=INDEX(A1:D4,,2)
返回数据区域A1:D4中的第2列,即单元格区域B2:B4。
如下所示,公式:
=INDEX(A1:D4,3,0)
或者:
=INDEX(A1:D4,3,)
返回数据区域A1:D4中的第3行,即单元格区域A3:D3。
如果行列参数都忽略或者都指定为0,则返回对整个数据区域的引用,例如:
=INDEX(A1:D4,0,0)
或者
=INDEX(A1:D4,,)
INDEX函数不仅能够生成对实际单元格区域的引用,还可以让其生成一组TRUE/FALSE值,例如公式:
=INDEX(A1:A10<>””,0,0)
结果如下所示。
上述公式也可以写为:
=INDEX(A1:A10<>””,)
或者:
=INDEX(A1:A10<>””,,1)
或者:
=INDEX(A1:A10<>””,,)
实际上,我们让INDEX函数返回数组,大多是为了能够在公式的进一步计算中引用/操纵该数组。例如,找到第1列中第一个非空单元格的位置:
=MATCH(TRUE,INDEX(A1:A10<>””,0,0),0)
结果如下所示。