我认为这应该是一个很简单的问题,但出于某种原因,我无法在任何地方找到解决方案。
在Excel中,我有一个冗长的公式,最终返回一个四项数组--即{1,2,0,0}。我想计算结果数字中大于零的数量。
当我对这个结果使用=COUNT({1,2,0,0})
时,得到的预期答案是4。但是当我尝试使用=COUNTIF({1,2,0,0}, ">0")
时,它会弹出一个错误,说我的公式有问题。
我做错了什么吗?是否有一个数组等效于COUNTIF()?
COUNTIF
函数只能在范围内使用,而COUNT
函数可以利用数组。尝试使用SUMPRODUCT
。下面是您的示例稍微扩展后用来测试公式的形式。它基本上检查数组中的每个值是否大于0,如果是,就给它赋值为1。然后SUMPRODUCT
遍历并添加所有的1,以便得出大于0的值的总数。=SUMPRODUCT(IF({1,0,3,0,5,0,0,6,9,9,0,7,0}>0,1,0))
可能实现此操作最简洁的方法是将从验证检查返回的TRUE
或FALSE
值转换为数字,使用INT
函数。 TRUE
转换为 1
,FALSE
转换为 0
。然后对这些 1 和 0 进行SUM
。
=SUM(INT({1,2,0,0}>0))
=SUM(({1,2,0,0}>0)*1)
或者:
=SUM(({1,2,0,0}>0)+0)
=SUM(({1,2,0,0}>0)+0)
。 - barry houdini
SUMPRODUCT
而不是简单地使用SUM
,我认为这里也可以用SUM
,有什么原因吗? - HAWKSUMPRODUCT
接受数组作为输入,所以我默认使用它。不过你说得对,SUM
看起来可以得到相同的结果,所以这似乎同样正确并且节省了一些打字。 - tittaenälg