Google Sheets中COUNTIFS统计工作日任务次数失效问题求助
COUNTIFS仅统计数组第一个值的原因及解决方法
问题原因
在Google Sheets或Excel中,COUNTIFS默认不支持直接遍历水平数组(如{"Mon","Tue","Wed","Thu","Fri"})作为多条件输入——它只会读取数组的第一个元素进行匹配,因此只会统计"Mon"对应的次数,忽略后续的工作日标识。
解决方法
方法1:SUMPRODUCT函数(跨平台兼容)
这是最通用的解决方案,同时支持Google Sheets和Excel,公式如下:
=SUMPRODUCT((A3:AE3="A")*(ISNUMBER(MATCH(A2:AE2,{"Mon","Tue","Wed","Thu","Fri"},0))))
- 逻辑说明:
(A3:AE3="A"):生成布尔数组,标记出任务为"A"的单元格(TRUE=1,FALSE=0)ISNUMBER(MATCH(...)):判断对应单元格的星期标识是否属于工作日列表,符合条件的返回1,否则返回0- 两个数组相乘后求和,得到同时满足「任务为A」和「是工作日」的总次数
方法2:Google Sheets专属:ARRAYFORMULA+COUNTIFS
如果仅在Google Sheets中使用,可以给COUNTIFS套上ARRAYFORMULA强制其遍历数组条件,再用SUM汇总结果:
=SUM(ARRAYFORMULA(COUNTIFS(A3:AE3,"A",A2:AE2,{"Mon","Tue","Wed","Thu","Fri"})))
- 逻辑说明:
ARRAYFORMULA让COUNTIFS对数组中的每个星期标识单独计算次数,生成5个结果后,由SUM汇总为总次数。
方法3:多COUNTIFS叠加(直观但冗余)
如果工作日数量少,可以直接把每个星期的条件单独写出来,用加号连接:
=COUNTIFS(A3:AE3,"A",A2:AE2,"Mon")+COUNTIFS(A3:AE3,"A",A2:AE2,"Tue")+COUNTIFS(A3:AE3,"A",A2:AE2,"Wed")+COUNTIFS(A3:AE3,"A",A2:AE2,"Thu")+COUNTIFS(A3:AE3,"A",A2:AE2,"Fri")
这种方法无需理解数组逻辑,适合新手快速实现,但条件增多时公式会变得冗长。
内容的提问来源于stack exchange,提问作者Gareth T.
相关产品推荐
相关产品推荐

