排名计算是数据分析中非常重要的手段,能够帮助用户从大量数据中快速识别出最关键的项。
在 Power BI 中,
动态排名
不仅可以根据维度或筛选条件来动态更新,甚至可以将
排名字段动态化
,使用户能够通过交互选择不同的度量值(如销售额、利润、订单量等)来动态调整排名。
本文将详细介绍如何在 Power BI 中实现动态字段排名,包括设置不同的指标、不同的维度。
将维度动态化可以改变 Power BI 中进行排名计算的维度列,比如我们的排名要在产品类别、客户行业和地区这三个维度之间进行切换。
首先要做的是创建一个参数表,点击建模选项卡的新建参数,选择字段。
添加想要进行切换的字段,然后点击创建。
新建一个表,添加新建的参数字段和销售额度量值。
现在我们来创建排名度量值,动态维度排名度量值需要根据所选参数字段的值动态变化。
根据参数表的隐藏列排名维度选择 个订单值返回不同的维度排名。
动态维度排名 =
VAR vDim =
SELECTEDVALUE ( '排名维度选择'[排名维度选择 个订单] )
VAR vProductRank =
RANK (
DENSE,
ALLSELECTED ( 'Dim 产品'[产品子类别] ),
ORDERBY ( [Sales], DESC )
)
VAR vAreaRank =
RANK (
DENSE,
ALLSELECTED ( 'Dim 地理位置'[地区] ),
ORDERBY ( [Sales], DESC )
)
VAR vIndustryRank =
RANK (
DENSE,
ALLSELECTED ( 'Dim 客户'[客户行业] ),
ORDERBY ( [Sales], DESC )
)
RETURN
SWITCH (
vDim,
0, vProductRank,
1, vAreaRank,
2, vIndustryRank,
vProductRank
)
动态维度排名产品子类别维度。
地区维度。
客户行业维度。
动态效果。
除了维度,我们还可以选择动态指标,这也同样需要新建一个字段参数表。
新建一个度量值表示当前所选指标。
动态指标 =
VAR vIndex =
SELECTEDVALUE ( '动态指标选择'[动态指标选择 个订单] )
RETURN
SWITCH (
vIndex,
0, [销售额],
1, [利润],
2, [订单数量],
3, [销售数量],
[销售额]
)
动态指标创建完成之后,我们只需要将原来动态维度排名度量值中的销售额度量值换成动态指标度量值即可。
动态维度 + 动态指标排名 =
VAR vDim =
SELECTEDVALUE ( '排名维度选择'[排名维度选择 个订单] )
VAR vProductRank =
RANK (
DENSE,
ALLSELECTED ( 'Dim 产品'[产品子类别] ),
ORDERBY ( [动态指标], DESC )
)
VAR vAreaRank =
RANK (
DENSE,
ALLSELECTED ( 'Dim 地理位置'[地区] ),
ORDERBY ( [动态指标], DESC )
)
VAR vIndustryRank =
RANK (
DENSE,
ALLSELECTED ( 'Dim 客户'[客户行业] ),
ORDERBY ( [动态指标], DESC )
)
RETURN
SWITCH (
vDim,
0, vProductRank,
1, vAreaRank,
2, vIndustryRank,
vProductRank
)
将动态指标选择参数和排名度量添加到表上。
在产品子类别维度上根据利润指标进行排名。
动态效果。
在 Power BI 中我们可以根据字段参数表非常轻松的根据动态维度 + 动态指标实现,以上实现方式均基于传统的 DAX 计算,如果使用视觉对象计算会不会更简单呢?
这种动态排名为数据分析提供了极大的灵活性。通过动态维度和动态指标,用户可以在同一个报表中通过简单的交互选择不同的字段,快速实现数据的多维度排名,感兴趣的小伙伴赶快去试一试吧。
如果你对本文的 Power BI 源文件感兴趣可以私信老师了解领取方式。