Power BI矩阵视觉中DAX度量未遵循筛选上下文问题解决
Power BI周环比(W/W Change)矩阵视觉筛选异常问题解决
场景与问题
我在Power BI中有一张存储过去3个月各账户周度销售额的表,包含字段:
account:账户IDsales_amount:销售额week_started_at:每周起始日期
已添加WeekRank列用于对每周进行排名。需要计算各账户销售额的周环比(W/W Change),但使用的DAX度量在表格视觉中正常,在矩阵视觉中却未遵循筛选上下文,导致所有账户的周环比数值一致,不符合预期。
示例表结构
| account | sales_amount | week_started_at |
|---|---|---|
| 123 | $20 | 2024-03-24 |
| 123 | $40 | 2024-03-31 |
| 123 | $60 | 2024-04-07 |
原问题DAX度量
current_week_sales = COALESCE( CALCULATE(SUM(table[sales_amount]), FILTER(ALLSELECTED(table), table[WeekRank] = MAX(table[WeekRank]))),0) last_week_sales = COALESCE( CALCULATE(SUM(table[sales_amount]), FILTER(ALLSELECTED(table), table[WeekRank] = MAX(table[WeekRank]) -1) ), 0) W/W_Change = VAR weekly_comparison = [current_week_sales] - [last_week_sales] RETURN COALESCE( IF(ISBLANK(weekly_comparison), "", DIVIDE(weekly_comparison , [last_week_sales])) ,0)
解决方案
修改后的DAX度量如下,核心是将ALLSELECTED(table)改为仅清除指定列(WeekRank或week_started_at)的筛选上下文,保留账户等其他维度的筛选,确保矩阵视觉中每个账户能独立计算周环比:
current_week_sales = COALESCE( CALCULATE(SUM(table[sales_amount]), FILTER(ALLSELECTED(table[WeekRank]), table[WeekRank] = MAX(table[WeekRank]))),0) last_week_sales = COALESCE( CALCULATE(SUM(table[sales_amount]), FILTER(ALLSELECTED(table[week_started_at]), table[WeekRank] = MAX(table[WeekRank]) -1) ), 0)
内容的提问来源于stack exchange,提问作者SusanD
相关产品推荐
相关产品推荐

