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

Power BI:折线簇状柱形图忽略表格单元选择的实现难题

Power BI 动态图表需求问题

需求说明

在表格(Visual 3)中选择特定单元时,折线簇状柱形图(Visual 2)需实现以下效果:

  • 柱形部分:仅显示所选单元的租金随时间变化数据
  • 折线部分:始终保持显示城市整体租金变化(原Visual 4的折线效果)
    最终目标是移除Visual 4,将两种效果整合到Visual 2中。

已尝试使用ALL、ALLEXCEPT、REMOVEFILTERS函数,但均未达到预期效果,以下是当前创建的度量值:

现有度量值

柱形度量值:Rent change in

Rent change in = 
var one_year_filter = FILTER('TABLE', DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) >=0 && DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) <= 12)                                                                                                    
var two_year_filter = FILTER('TABLE', DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) >=0 && DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) <= 24) 

return
IF(ISBLANK(SWITCH(SELECTEDVALUE('Expiring Month'[Value]),

"Last 12 Months",CALCULATE(SUM('TABLE'[Rent Change in]), one_year_filter),         
"Last 24 Months",CALCULATE(SUM('TABLE'[Rent Change in]), two_year_filter),

CALCULATE(SUM('TABLE'[Rent Change in]))
)), blank(), SWITCH(SELECTEDVALUE('Expiring Month'[Value]),

"Last 12 Months",CALCULATE(SUM('Table'[Rent Change in]), one_year_filter),        
"Last 24 Months",CALCULATE(SUM('Table'[Rent Change in]), two_year_filter),
CALCULATE(SUM('Table'[Rent Change in]))
))

折线度量值:Rent Change in by City

Rent Change in by City = 

var one_year_filter = FILTER('TABLE', DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) >=0 && DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) <= 12)                                                                                                    
var two_year_filter = FILTER('TABLE', DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) >=0 && DATEDIFF('TABLE'[Contr.strt],TODAY(),MONTH) <= 24) 

return
IF(ISBLANK(SWITCH(SELECTEDVALUE('Expiring Month'[Value]),

"Last 12 Months",CALCULATE(AVERAGE('TABLE'[Rent Change in]), ALLEXCEPT(DIM,DIM[City]), REMOVEFILTERS('TABLE'[Unit]), one_year_filter),         
"Last 24 Months",CALCULATE(AVERAGE('TABLE'[Rent Change in]), ALLEXCEPT(DIM,DIM[City]), REMOVEFILTERS('TABLE'[Unit]), two_year_filter),

CALCULATE(AVERAGE('TABLE'[Rent Change in]), ALLEXCEPT(DIM,DIM[City]),REMOVEFILTERS('TABLE'[Unit]))
)), blank(), SWITCH(SELECTEDVALUE('Expiring Month'[Value]),

"Last 12 Months",CALCULATE(AVERAGE('TABLE'[Rent Change in]), ALLEXCEPT(DIM,DIM[City]), REMOVEFILTERS('TABLE'[Unit]), one_year_filter),         
"Last 24 Months",CALCULATE(AVERAGE('TABLE'[Rent Change in]), ALLEXCEPT(DIM,DIM[City]), REMOVEFILTERS('TABLE'[Unit]), two_year_filter),   

CALCULATE(AVERAGE('TABLE'[Change in]), ALLEXCEPT(DIM,DIM[City]),REMOVEFILTERS('TABLE'[Unit]))
)
)

问题排查与修正建议

  1. 上下文筛选冲突:现有折线度量值中,ALLEXCEPT(DIM,DIM[City])可能未完全清除单元筛选,若DIM表与TABLE表的关联包含单元字段,需确保只保留城市维度的筛选。
  2. 筛选器应用顺序:建议将时间筛选逻辑直接整合到CALCULATE的筛选参数中,避免单独定义变量后嵌套导致的筛选上下文覆盖。
  3. 简化度量值逻辑:重复的SWITCH逻辑可合并,减少冗余,同时检查'TABLE'[Change in]是否为笔误(应与前面的Rent Change in字段保持一致)。

修正后的折线度量值示例:

Rent Change in by City = 
VAR SelectedPeriod = SELECTEDVALUE('Expiring Month'[Value])
VAR Result = 
    SWITCH(
        SelectedPeriod,
        "Last 12 Months", CALCULATE(
            AVERAGE('TABLE'[Rent Change in]),
            REMOVEFILTERS('TABLE'[Unit]),
            ALLEXCEPT('DIM', 'DIM'[City]),
            DATEDIFF('TABLE'[Contr.strt], TODAY(), MONTH) >= 0 && DATEDIFF('TABLE'[Contr.strt], TODAY(), MONTH) <= 12
        ),
        "Last 24 Months", CALCULATE(
            AVERAGE('TABLE'[Rent Change in]),
            REMOVEFILTERS('TABLE'[Unit]),
            ALLEXCEPT('DIM', 'DIM'[City]),
            DATEDIFF('TABLE'[Contr.strt], TODAY(), MONTH) >= 0 && DATEDIFF('TABLE'[Contr.strt], TODAY(), MONTH) <= 24
        ),
        CALCULATE(
            AVERAGE('TABLE'[Rent Change in]),
            REMOVEFILTERS('TABLE'[Unit]),
            ALLEXCEPT('DIM', 'DIM'[City])
        )
    )
RETURN IF(ISBLANK(Result), BLANK(), Result)

说明:

  • 使用REMOVEFILTERS('TABLE'[Unit])直接清除单元维度的筛选,确保折线不受单元选择影响
  • 将时间条件直接作为CALCULATE的筛选参数,避免变量嵌套导致的上下文问题
  • 合并重复的SWITCH逻辑,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:04:56