如何实现财年(10月-次年9月)重置的滚动累计求和?
Excel财年(10月-次年9月)滚动累计总额公式实现
需求说明
实现Excel表格中财年滚动累计列,财年周期为每年10月至次年9月,累计值在每年10月时重置为当月数值,其余月份为当前财年起始(10月)至当月的数值总和,要求使用纯Excel公式(非VBA/Power Query)。
完整公式及解析
兼容全版本Excel的数组公式
=IF(MONTH(A2)=10,B2,SUM(INDEX(B:B,MAX(IF(MONTH(A$2:A2)=10,ROW(A$2:A2),0))):B2))
- 旧版Excel输入时需按 Ctrl+Shift+Enter 完成数组公式确认(Excel 365/2021无需此操作)
- 公式拆解:
MONTH(A2)=10:判断当前行是否为财年起始月,若是直接取当月数值B2MAX(IF(MONTH(A$2:A2)=10,ROW(A$2:A2),0)):从A$2到A2范围内,找到最后一个月份为10的行号,定位当前财年累计起始行INDEX(B:B, 上述行号):定位累计起始行对应的B列单元格,结合B2形成求和区域,最终用SUM计算累计总额
无需数组输入的简化公式(兼容Excel 2010+)
=IF(MONTH(A2)=10,B2,SUM(INDEX(B:B,LOOKUP(2,1/(MONTH(A$2:A2)=10),ROW(A$2:A2))):B2))
LOOKUP(2,1/(MONTH(A$2:A2)=10),ROW(A$2:A2)):利用LOOKUP忽略错误值的特性,直接匹配范围内最后一个10月的行号,无需数组输入,操作更便捷
Excel 365/2021专属简化公式
=IF(MONTH(A2)=10,B2,SUM(FILTER(B$2:B2,MONTH(A$2:A2)=10,A2):B2))
- 借助FILTER函数筛选当前行之前的所有10月行,结合默认值定位起始行,逻辑更直观
使用注意事项
- A列为日期列,需确保单元格格式为日期格式,避免公式识别错误
- 公式中的
A$2:A2和B$2:B2为混合引用,下拉填充时会自动扩展范围,无需手动调整
内容的提问来源于stack exchange,提问作者InfiniteFox
相关产品推荐
相关产品推荐

