Excel基于月度自动累计求和问题(财年为2月至次年1月)
财年滚动累计求和解决方案
针对你需要的当年2月至次年1月财年周期自动滚动累计求和需求,这里给你两个实用的公式方案:
方案一:基于月份数字的精准匹配
这个公式通过将自然月转换为财年相对序号,直接定位求和范围:
=SUM(INDEX(C10:N10,,1):INDEX(C10:N10,,MATCH(MONTH(TODAY()),IF(MONTH(TODAY())>=2,MONTH(TODAY())-1,MONTH(TODAY())+11),0)))
逻辑说明:
MONTH(TODAY())拿到当前月份的数字(比如3月就是3)- 用
IF把自然月转成财年的相对序号:2月对应1,3月对应2...1月对应12 MATCH找到当前财年序号在表格列中的位置- 用两个
INDEX定位求和的起始列(2月列)和结束列(当前月列),最后用SUM完成累计
方案二:适配英文月份表头的方案
如果你的表头是英文月份全称,用这个公式更稳妥:
=SUMPRODUCT(C10:N10,--(MATCH(Table10[[#Headers],[February]:[January]],TEXT(DATE(2020,2,1)+SEQUENCE(12,1,0),"mmmm"),0)<=MATCH(TEXT(TODAY(),"mmmm"),TEXT(DATE(2020,2,1)+SEQUENCE(12,1,0),"mmmm"),0)))
逻辑说明:
TEXT(DATE(2020,2,1)+SEQUENCE(12,1,0),"mmmm")生成财年顺序的月份列表(从Feb到Jan)- 两次
MATCH分别获取表头月份和当前月份在这个财年列表里的位置 --(...)把逻辑判断结果转成0或1,SUMPRODUCT只对位置小于等于当前月份的列求和
你之前的问题出在哪?
- 第一个公式只定位了当前月份的列,没有扩展到财年起始的2月列,所以只能拿到单月数值
- 第二个公式用
SUMIFS直接比较月份文本,文本是按字母顺序比对的(比如"April"会比"March"小),逻辑完全不对,所以得到了异常的-43结果
内容的提问来源于stack exchange,提问作者Glen Newell
相关产品推荐
相关产品推荐

