首页 > 解决方案 > 如何防止 COUNTIF 函数将文本解释为日期

问题描述

CountIF如果目标数组包含无意中看起来像日期的文本,似乎会返回不正确的结果。我已经广泛寻找解决方案,但甚至没有找到任何有同样问题的人。

要复制问题:

单元格A1:10-1968(作为文本,可以在前面加上撇号)

单元格A2:=COUNTIF(A1,"=10-68")

细胞A2将返回 1,因为它将 A1 解释为包含日期(1968 年 10 月 1 日),即使它被格式化为文本。就我而言,值 10-1968 是 Office #10,Project #1968(与日期完全无关)。

TEXT我尝试了功能和功能的各种组合,但LEFT没有任何改进。我想如果它看起来像一个约会,我CountIF会这样看。如何防止这种行为?

注意:我不想使用SumProduct或编写 UDF。而且,我解决了MATCH返回的问题NA,因此需要将其包装在ISNA. 但这会产生一个更复杂的公式,我想知道如何通过普通使用来解决这个问题CountIF

谁知道一个字符串什么时候可能看起来像一个日期?这似乎使CountIf使用不可靠,除非有办法让它只匹配精确的文本匹配。

标签: excelexcel-formula

解决方案


尝试:

=COUNTIF(A1:A5,"*10-68")

使用星号通配符*将使您COUNTIF()正常工作。神奇的是它会得到正确的结果。在您的情况下,这似乎是一个有效的选择,因为您的第一个数字前面只有两个数字-。前面的星号不会造成伤害。似乎 Excel 开始仅在COUNTIF(). 我自己对此没有任何解释。

如前所述,另一个选项是COUNTIFS()?通配符组合一起使用,如下所示:

=COUNTIFS(A1,"10-68",A1,"??-??")

例子:

在此处输入图像描述

公式B1为:

=COUNTIF(A1:A5,"*10-68")

或者

=COUNTIFS(A1:A5,"10-68",A1:A5,"??-??")

推荐阅读