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

Power BI:在同一柱形图中展示TOPN最高与最低值

Power BI 同柱形图展示TOPN最高与最低值解决方案

问题根源

你当前的度量值返回的是TOP4品牌的总天数之和,而非单个品牌的对应天数。在按DIM_Brand[Brand]分类的柱形图中,每个品牌都会显示这个总和,导致结果完全不符合预期;而创建新表时能正常运行,是因为表是直接输出TOP4的品牌及其单独天数,和可视化的上下文逻辑不同。

解决方案一:计算表筛选目标品牌(推荐)

通过创建计算表提前筛选出TOP4最高和最低的品牌,再用常规度量值展示,逻辑清晰且性能更优:

  1. 创建计算表,合并目标品牌
Target_Brands = 
VAR Top4_High = TOPN(4, ALL(DIM_Brand[Brand]), CALCULATE(SUM(FACT_Project_Portfolio[On-Shelf (days)])) , DESC)
VAR Top4_Low = TOPN(4, ALL(DIM_Brand[Brand]), CALCULATE(SUM(FACT_Project_Portfolio[On-Shelf (days)])) , ASC)
RETURN UNION(Top4_High, Top4_Low)
  1. 创建常规总天数度量值
Total_On_Shelf_Days = SUM(FACT_Project_Portfolio[On-Shelf (days)])
  1. 配置柱形图
  • 分类轴选择Target_Brands[Brand]
  • 值选择Total_On_Shelf_Days
    此时所有目标品牌会在同一图表展示,Y轴自动统一,完全符合需求。

解决方案二:单度量值动态过滤

如果不想创建额外表,可通过度量值判断当前品牌是否在目标范围内,仅返回有效数值:

Filtered_On_Shelf_Days = 
VAR Current_Brand = SELECTEDVALUE(DIM_Brand[Brand])
VAR All_Brands_Ranked = 
    ADDCOLUMNS(
        ALL(DIM_Brand[Brand]),
        "Rank", RANKX(ALL(DIM_Brand[Brand]), CALCULATE(SUM(FACT_Project_Portfolio[On-Shelf (days)])))
    )
VAR Total_Brands = COUNTROWS(ALL(DIM_Brand[Brand]))
VAR Is_Top4_High = COUNTROWS(FILTER(All_Brands_Ranked, [Brand] = Current_Brand && [Rank] <=4)) > 0
VAR Is_Top4_Low = COUNTROWS(FILTER(All_Brands_Ranked, [Brand] = Current_Brand && [Rank] >= Total_Brands - 3)) > 0
RETURN
    IF(Is_Top4_High || Is_Top4_Low, SUM(FACT_Project_Portfolio[On-Shelf (days)]), BLANK())

配置柱形图时,分类轴选DIM_Brand[Brand],值选Filtered_On_Shelf_Days,不在TOP4范围内的品牌会被空白过滤,仅显示目标品牌,Y轴保持统一。

内容的提问来源于stack exchange,提问作者Guille López

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:50:21