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

Power BI中DAX计算4周滚动平均单周切片结果异常问题

问题分析与解决方案

你的DAX公式在单周筛选(除第1周外)时结果错误,核心原因是当前筛选上下文已限定Week为选中单周,CALCULATE默认继承该筛选,导致无法获取目标范围内的历史周数据:

  • 单周筛选时,上下文仅包含选中的Week,CALCULATE中的范围筛选会与上下文筛选合并,最终仅计算选中周的Volume,再除以对应周数得到错误结果;
  • 多选周时,上下文包含多个Week,范围筛选与上下文兼容,能正确计算目标范围内的总和。

修正后的DAX公式

在CALCULATE中添加REMOVEFILTERS(Responsiveness[Week])移除Week列的筛选上下文,确保能获取指定范围内的所有周数据:

_4WeekRollingAverage# = 
VAR CurrentWeek = MAX(Responsiveness[Week])

VAR WeeksToConsider =
    IF(
        CurrentWeek >= 4,
        4,
        CurrentWeek
    )

VAR _PreviousWeek =
    CALCULATE(
        SUM(Responsiveness[Volume]),
        REMOVEFILTERS(Responsiveness[Week]), // 移除Week列的筛选限制
        Responsiveness[Week] >= CurrentWeek - WeeksToConsider + 1 && Responsiveness[Week] <= CurrentWeek
    )

RETURN
    DIVIDE(_PreviousWeek, WeeksToConsider)

也可以用ALL(Responsiveness[Week])替代REMOVEFILTERS,两者效果类似,但REMOVEFILTERS仅移除指定列的筛选,更精准。

验证示例数据

基于你提供的示例数据:

  • 选择第1周:计算结果为 512 / 1 = 512,正确;
  • 选择第2周:计算 (512 + 725) / 2 = 618.5,KPI卡片会根据显示设置四舍五入为618或619,与多选1、2周的结果一致;
  • 选择第4周:计算 (512 + 725 + 798 + 721) / 4 = 689,正确。

内容的提问来源于stack exchange,提问作者Ronit Bhardwaj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:42:40