
Power BI在2023年12月对内置视觉对象的数据标签进行了大幅优化,之前难以实现的一些可视化效果现在变得简单。下图是一个人员业绩排行榜,第一行显示前三名,并且带有名次图标,其他人员依次向下排列。

还可以修改为:

表面上这是表格,实际是百分比条形图。
首先,新建一个空间构造维度表,表格总共有三列,第一列用来确定百分比条形图显示几行,第二列确定每行内部的显示顺序,第三列为所有元素的序号,用来和排名匹配。

完整表公式如下,示例总共显示10行,第一行指定元素为三个。
维度表 =
VAR n_Total =
员工非重复计数
VAR _rows = 10
VAR _t =
GENERATE (
SELECTCOLUMNS ( GENERATESERIES ( 1, _rows ), "Row", [Value] ),
VAR n_EachRow =
IF ( [Row] = 1, 3, ROUNDUP ( ( n_Total - 3 ) / ( _rows - 1 ), 0 ) )
RETURN
SELECTCOLUMNS ( GENERATESERIES ( 1, n_EachRow ), "IndexInRow", [Value] )
)
RETURN
ADDCOLUMNS ( _t, "IndexALL", RANKX ( _t, [Row] * 100 + [IndexInRow],, ASC ) )再新建一个占位度量值:
占位 = 1百分比堆积条形图如下设置字段:

Y轴进行反转,使得ROW1排在最上方,关闭XY轴,关闭颜色,打开边框。

数据标签此处进行自定义:

标签 =
VAR _Rank =
SWITCH ( SELECTEDVALUE ( '维度表'[IndexALL] ), 1, "❶", 2, "❷", 3, "❸" )
VAR _KPI =
CALCULATE (
FORMAT ( [M.销售业绩], "#,#" ),
FILTER ( VALUES ( '表'[销售员] ), [人员排名] = SELECTEDVALUE ( '维度表'[IndexALL] ) )
)
VAR _Name =
CALCULATE (
MAX ( '表'[销售员] ),
FILTER ( VALUES ( '表'[销售员] ), [人员排名] = SELECTEDVALUE ( '维度表'[IndexALL] ) )
)
RETURN
_Rank & _Name & " " & _KPI完工。本文配套视频讲解在我的知识星球分享。
