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

PowerBI中如何同时展示行业Top5及自身公司的市场份额柱形图

解决PowerBI中同时展示行业Top5与自身公司市场份额的问题

下面是具体实现步骤,按顺序操作即可:

1. 创建「总市值」度量值

首先计算全行业总市值,这个值要忽略视觉对象的筛选,确保市场份额的分母是完整的行业总和:

总市值 = CALCULATE(SUM('市值表'[市值]), ALL('市值表'))

2. 创建「是否显示」筛选度量值

用这个度量值标记需要展示的公司:行业Top5,或者你的目标公司Mangoes:

是否显示 = 
VAR 公司当前市值 = CALCULATE(SUM('市值表'[市值]))
VAR 行业市值排名 = RANKX(ALL('市值表'[公司]), 公司当前市值,, DESC)
RETURN
IF(OR(行业市值排名 <= 5, '市值表'[公司] = "Mangoes"), 1, 0)

通过变量拆分逻辑更易读,RANKX会给所有公司按市值降序排名,排名前5的公司和Mangoes都会被标记为1。

3. 设置柱形图的视觉级筛选器

  • 选中目标柱形图,打开右侧「筛选器」面板
  • 将「是否显示」度量值添加到「视觉级筛选器」
  • 设置筛选条件为「等于1」

4. 创建「市场份额」度量值

计算每个公司的市场占比,用DIVIDE避免分母为0的错误:

市场份额 = DIVIDE(SUM('市值表'[市值]), [总市值], 0)

第三个参数是分母为0时的默认值,这里设为0。

5. 配置柱形图

  • 把「公司」字段拖到柱形图的「轴」区域
  • 把「市场份额」度量值拖到「值」区域
  • 调整格式:右键值字段选择「格式」,将其设置为百分比显示

补充说明

  • 确保公司名称完全匹配,比如"Mangoes"的大小写、空格要和数据表中一致
  • 如果报表有全局筛选器(如年份、区域),可把ALL('市值表')改成ALLSELECTED('市值表'),让总市值只计算筛选后的范围
  • 若要包含并列第5的所有公司,可修改RANKX参数为DENSE:RANKX(ALL('市值表'[公司]), 公司当前市值,, DESC, DENSE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:36:09