按条件统计记录:统计周一对应"A"数量的COUNTIFS公式报错求助
问题分析与解决办法
原公式的问题
COUNTIFS的条件规则要求条件区域和条件值必须是一一对应的匹配关系,你直接将WEEKDAY($C$2:$AG$2)=2作为第二个条件,Excel无法识别这种逻辑判断表达式,只会把它当作一个固定值去匹配$C$2:$AG$2区域的单元格内容,自然得不到正确结果。- 第二个条件的区域是日期单元格,但条件却是对日期计算后的周几判断,两者的匹配逻辑完全不匹配。
正确的解决方法
方法1:用SUMPRODUCT函数(兼容所有Excel版本)
=SUMPRODUCT(--(C3:AG3="A"),--(WEEKDAY($C$2:$AG$2,2)=1))
- 解释:
--将逻辑判断的TRUE/FALSE转换为1/0,两个数组相乘后求和,只有同时满足「单元格是A」和「对应日期是周一」的位置才会贡献1,最终得到总数。其中WEEKDAY的第二参数设为2,让周一返回1,更符合日常计数习惯,也可以保留默认参数(周一返回2),将公式中的=1改为=2。
方法2:用COUNTIFS+BYCOL(仅Excel 365/2021支持)
=COUNTIFS(C3:AG3,"A",BYCOL($C$2:$AG$2,LAMBDA(x,WEEKDAY(x,2))),1)
- 解释:通过
BYCOL遍历日期区域,对每个日期计算周几(周一=1),生成一个新的周几数值区域,作为COUNTIFS的第二个条件区域,再匹配值1即可。
方法3:旧版Excel数组公式
需按Ctrl+Shift+Enter组合键输入(不能直接回车):
=COUNT(IF((C3:AG3="A")*(WEEKDAY($C$2:$AG$2,2)=1),1))
内容的提问来源于stack exchange,提问作者Dhruva
相关产品推荐
相关产品推荐

