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

DAX中Previous Week Amount计算异常:选中多周时取值错误

DAX计算上周金额异常问题解决

问题说明

我有一张包含FiscalWeeks和Rank字段的FactTable,计算上周金额(Previous Week Amount)时出现异常。

现有DAX公式

Previous Week = 
CALCULATE( 
            SUM(FactTable[Amount]),
            KEEPFILTERS('FactTable'[Week] = MAX('FactTable'[Week] )
    )) 
Current Week = 
CALCULATE( 
            SUM(FactTable[Amount]),
            KEEPFILTERS('FactTable'[Rank] = MIN('FactTable'[Rank] )
    )) 

样本数据

RankProductAmountFiscalWeeks
1R10FY24 WK52
1A5FY24 WK52
2R35FY24 WK51
2A5FY24 WK51
3R20FY24 WK50
3A10FY24 WK50
4R25FY24 WK49
4A25FY24 WK49
5R15FY24 WK48
5A5FY24 WK48
6R30FY24 WK47
6A20FY24 WK47
7R15FY24 WK46
7A25FY24 WK46
8R10FY24 WK45
8A40FY24 WK45

问题表现

选中3个周时,Current Week正确取到选中的最后一周FY24 WK52的金额15,但Previous Week却取到最早的FY24 WK49的金额50,而非与当前周最接近的FY24 WK50的金额30。

期望结果

  • Current Week:15
  • Previous Week:30(与当前周最接近的上一周)

解决方案

修正后的DAX公式

Previous Week = 
CALCULATE( 
    SUM(FactTable[Amount]),
    KEEPFILTERS('FactTable'[Rank] = MIN('FactTable'[Rank]) + 1)
)

原因分析

原Previous Week公式错误使用FiscalWeeks文本字段做匹配,文本排序逻辑与实际周顺序不符,导致多周筛选时返回错误结果。而Rank字段已经明确了周的先后顺序(Rank值越小,周越新),因此基于当前周的最小Rank值加1,即可精准定位到上一周的数据,符合业务期望。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:12:25