带有数组公式的 INDEX 与 COUNTA 使用时给出的结果不同,带有 ADDRESS 的 INDIRECT

带有数组公式的 INDEX 与 COUNTA 使用时给出的结果不同,带有 ADDRESS 的 INDIRECT

下表说明了这个问题:

在此处输入图片描述

我想知道某个范围内是否有任何非空白单元格,但是一旦工作表自动生成,我就无法直接引用该范围(B3:B5)。它与某些列有关。

由于性能原因,我想使用函数INDEX而不是INDIRECT,但是当我将INDEX结果传递给时COUNTA,我得到了 3 个非空白单元格,而我只有 2 个。

为什么COUNTA(INDEX($1:$24, {3;4;5}, 2))给出的结果与不同COUNTA(INDIRECT(ADDRESS(3, 2) & ":" & ADDRESS(5, 2)))

答案1

这是因为 INDEX 向 counta 返回一个数组:

在此处输入图片描述

并且空白单元格0在数组中,而 Indirect 返回一个范围:

在此处输入图片描述

在数组中,0算作1但是由于第二个指的是一个范围,它将 B4 视为空并且不将其计算在内。


我们仍然可以使用 INDEX 并向计数器返回一个地址:

=COUNTA(INDEX($1:$24, 3, 2):INDEX($1:$24, 5, 2))

它的优点是不会波动,并且仍将 B4 视为空。

在此处输入图片描述

相关内容