我决定学习如何使用函数SumProduct(),因此我创建了一个非常基本的Excel表:
A B
1 1
2 2我计算了=SumProduct(A2:A3,B2:B3),结果是5,与预期的一样。
然后,我有了用=(1=1)代替=(1=1)的想法,这显然是TRUE,我看到的情况证实了这一点。
然而,=SumProduct()结果变为4,显然booleans在Excel中被视为零。
因此,我决定编写另一个公式:=A2*B2+A3*B3 (与SumProduct()完全相同),但是没有得到预期的值4,值保持在5。
显然,正则数学算子(*,+,.)将boolean值视为“预期的”(TRUE变为1,FALSE变为0),但对于一些更详细的函数(如SumProduct()),情况似乎并非如此。
这背后有什么解释?我想了解发生了什么,以避免令人不快的惊喜。我想我正在使用Excel-365 (我怎么能确定呢?)
发布于 2021-09-28 12:53:02
请参阅本文档:https://www.ablebits.com/office-addins-blog/2016/08/24/excel-sumproduct-function-formula-examples/
这说明您需要在值之前添加--,以便将其转换为您所期望的1或0。因此,正如您正确观察到的那样,该函数不支持布尔值。还可以使用IF函数,其第一个参数是所拥有的逻辑表达式,第二个参数为1,第三个参数为0。至于在这个函数中不支持将逻辑数据隐式转换为算术数据的原因,我认为我们无法在网上论坛上实际确定其原因,但这是一个您可以直接向函数的作者提出的问题。
https://stackoverflow.com/questions/69361903
复制相似问题