仅当FOB Actual存在时计算加权平均并自动更新<code>'YTD' for FOB Target</code>
嘿,我来帮你搞定这个动态加权平均的需求!下面是针对你场景的具体解决方案:
解决方案:动态加权平均填充YTD for FOB Target
核心思路
我们需要自动识别已有FOB Actual数据的月份,只对这些月份计算「FOB Target × Sales Volume Target」的加权平均(权重为Sales Volume Target),并且在新增Actual数据时,公式能自动扩大计算范围,更新结果。
公式实现(以Excel为例)
假设你的表格结构对应如下:
- A列:月份(比如2018年1月-12月)
- B列:FOB Actual(有数据的月份即为有效计算范围)
- C列:FOB Target
- D列:Sales Volume Target
- 目标单元格(比如E1):存放YTD for FOB Target的结果
在目标单元格中输入以下公式:
=SUMPRODUCT(--(B2:B13<>""), C2:C13, D2:D13) / SUMPRODUCT(--(B2:B13<>""), D2:D13)
公式拆解
--(B2:B13<>""):把B列里非空的FOB Actual单元格转换成数值1,空单元格转换成0,以此精准筛选出需要计算的月份。- 第一个
SUMPRODUCT:计算所有有效月份的「FOB Target × Sales Volume Target」总和,这是加权平均的分子部分。 - 第二个
SUMPRODUCT:计算所有有效月份的Sales Volume Target总和,作为加权平均的分母(权重总和)。 - 两者相除,就得到了目标期间的加权平均结果。
自动更新特性
当你在B列(比如2018年5月对应的单元格)填入FOB Actual数据后,公式会自动识别这个新增的非空单元格,把5月的Target数据纳入计算范围,自动重新算出1-5月的加权平均结果,完全不用手动调整公式。
小提示
- 请根据你实际的表格数据范围,调整公式里的单元格区域(比如B2:B13、C2:C13),确保覆盖所有月份的数据。
- 如果出现
#DIV/0!错误,说明当前还没有任何FOB Actual数据,填入第一个月份的Actual后,错误会自动消失。
内容的提问来源于stack exchange,提问作者Irfan
相关产品推荐
相关产品推荐

