Excel SUMPRODUCT按净销售动态日期区间计算COGS等指标的问题
问题原因
你原公式的核心问题是:判断周期起始列的逻辑绑定了当前计算行的非零值,切换到COGS等其他指标行时,会优先取当前指标行的第一个非零值作为周期起点,自然和净销售额的统计区间不一致。
解决方案
把判断周期起始点的范围固定为净销售额所在的行,使用绝对行引用即可,调整后公式如下(假设净销售额固定在第3行,可根据实际情况修改行号):
=IFERROR(SUMPRODUCT(B3:Y3*(COLUMN(B3:Y3)>=AGGREGATE(15,6,COLUMN($B$3:$Y$3)/($B$3:$Y$3<>0),1)+4*(COLUMNS($B3:B3)-1))*(COLUMN(B3:Y3)<AGGREGATE(15,6,COLUMN($B$3:$Y$3)/($B$3:$Y$3<>0),1)+4*(COLUMNS($B3:B3)))*($B$1:$Y$1<EOMONTH(TODAY(),-1)+1)),0)
逻辑说明
- 调整后的公式将原来的
$B3:$Y3改为$B$3:$Y$3,固定取净销售额行的第一个非零值作为所有指标的周期起始点,不受其他指标行零值影响 - 求和区域保留当前行的相对引用,下拉到COGS等其他指标行时会自动对应到对应行的数值
- 区间内的零值会正常纳入求和,符合统计要求
效果验证
以你给出的示例为例:
净销售额第一个非零值在3月,第一周期固定为3-6月,第二周期固定为7-10月:
- 净销售额第一周期求和:2+3+4+5=14,第二周期求和:2+3+2+3=10,和原计算结果一致
- COGS第一周期求和:0+0+0+2=2,和你预期的区间计算结果匹配
内容的提问来源于stack exchange,提问作者Student Guess
相关产品推荐
相关产品推荐

