PowerBI 进阶:视觉计算实现动态排名

科技   2024-10-31 18:37   中国  

上次我们介绍了如何使用 DAX 公式实现了动态排名,通过用户选择不同的维度或指标(如销售额、利润、订单量等),动态调整排名。

实现参考:PowerBI 高级技巧:动态维度和指标排名

在实际操作中,大家可能会觉得 DAX 表达式比较复杂,数据越多时就会越复杂,有没有什么办法可以简化我们的计算呢?

当然有,我们可以使用视觉对象计算来优化这些 DAX 表达式,从而简化逻辑,让更多的小伙伴来理解并应用。

跟昨天的实现过程一样,我们需要两个参数表,一个是维度参数,一个是指标参数表。

维度参数表。

指标参数表。

同样的,还需要动态指标度量值。

动态指标 = VAR vIndex =    SELECTEDVALUE ( '动态指标选择'[动态指标选择 个订单] )RETURN    SWITCH (        vIndex,        0, [销售额],        1, [利润],        2, [订单数量],        3, [销售数量],        [销售额]    )

排名计算我们使用视觉对象计算即可,新建一个表,添加动态维度参数和动态指标参数这两个字段。

在表的范围内点击鼠标右键,新建一个视觉对象计算。

我们使用支持视觉计算的 RANK 函数实现排名计算,关于 RANK 在视觉计算中的应用,参考:排名问题新解法:探索可视化计算中的 RANK 函数

表达式非常简单,一行搞定。

但是返回到报表之后,当我们切换指标时,会发生错误。

这是因为我们在排名计算使用的是销售额,当我们选中利润时,视觉计算就找不到销售额度量值了。

这时候我们把销售额改成利润,就可以恢复正常。

如果我们再进行指标切换,它还会显示错误,有没有什么办法能够在视觉计算中实现指标动态化呢?

视觉对象计算只能引用视觉对象上添加的度量值,我们添加了两个字段参数,但是视觉对象计算只能引用当前选中的参数字段。

这时候我们就需要在视觉对象上添加动态指标度量值,这样才能实现视觉对象排名指标动态化。

有的小伙伴可能会问,那为什么不直接使用这个动态指标度量值来替换字段参数呢?这是因为字段参数可以根据当前所选的指标返回对应的度量值,每个度量值之间是独立的,会拥有不同的列名和数据格式。变成一个度量值之后,尽管值是一样的,但是值的格式和列名不会随着所选指标变化。

所以最佳选择还是使用字段参数作为显示的数值列,然后添加一个动态指标度量值作为排序依据。

关闭列标题和值的文本自动换行,将动态指标列的宽度调到最小。

缩放动态指标列直到此列不显示。

这样在视觉上还是三列。

转到视觉对象数据格式设置选项,将排名列的数据类型设置为整数。

完成。

比传统的 DAX 计算要更加方便并且易于理解,因为视觉计算不用考虑忽略上下文,直接使用 ROWS 轴即可,感兴趣的小伙伴赶快去试一试吧。

如果你对本文的 Power BI 源文件感兴趣可以私信老师了解领取方式。

更专业的数据分析师训练营


🚀《业财分析之道》点击文字查看具体报名信息。

📈《经营分析之道》点击文字查看具体报名信息 。

🔍数据分析之道点击文字查看具体报名信息。
💡
商业智能之道点击文字查看具体报名信息

🔗 如何获取更多信息?扫描下方二维码具体咨询。

BI佐罗数据分析 - 更专业更系统的企业数据分析
点击“阅读原文”获取更多资源

BI佐罗讲数据分析
多年PowerBI MVP带你学习更专业更系统的企业数据分析。
 最新文章