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

DAX中用LastNonBlankValue替代MAX获取各数据源最新/上周有效金额

问题:按数据源获取最新及上一有效周的金额计算

现有DAX代码

Current Week Amt = 
    VAR CurrentFiscalWeek = MAX( 'DF'[Fiscal Week num] )
    RETURN
    CALCULATE(
         [Amt],
        'DF'[Fiscal Week num] = CurrentFiscalWeek
    )

Previous Week Amt = 
VAR CurrentFiscalWeek = MAX( 'DF'[Fiscal Week num] )
VAR PreviousFiscalWeek = CurrentFiscalWeek - 1
RETURN
CALCULATE(
    [Amt],
    'DF'[Fiscal Week num] = PreviousFiscalWeek
)

样本数据集

SourceFiscal Week numCurrent Week Amt
Company A525
Company A5110
Company A5020
Company B501
Company B482
Company B473

当前错误结果

SourceCur/Pre WeekAmt
Company A525
Company A5110
Company B520
Company B510

预期结果

SourceCur/Pre WeekAmt
Company A525
Company A5110
Company B501
Company B482

问题原因

原代码使用MAX('DF'[Fiscal Week num])会取整个数据集的最大周数(如52),而非每个Source分组下的最新有效周,导致Company B的计算指向了不存在的周数52、51,最终返回0。

修正后的DAX代码

当前周金额(每个Source的最新有效周)

Current Week Amt = 
VAR CurrentSource = SELECTEDVALUE('DF'[Source])
VAR LatestWeek = 
    LASTNONBLANKVALUE(
        FILTER('DF', 'DF'[Source] = CurrentSource),
        'DF'[Fiscal Week num]
    )
RETURN
CALCULATE(
    [Amt],
    'DF'[Fiscal Week num] = LatestWeek,
    'DF'[Source] = CurrentSource
)

上一有效周金额(每个Source最新周的前一个存在的周)

Previous Week Amt = 
VAR CurrentSource = SELECTEDVALUE('DF'[Source])
VAR LatestWeek = 
    LASTNONBLANKVALUE(
        FILTER('DF', 'DF'[Source] = CurrentSource),
        'DF'[Fiscal Week num]
    )
VAR PreviousValidWeek = 
    LASTNONBLANKVALUE(
        FILTER('DF', 'DF'[Source] = CurrentSource && 'DF'[Fiscal Week num] < LatestWeek),
        'DF'[Fiscal Week num]
    )
RETURN
CALCULATE(
    [Amt],
    'DF'[Fiscal Week num] = PreviousValidWeek,
    'DF'[Source] = CurrentSource
)

代码说明

  1. SELECTEDVALUE('DF'[Source])确保计算范围限定在当前分组的数据源内,避免跨Source取最大值。
  2. LASTNONBLANKVALUE针对每个Source筛选后的数据集,取实际存在的最大周数,保证拿到的是该Source的最新有效周。
  3. 上一有效周的计算,先筛选出当前Source下小于最新周的所有周,再用LASTNONBLANKVALUE取其中最大的存在周数,避免直接减1导致指向无数据的周(比如Company B最新周是50,直接减1的49无数据,因此取实际存在的48)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:28:25