使用SUMIFS按日期区间计算月总降水返回0值的公式排查
公式返回0的核心原因
你的日期判断逻辑写反了,两个条件的比较符号完全颠倒:
当前公式的筛选规则是「日期 ≤ 2003年9月1日 且 日期 ≥ 2003年9月30日」,不存在任何日期能同时满足这两个互斥的条件,因此求和结果必然为0。
单月公式修正
把两个比较符调换位置即可得到2003年9月的正确计算结果,修正后公式如下:
=SUMIFS(B2:B8036,C2:C8036,">="&DATE(2003,9,1),C2:C8036,"<="&DATE(2003,9,30))
更稳妥的通用写法是用「小于次月1日」替代「小于等于当月最后一天」,不需要记忆每个月的实际天数,避免大小月、闰年2月算错天数的问题,2003年9月的通用写法为:
=SUMIFS(B2:B8036,C2:C8036,">="&DATE(2003,9,1),C2:C8036,"<"&DATE(2003,10,1))
批量计算2000-2021年所有月份降水的方案
不需要逐个修改年份、月份写公式,按以下步骤操作即可一次性完成统计:
- 在空白列(比如E列)从第二行开始,依次填入所有待统计月份的首日日期,即从2000/1/1开始,按月份递增填充到2021/12/1
- 在相邻的F2单元格输入以下公式,下拉填充到所有月份行即可:
=SUMIFS(B:B,C:C,">="&E2,C:C,"<"&EDATE(E2,1))
公式说明:
EDATE(E2,1)会自动返回E2日期向后顺延1个月的对应日期,自动适配大小月、闰年2月的天数差异,不需要手动调整日期参数- 如果输入EDATE后返回错误值,可以将公式替换为不需要加载项的版本,效果完全一致:
=SUMIFS(B:B,C:C,">="&E2,C:C,"<"&DATE(YEAR(E2),MONTH(E2)+1,1))
内容的提问来源于stack exchange,提问作者EmmaE
相关产品推荐
相关产品推荐

