You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI计算成本变动加权平均值不随月份更新问题求助

问题根因排查及修复方案

核心问题定位

加权平均值不随月份变动,本质是DAX的上下文筛选和计算对象属性不匹配导致的,常见原因有三类:

  • 「期末库存」是计算列而非度量值:计算列在数据刷新时就固定了每行的结果,不会响应页面上的月份筛选器,导致Sum Product和分母都是全周期的固定值
  • CALCULATE没有限定时间上下文:当前的CALCULATE未明确保留时间筛选,若模型存在多表关联的筛选传递异常,会默认计算全量数据的汇总值
  • 分母「Closing Stock」没有按月份聚合:如果分母直接取单行列值而非当前月份的库存汇总,也会导致比值固定

修复步骤

第一步:将期末库存调整为度量值

原公式调整为:

Closing Stock = 
CALCULATE(
    SUM(Table1[movement]) + SUM(Table1[sale]) + SUM(Table1[sale return]),
    ALLEXCEPT(Table1, Table1[产品ID], '日期表'[日期]) 
    -- 可根据实际业务维度修改,仅保留需要的产品、时间等筛选维度
)

注意:必须先建立独立的日期维度表,且和Table1的日期字段建立一对多关联,否则月份筛选无法正常生效

第二步:调整Sum Product度量值

Sum Product = 
SUMX(
    VALUES('日期表'[年月]), -- 按年月迭代计算每个月的成本*库存
    [Closing Stock] * CALCULATE(AVERAGE(Table1[cost]) + SUM(Table1[cost change])) 
    -- 已默认纳入cost change字段的成本变动影响,可根据实际规则调整
)

第三步:调整加权平均度量值

WA = 
DIVIDE(
    [Sum Product],
    CALCULATE([Closing Stock], ALLSELECTED('日期表'[年月])) -- 分母取当前筛选范围内的总库存
)

补充说明及验证

  • 若需要实现每日/每笔入库后自动更新的滚动移动加权平均,把VALUES('日期表'[年月])改为VALUES('日期表'[日期])即可
  • 验证时把年月字段和WA度量值同时放到表格视觉对象中,调整月份筛选器,确认不同月份的WA值随筛选变化即可

内容的提问来源于stack exchange,提问作者zain qazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:54:09