excel - Excel中如何处理布尔值?
问题描述
我决定学习如何使用函数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*B3
与SumProduct()
因此,显然,常规数学运算符(*
, +
, ...)将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。关于这个函数不支持将逻辑数据隐式转换为算术数据的原因,我认为我们将无法在在线论坛上实际确定其原因,但这是一个您可以直接向该功能的作者提出的问题。
推荐阅读
- c# - 使用 asmx 的简单 helloworld WebService 在 Windows 2008 R2 IIS 7.5 上发布时不起作用
- testing - JMeter - 测试从 CSV 文件中获取的唯一链接
- arrays - 按多个属性对包含字符串和整数的数组进行排序
- angular - 测试角拦截器(加载微调器)
- python - 运行后的问题:heroku run python manage.py migrate
- vmware - 如何签署 ova 文件?
- javascript - 从 Express.js 查询 MongoDB 的特定字段
- mysql - 在使用 mysqlbulkloader 导入之前更改 csv .txt 文件中的日期格式
- sorting - Primefaces 惰性表排序改变了第一个排序顺序
- ios - 如何在团队成员设备上远程获取 iOS 应用程序的开发人员版本?