Google Sheets按年、月及状态统计数量的公式问题求助
Google Sheets 按年月+决策状态统计汇总解决方案
问题分析
你遇到的两个公式问题根源都是COUNTIFS的参数限制:
COUNTIFS要求所有条件参数必须是单元格范围,不能是函数生成的数组(比如YEAR($B$2:$B$1679)返回的是计算后的数组),这会导致统计失效或报错。
可行解决方案
方案1:用SUMPRODUCT处理数组统计(灵活适配多条件)
SUMPRODUCT支持直接处理数组运算,适合这种按年、月、状态的多维度统计:
总数(对应年月的所有记录)
=SUMPRODUCT(--(YEAR($B$2:$B$1679)=F5), --(MONTH($B$2:$B$1679)=E5))注:
--的作用是把布尔值(TRUE/FALSE)转换为1/0,SUMPRODUCT会将所有条件都满足的项相加计数。已购买数(对应年月+状态为purchase)
=SUMPRODUCT(--(YEAR($B$2:$B$1679)=F5), --(MONTH($B$2:$B$1679)=E5), --($A$2:$A$1679="purchase"))拒绝/稍后提醒数(对应年月+状态为reject或remind later)
=SUMPRODUCT(--(YEAR($B$2:$B$1679)=F5), --(MONTH($B$2:$B$1679)=E5), --(($A$2:$A$1679="reject")+($A$2:$A$1679="remind later")>0))
方案2:用日期范围判断(更高效,适配COUNTIFS)
直接通过日期区间匹配年月,避免数组运算,让COUNTIFS正常工作:
总数
=COUNTIFS($B$2:$B$1679, ">="&DATE(F5,E5,1), $B$2:$B$1679, "<"&DATE(F5,E5+1,1))注:
DATE(F5,E5,1)生成对应年月的第一天,DATE(F5,E5+1,1)生成下一月第一天,两者构成完整的年月区间。已购买数
=COUNTIFS($B$2:$B$1679, ">="&DATE(F5,E5,1), $B$2:$B$1679, "<"&DATE(F5,E5+1,1), $A$2:$A$1679, "purchase")拒绝/稍后提醒数
=COUNTIFS($B$2:$B$1679, ">="&DATE(F5,E5,1), $B$2:$B$1679, "<"&DATE(F5,E5+1,1), $A$2:$A$1679, "reject") + COUNTIFS($B$2:$B$1679, ">="&DATE(F5,E5,1), $B$2:$B$1679, "<"&DATE(F5,E5+1,1), $A$2:$A$1679, "remind later")
内容的提问来源于stack exchange,提问作者Albert Tjornejoj
相关产品推荐
相关产品推荐

