如果目标数组包含无意间看起来像日期的文本,则CountIF
似乎将返回错误的结果。我一直在寻找解决方案,但还没有找到遇到相同问题的人。
要复制该问题:
单元格A1
:10-1968(作为文本,可以加撇号开头)
单元格A2
:= COUNTIF(A1,"=10-68")
单元格A2
将返回1,因为它将A1解释为包含日期(1968年10月1日),即使其格式设置为文本。在我的情况下,值10-1968是Office#10,项目#1968(与日期完全无关)。
我尝试了TEXT
函数和LEFT
函数的各种组合,但没有改善。我认为,如果看起来像日期,CountIF
将会以这种方式看到它。如何防止这种行为?
注意:我不想使用SumProduct
或编写UDF。而且,我用MATCH
解决了返回NA
的问题,因此需要将其包装在ISNA
中。但这使公式变得更加复杂,我想知道如何通过普通使用CountIF
来解决这个问题。
谁知道什么时候字符串看起来像日期?除非有办法仅在完全匹配的文字上进行匹配,否则这似乎会使CountIf
的使用不可靠。
答案 0 :(得分:2)
尝试:
=COUNTIF(A1:A5,"*10-68")
使用星号通配符*
将使您的COUNTIF()
工作。神奇地它将得到正确的结果。在您的情况下,这似乎是一个有效的选择,因为您的第一个-
前只有两个数字。前面的星号不会造成伤害。在COUNTIF()
中使用通配符的情况下,似乎Excel仅开始使用真实的文本字符串。我本人对此没有任何解释。
另一个选择,如前所述,是将COUNTIFS()
与?
通配符组合一起使用,如下所示:
=COUNTIFS(A1,"10-68",A1,"??-??")
示例:
B1
中的公式是:
=COUNTIF(A1:A5,"*10-68")
或
=COUNTIFS(A1:A5,"10-68",A1:A5,"??-??")
答案 1 :(得分:0)
使用输入的=SUM(IF(A1="10-68",1,0))
作为数组公式(通过按 Ctrl + Shift + Enter )可以为您提供结果正在寻找。