2

我决定学习如何使用函数SumProduct(),所以我创建了这个非常基本的 Excel 表:

A    B
1    1
2    2

我计算=SumProduct(A2:A3,B2:B3)了一下,结果是 5,和预期的一样。

然后我有了用 替换 B2 的想法=(1=1),这显然是TRUE,我所看到的也证实了这一点。

但是,=SumProduct()结果变成了 4,显然booleans在 Excel 中被视为零。
所以,我决定再写一个公式:(=A2*B2+A3*B3SumProduct()

因此,显然,常规数学运算符(*, +, ...)将boolean值视为“预期的”(TRUE变为 1 并FALSE变为 0),但对于一些更详细的函数(如SumProduct()),情况似乎并非如此。

这背后的解释是什么?为了避免不愉快的意外,我想了解正在发生的事情。我想我正在使用 Excel-365(我怎么能确定?)。

4

1 回答 1

2

参考本文档:https ://www.ablebits.com/office-addins-blog/2016/08/24/excel-sumproduct-function-formula-examples/

这说明您需要--在值之前添加前缀,以便将其转换为您期望的 1 或 0。因此,正如您正确观察到的那样,该函数不支持布尔值。你也可以使用一个IF函数,它的第一个参数是你拥有的逻辑表达式,第二个参数是1,第三个参数是0。关于这个函数不支持将逻辑数据隐式转换为算术数据的原因,我认为我们将无法在在线论坛上实际确定其原因,但这是一个您可以直接向该功能的作者提出的问题。

于 2021-09-28T12:53:02.533 回答