Excel中如何统计1月数据中值大于0的记录数?
问题描述
我需要统计表格中仅属于1月且值>0的记录数(示例中绿色高亮的记录数为5)。目前我已经有可行公式统计1月的所有记录(包含值=0的记录):
=SUMPRODUCT((MONTH(Table1[DATE])=MONTH(1&P18))*(Table1[DATE]<>"")
其中单元格P18的值为"GENNAIO"(即意大利语的“一月”)。请问有没有能自动返回目标结果的公式?
解决方案
基于原SUMPRODUCT公式扩展:直接在原条件中加入值>0的判断,假设值所在列是
Table1[VALUE](替换为你实际的列名):=SUMPRODUCT((MONTH(Table1[DATE])=MONTH(1&P18))*(Table1[DATE]<>"")*(Table1[VALUE]>0))使用更精准的COUNTIFS函数:如果需要限定当年1月的记录(避免跨年份统计),用COUNTIFS更直观:
=COUNTIFS(Table1[DATE],">="&DATE(YEAR(TODAY()),MONTH(1&P18),1),Table1[DATE],"<="&EOMONTH(DATE(YEAR(TODAY()),MONTH(1&P18),1),0),Table1[VALUE],">0")这个公式通过定位当年1月的完整日期范围(当月第一天到最后一天),再筛选值>0的记录,结果更精准。
兼容跨年份统计的版本:如果要统计所有年份的1月且值>0的记录,简化SUMPRODUCT公式即可:
=SUMPRODUCT((MONTH(Table1[DATE])=MONTH(1&P18))*(Table1[VALUE]>0))日期为空的记录会因MONTH返回错误值被SUMPRODUCT自动忽略,无需额外判断。
内容的提问来源于stack exchange,提问作者Simone Strippoli
相关产品推荐
相关产品推荐

