INDEX函数数组公式

INDEX函数数组公式 , 我们知道 , 数组公式在输入完后必须按Ctrl+Shift+Enter键来强制公式为数组公式 。然而 , 我们已经习惯了在输入完后直接按Enter键 , 有没有一些技巧能够避免按Ctrl+Shift+Enter键但又能够达到数组公式的效果呢?
在上一篇文章中 , 我们解了通过适当设置参数可以让INDEX函数返回整行或整列 , 这表明INDEX函数可以强制返回数组来传递给另一个函数 。否则 , 该函数就需要作为数组公式 , 也就是说在公式输入完后要按Ctrl+Shift+Enter键 。
下面举一个例子来说明 。
例如 , 要求列A中的单元格区域A1:A10中第一个非空单元格的相对位置 。如果使用公式:
【INDEX函数数组公式】=MATCH(TRUE,A1:A10<>””,0)
将返回#N/A , 如下所示 。(说明:在Office 365中 , 已增加这种自动转换功能 。如果你使用的是Office 365 , 结果可能与这里的不同)

INDEX函数数组公式


必须采用数组公式输入才能得到正确结果 , 即输入完后要按Ctrl+Shift+Enter键 , 如下所示 。
INDEX函数数组公式


无需数组公式 , 使用INDEX函数可以得到相同的结果:
=MATCH(TRUE,INDEX(A1:A10<>””,,),0)
如下所示 。
INDEX函数数组公式


在公式中 , 忽略了行参数和列参数 , 这将强制INDEX函数返回整个“列”区域 。这里的列不是工作表单元格区域A1:A10 , 而是由10个布尔值组成的列数组:
=MATCH(TRUE,INDEX({FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE},,),0)
转换为:
=MATCH(TRUE,{ FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE},0)
返回结果3 。
注意 , 如果想避免Ctrl+Shift+Enter而使用INDEX函数 , 会使公式变得更长 , 也会占用更多的Excel资源 。然而 , 我们可以将这个技术作为数组公式的替代方法 。

    猜你喜欢