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

Power BI中使用Yield Rank切片器按层级筛选数据的异常问题

问题解决思路

问题1:切片器选等级后显示所有曾出现该等级的站点

你当前用计算列Yield Rank做切片器,它是给每行数据单独打等级标签,所以切片器会把所有包含该等级行的站点都筛选出来,而非要求站点的所有日期都符合选中等级。要实现“站点所有日期均为选中Rank”的筛选逻辑,得换用度量值来判断,步骤如下:

  1. 创建度量值,判断当前站点在筛选范围内的所有日期,是否全部符合选中Rank的产量区间:
Is All Rank Selected = 
VAR SelectedRank = SELECTEDVALUE('MGR'[Yield Rank])
// 对应Rank的产量上下限
VAR MinYield = 
    SWITCH(
        SelectedRank,
        5, 4,
        4, 3,
        3, 2,
        2, 1,
        0
    )
VAR MaxYield = 
    SWITCH(
        SelectedRank,
        5, 999, // 用大数替代"大于4"的上限
        4, 4,
        3, 3,
        2, 2,
        1
    )
// 取当前站点的产量极值
VAR PlantMinYield = MIN('MGR'[Sp. Yield])
VAR PlantMaxYield = MAX('MGR'[Sp. Yield])
RETURN
    IF(PlantMinYield >= MinYield && PlantMaxYield <= MaxYield, 1, 0)
  1. 将这个度量值拖到矩阵的筛选器中,设置为「等于1」,这样只有所有日期都符合选中Rank的站点才会显示。
  2. 切片器仍保留原Yield Rank计算列,筛选逻辑由上述度量值控制。

问题2:月度数据显示等级求和而非平均值

Yield Rank作为计算列,矩阵默认对其使用求和聚合,这不符合需求。你需要创建一个计算平均等级的度量值,替换矩阵中的计算列:

Avg Yield Rank = 
AVERAGEX(
    'MGR',
    SWITCH(
        TRUE(),
        'MGR'[Sp. Yield] > 4, 5,
        'MGR'[Sp. Yield] >= 3 && 'MGR'[Sp. Yield] <= 4, 4,
        'MGR'[Sp. Yield] >= 2 && 'MGR'[Sp. Yield] < 3, 3,
        'MGR'[Sp. Yield] >= 1 && 'MGR'[Sp. Yield] < 2, 2,
        1  
    )
)

把矩阵中的Yield Rank计算列替换成这个度量值后,日/月/年各层级都会显示对应时间段的平均Rank,而非求和结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:22:50