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