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 )
样本数据集
| Source | Fiscal Week num | Current Week Amt |
|---|---|---|
| Company A | 52 | 5 |
| Company A | 51 | 10 |
| Company A | 50 | 20 |
| Company B | 50 | 1 |
| Company B | 48 | 2 |
| Company B | 47 | 3 |
当前错误结果
| Source | Cur/Pre Week | Amt |
|---|---|---|
| Company A | 52 | 5 |
| Company A | 51 | 10 |
| Company B | 52 | 0 |
| Company B | 51 | 0 |
预期结果
| Source | Cur/Pre Week | Amt |
|---|---|---|
| Company A | 52 | 5 |
| Company A | 51 | 10 |
| Company B | 50 | 1 |
| Company B | 48 | 2 |
问题原因
原代码使用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 )
代码说明
SELECTEDVALUE('DF'[Source])确保计算范围限定在当前分组的数据源内,避免跨Source取最大值。LASTNONBLANKVALUE针对每个Source筛选后的数据集,取实际存在的最大周数,保证拿到的是该Source的最新有效周。- 上一有效周的计算,先筛选出当前Source下小于最新周的所有周,再用
LASTNONBLANKVALUE取其中最大的存在周数,避免直接减1导致指向无数据的周(比如Company B最新周是50,直接减1的49无数据,因此取实际存在的48)。
内容的提问来源于stack exchange,提问作者symkly
相关产品推荐
相关产品推荐

