如何使用COUNTIFS实现多条件计数(排除含FREE的$J:$J列单元格)
解决COUNTIFS多条件计数中排除包含特定文本的问题
看起来你在使用COUNTIFS进行多条件计数时遇到了两个头疼的问题:公式无法正常生效,以及通配符星号保存后莫名消失。我来帮你拆解问题原因和解决办法:
问题核心:错误的不等于运算符
你公式里针对J列的条件写了"!*FREE*",这是关键错误。在Excel的COUNTIF/COUNTIFS函数中,要排除包含特定文本的单元格,得用<>(不等于运算符),而不是!。!在Excel里是用来分隔工作表和单元格引用的(比如Sheet1!A1),根本不是条件判断里的不等于符号。
星号消失的根源
当你输入"!*FREE*"时,Excel会错误解析这个条件——它把!当成了引用符号,导致后面的星号无法被识别为通配符,最终保存后星号就被忽略消失了。换成<>后,引号里的内容会被正确识别为文本条件,星号就能正常保留了。
修正后的COUNTIFS公式
把J列的条件改成"<>*FREE*",完整公式如下:
=COUNTIFS(Results!$C:$C,$A$2,Results!$B:$B,A34,Results!$H:$H,$F$6,Results!$J:$J,"<>*FREE*")
替代方案:用SUMPRODUCT规避通配符问题
如果你还是碰到通配符的兼容问题,可以试试SUMPRODUCT函数,逻辑更直观,也不容易出解析错误:
=SUMPRODUCT(--(Results!$C:$C=$A$2),--(Results!$B:$B=A34),--(Results!$H:$H=$F$6),--(ISERROR(SEARCH("FREE",Results!$J:$J))))
这个公式的逻辑是:
- 每个
--(条件)把布尔值(TRUE/FALSE)转换成1/0 - SEARCH("FREE", J列)会查找包含FREE的单元格,找不到就返回错误
- ISERROR把错误转为TRUE(也就是不包含FREE的单元格),最后所有条件相乘后求和,得到符合所有要求的计数
快速验证小技巧
你可以先单独测试J列的排除条件:
=COUNTIF(Results!$J:$J,"<>*FREE*")
确认这个公式能正确统计J列不包含FREE的单元格数量后,再把其他条件加回COUNTIFS里,这样更容易定位问题。
内容的提问来源于stack exchange,提问作者Johnny Cardel
相关产品推荐
相关产品推荐

