关于Excel中TRUE/FALSE逻辑值与数值运算矛盾的技术问询
Excel逻辑值运算的矛盾与疑问
观察到的矛盾现象
- B组测试:
TRUE>1返回TRUE,说明TRUE大于1;但TRUE+0结果为1,又说明TRUE等于1,同一逻辑值在不同场景表现矛盾 - A组测试:
FALSE>0返回TRUE,说明FALSE大于0;但FALSE+0结果为0,又说明FALSE等于0,同样存在矛盾 - C组测试:
SUMPRODUCT函数计算时未将TRUE计入,此时TRUE被视为0
个人总结的结论
- 在简单比较运算(
>、<、=等)中,TRUE>1、FALSE>0,原因是逻辑值的单元格类型为4,而数值类型为1,类型优先级更高 - 前置一元
+/-符号的TRUE和FALSE仍为逻辑值,比较时依然保持TRUE>1、FALSE>0的结果 - 参与算术二元运算(
+、-、*、/等)时,TRUE会自动转换为1,FALSE自动转换为0 - 部分函数(如
SUMPRODUCT)中,TRUE会被视为0处理 - 单元格类型优先级:
FALSE(类型4)>""(文本空值,类型2)> 0(数值,类型1),根据传递性可得FALSE>0
额外发现的非逻辑情况
- 空单元格与
""、0、FALSE进行相等比较时,均返回TRUE - 但
""、0与FALSE三者之间两两比较时,彼此不相等,完全不遵循数学传递性
问题
- 是否认同上述总结的结论?
- 还有哪些Excel计算规则与常规数学逻辑冲突的类似案例?
内容的提问来源于stack exchange,提问作者vsoler
相关产品推荐
相关产品推荐

