Excel 包含文本的单元格,'=A1>0' 返回 TRUE,但 '=COUNTIF(A1, ">0")' 返回 0
将包含文本和数字的单元格进行比较时,Microsoft Excel 2021 中的行为不一致。
直接比较(例如=A1 > 0
或)时,如果 A1 包含“NULL”或“Test”之类的文本,=IF(A1 > 0, TRUE, FALSE)
Excel 会返回。但是,使用 时,Excel 会返回 0,就好像表达式的计算结果为 一样。TRUE
=COUNTIF(A1, ">0")
FALSE
例子:

为什么 Excel 除使用 外,会将文本值视为大于 0 COUNTIF
?不应该COUNTIF
计算任何结果为 TRUE 的表达式吗?
比较运算符在两个实例中的工作方式不同。
A1>0
:如果 A1 中的值不是数字,Excel 首先会尝试将该值强制转换为数字。执行此操作时,Excel 会将字符串视为大于零。
COUNTIF(A1,">0")
:此处 Excel 不会尝试将 A1 中的值强制转换range
为数字。如果 A1 中的值不是数字,则会完全忽略该值。
如果 A1 包含1
文本字符串,COUNTIF
同样会忽略它。
要让公式将计入1
文本字符串,必须确保条件正在寻找大于的文本字符串0
:=COUNTIF(A1,">""0""")
当然,后者会忽略 A1 中的数值。另外,还需要注意,比较是按字典顺序进行的。例如,它会认为"2"
大于"101"
因此,如果想使用COUNTIF
并使其行为类似于直接比较A1>0
,则需要组合公式:=COUNTIF(A1,">""0""") + COUNTIF(A1,">0")
评论