具有非连续范围的Excel INDIRECT()仅适用于COUNTIF()?

我需要使用Excel间接()函数来引用一个非连续的范围。 这( 如何在COUNTIF中定义一个不连续范围 )的答案举了一个例子。

总之,OP有两个范围,C1:C15和A16。 每个范围包含A或B,并且计算这两个范围内B的数量的方法是

=SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"B")) 

如果我把所有的B都改成1,将A改成0,并且稍微改变这个公式

 =SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"1")) 

那么这仍然有效…但是! 这不:

 =SUM(INDIRECT({"C1:C15","A16"})) 

我可以解决这个问题,但是我错过了一些关于COUNTIF()函数的基本魔法,它以某种方式影响了INDIRECT()函数的行为。

COUNTIF使用不连续的范围是不可能的。

第一个公式的实际情况是, COUNTIF被一个(两个)单独范围的数组所馈送,因此结果是两个计数结果的数组,然后使用SUM来对数组进行求和。

如果你实际上有1和0,你不会用这个公式和他们

=SUM(C1:C15,A16)

如果你只是想找出为什么你的最后一个公式不起作用,那么,是的,我认为COUNTIF工作方式不同 – 它能够处理一系列的范围,而其他一些function则不能。 这对于“IFS”函数族是很常见的,所以SUMIF也可以这样做