Excel 中如何处理布尔值?
How are boolean values treated in Excel?
我决定学习如何使用函数 SumProduct()
,所以我创建了这个非常基础的 Excel sheet:
A B
1 1
2 2
我计算了=SumProduct(A2:A3,B2:B3)
,结果是5,符合预期。
然后想到把B2换成=(1=1)
,明明就是TRUE
,亲眼所见证实了
但是=SumProduct()
的结果变成了4,显然booleans
在Excel中被当成零了。
所以,我决定写另一个公式:=A2*B2+A3*B3
(这与 SumProduct()
完全相同),但不是得到期望值 4,值仍然是 5。
所以,显然,常规数学运算符(*
、+
、...)将 boolean
值视为“预期”值(TRUE
变为 1 FALSE
变为 0),但对于一些更详细的函数(如 SumProduct()
),情况似乎并非如此。
这背后的解释是什么?我想了解正在发生的事情,以避免不愉快的意外。我想我正在使用 Excel-365(我怎么确定?)。
参考这个文档:https://www.ablebits.com/office-addins-blog/2016/08/24/excel-sumproduct-function-formula-examples/
这说明您需要在您的值之前添加 --
以便将其转换为您期望的 1 或 0。因此,正如您正确观察到的那样,该函数不支持布尔值。你也可以使用一个IF
函数,它的第一个参数是你的逻辑表达式,第二个参数是1,第三个参数是0。关于不支持将逻辑数据隐式转换为算术数据的原因此函数的数据,我认为我们无法在在线论坛上确定其原因,但这是一个问题,您可以直接向函数的作者提出。
我决定学习如何使用函数 SumProduct()
,所以我创建了这个非常基础的 Excel sheet:
A B
1 1
2 2
我计算了=SumProduct(A2:A3,B2:B3)
,结果是5,符合预期。
然后想到把B2换成=(1=1)
,明明就是TRUE
,亲眼所见证实了
但是=SumProduct()
的结果变成了4,显然booleans
在Excel中被当成零了。
所以,我决定写另一个公式:=A2*B2+A3*B3
(这与 SumProduct()
完全相同),但不是得到期望值 4,值仍然是 5。
所以,显然,常规数学运算符(*
、+
、...)将 boolean
值视为“预期”值(TRUE
变为 1 FALSE
变为 0),但对于一些更详细的函数(如 SumProduct()
),情况似乎并非如此。
这背后的解释是什么?我想了解正在发生的事情,以避免不愉快的意外。我想我正在使用 Excel-365(我怎么确定?)。
参考这个文档:https://www.ablebits.com/office-addins-blog/2016/08/24/excel-sumproduct-function-formula-examples/
这说明您需要在您的值之前添加 --
以便将其转换为您期望的 1 或 0。因此,正如您正确观察到的那样,该函数不支持布尔值。你也可以使用一个IF
函数,它的第一个参数是你的逻辑表达式,第二个参数是1,第三个参数是0。关于不支持将逻辑数据隐式转换为算术数据的原因此函数的数据,我认为我们无法在在线论坛上确定其原因,但这是一个问题,您可以直接向函数的作者提出。