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

Power BI矩阵视觉中DAX度量未遵循筛选上下文问题解决

Power BI周环比(W/W Change)矩阵视觉筛选异常问题解决

场景与问题

我在Power BI中有一张存储过去3个月各账户周度销售额的表,包含字段:

  • account:账户ID
  • sales_amount:销售额
  • week_started_at:每周起始日期
    已添加WeekRank列用于对每周进行排名。需要计算各账户销售额的周环比(W/W Change),但使用的DAX度量在表格视觉中正常,在矩阵视觉中却未遵循筛选上下文,导致所有账户的周环比数值一致,不符合预期。

示例表结构

accountsales_amountweek_started_at
123$202024-03-24
123$402024-03-31
123$602024-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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:32:42