Excel公式将布尔值转换为{0,1}


25

什么是Excel公式布尔值转换{FALSE, TRUE}{0, 1}

假设比短一=IF(cond,1,0)


1
有趣的是, =a1+a2将返回逻辑的数字总和,但=sum(a1:a2)不会返回。Excel中2013年
卡尔Witthoft

Answers:


37

您可以通过投射来实现。“ int”函数舍入到最接近的整数。如果布尔值在A1中,则公式为:

=INT(A1)

与此类似,=ROUND(A1,0)在这种情况下也做同样的事情。
dangowans 2012年

=CEILING(A1,1)
dangowans,2012年

谢谢,演员是我一直在寻找的“标准”方式。没想到我会尝试,实际上是在期待它“更难”……
anol

13

--是将布尔值转换为int的最常用方法-这就是为什么--出于这种原因,您看到其中包含in的函数的原因。它将把{TRUE,FALSE,FALSE}的数组变成{1,0,0},它们可以用来乘以其他数组

例:

从该地区返回的总销售额为9或更低:

团队销售
1 20美元
2 $ 30
11 $ 90

式:

=SUMPRODUCT(--(A2:A4<=9),B2:B4)

计算方式

=SUMPRODUCT(--(True,True,False),($20,$30,$90))
=SUMPRODUCT((1,1,0),($20,$30,$90))
=1 * $20 + 1 * $30 + 0 * $90
=$20 + $30 + $0
=$50

@ fixer1234,此编辑有帮助吗?
SeanC

我已经在网上看到了该--方法,但是我必须承认,使用该公式INT更加清晰,优雅。:)
loved.by.Jesus

7

乘以“ 1”。例如 真* 1 = 1和假* 1 = 0。

例如,如果单元格A1包含布尔值,请在相邻单元格中输入公式:

=A1*1

注意:-- True,True + 0和True / 1具有相同的效果。


这不一定更具可读性,但是比问题中的公式“短”。
dangowans 2012年

真好。但这是否意味着没有内置的转换公式?像“ BOOLVAL”或“ BOOLINT”之类的东西?
酒精

这非常有用,但是我正在寻找更“合适”的解决方案,例如@dangowans的解决方案,因此我将接受他的解决方案。不管怎么说,还是要谢谢你!
酒精

这两个答案都遵循相同的原理-对布尔值应用数字运算将返回数字答案。
Excellll 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.