如何在PowerBI中创建多维度合并的Top 10流程榜单?
在PowerBI中创建多维度合并Top10榜单的实现方法
一、创建各维度排名度量值
先为每个维度生成排名,用DAX编写以下度量值(替换你的表名为实际数据表名称):
- 成本排名
说明:对所有流程名称按成本求和降序做密集排名,避免排名跳号。成本排名 = RANKX(ALL('你的表名'[process name]), CALCULATE(SUM('你的表名'[cost])),,DESC,Dense) - Count A排名
Count A排名 = RANKX(ALL('你的表名'[process name]), CALCULATE(SUM('你的表名'[count A])),,DESC,Dense) - Count B排名
Count B排名 = RANKX(ALL('你的表名'[process name]), CALCULATE(SUM('你的表名'[count B])),,DESC,Dense)
二、创建合并Top10判断度量值
用这个度量值标记哪些流程至少进入了一个维度的Top10:
是否进入合并Top10 = VAR CostTop10 = [成本排名] <= 10 VAR CountATop10 = [Count A排名] <= 10 VAR CountBTop10 = [Count B排名] <= 10 RETURN IF(CostTop10 || CountATop10 || CountBTop10, "是", "否")
三、设置可视化筛选
- 选择目标可视化图表(如簇状柱形图、表格),将
process name拖到轴/行区域,把cost、count A、count B拖到值区域(设置为求和)。 - 在筛选器面板中,添加度量值筛选,选择
是否进入合并Top10,筛选条件设为「等于」「是」。
四、可选:保留重复流程的展示方式
如果需要显示同一流程在多个维度Top10中的重复条目,可以创建计算表合并三个维度的Top10数据:
合并Top10表 = UNION( SELECTCOLUMNS(FILTER(ALL('你的表名'[process name]), [成本排名] <=10), "流程名称", [process name], "维度", "成本Top10", "值", CALCULATE(SUM('你的表名'[cost]))), SELECTCOLUMNS(FILTER(ALL('你的表名'[process name]), [Count A排名] <=10), "流程名称", [process name], "维度", "Count A Top10", "值", CALCULATE(SUM('你的表名'[count A]))), SELECTCOLUMNS(FILTER(ALL('你的表名'[process name]), [Count B排名] <=10), "流程名称", [process name], "维度", "Count B Top10", "值", CALCULATE(SUM('你的表名'[count B]))) )
基于这个计算表做可视化,就能看到每个流程在对应维度的Top10记录。
注意事项
- 若数据有行级安全或实时连接,将
ALL替换为ALLSELECTED,避免权限冲突。 - 若维度指标不是求和,可将
CALCULATE(SUM(...))替换为对应聚合方式(如MAX)。
内容的提问来源于stack exchange,提问作者shrp
相关产品推荐
相关产品推荐

