TRUE和FALSE不能在SUM()函数中使用

39

我有一个列中的布尔值:

   A
1  TRUE
2  FALSE
3  TRUE
4  TRUE

我意识到在Excel中=TRUE+TRUE返回2,而=TRUE+FALSE返回1,这意味着TRUE等于1FALSE等于0。 但是,无论是数组公式样式还是常规公式样式,SUM(A1:A4)始终返回0。 我希望它返回3(范围内TRUE的数量)。

有一种方法可以得到3,就是使用{=SUM(IF(A1:A4,1,0))}(数组公式样式),但我认为这种方法冗余了... 有没有人能想出比这更简单的解决方案?

3个回答

35

我已经成功地使用COUNTIFS在条件为TRUE的范围内。

=COUNTIF(D2:D51,TRUE)

在我的情况下,countifs/countif、sum等函数在布尔数组中根本不起作用,但是在开头加上--可以解决这个问题。虽然4天前它还能正常工作,使用的是完全相同的电子表格,但现在却返回#N/A。真是奇怪。 - AER
嗯...Excel可以做很多花哨的事情。如果没有电子表格,我会检查您的公式,并确保您的引用是正确的。过去我曾经移动过命名单元格之类的东西,也得到了#N/A的结果。 - cowboydan

26

您可以尝试在范围前添加 -- 并输入为数组。 --将布尔值转换为它们的整数等效项:

=SUM(--(A1:A4))

根据SUM函数的文档

如果参数是数组或引用,则只计算该数组或引用中的数字。 数组或引用中的空单元格、逻辑值或文本将被忽略。


1
谢谢...你有没有其他解决方案,而不是使用“--”? - SoftTimur
1
@SoftTimur你有什么限制吗?如果您不想求和,计数可能是您的最佳选择。但是,如果您需要使用 SUM,那将是最短的解决方案。否则,使用 IF 进行比较的方法也是另一种方式。基本上,由于 SUM 函数在设计上不会对范围内的布尔值求和,因此选项会更加有限 :) - RocketDonkey
3
这是一个需要使用Ctrl-Shift-Enter的数组公式。 - denfromufa

8
如果您想在 true/false 字段上使用 sum 函数,您可以将 true/false 条件乘以 1,这样它就会被计算为 0 或 1。然后您的 sum 函数就可以对该列进行操作。

这是一个被低估的答案,但它是正确的。没有什么比乘以1更简单的了,而且它非常有效。 - newyuppie
但是如何在SUM公式中将真/假值乘以一(也可以加零)呢?或者你是建议使用帮助列吗? - Gravitate
函数求和积(A1:A10*1) - Felipe G. Nievinski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接