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。关于不支持将逻辑数据隐式转换为算术数据的原因此函数的数据,我认为我们无法在在线论坛上确定其原因,但这是一个问题,您可以直接向函数的作者提出。