↓ 预约直播,更多干货,不要错过 ↓
瀑布图是一种非常直观的可视化工具,常用于展示数据的增减变化及其累积效果。虽然 Power BI 提供了原生的瀑布图视觉对象,但其功能和灵活性往往无法满足复杂的业务需求。因此,许多用户希望能够通过更高级的方式来实现自定义瀑布图。
之前我们介绍过如何使用 Power BI 折线和堆积柱形图视觉对象原生实现一个精美的瀑布图,如下所示。
但其中涉及到的 DAX 度量值较为复杂,不少小伙伴无法直接套用。今天我们来介绍一种简单的方法,使用视觉对象计算来实现这个瀑布图。
创建瀑布图之前,要先拥有一个这样的科目表,有总计和指标反转的标记列,并且科目列要按照科目 ID 列进行按列排序操作,这样科目才能以正确的顺序在视觉对象上显示。
然后创建一个度量值对金额进行求和,如果当前指标反转,返回负值。
金额 =
IF (
SELECTEDVALUE ( '息税前利润'[指标反转] ) = 1,
- SUM ( '息税前利润'[AC] ),
SUM ( '息税前利润'[AC] )
)
新建一个堆积柱形图,在 X 轴上添加科目,Y 轴上添加金额。
瀑布图的数据共有三个类别,分别是提高、降低和总计。我们依次创建每个指标的度量值,在这之前我们还要新建一个度量值表示当前科目是否为总计,方便我们进行后续计算。
是否总计 = SELECTEDVALUE( '息税前利润'[是否总计] )
三个度量值如下。
提高 =
IF(
[金额] > 0 && [是否总计] = 0,
[金额]
)
降低 =
IF(
[金额] < 0 && [是否总计] = 0,
ABS( [金额] )
)
因为在瀑布图上显示的数据都为正数,所以这里需要对负数进行绝对值操作。
总计 =
IF(
[是否总计] = 1,
[金额]
)
将新建的五个度量值全部添加到视觉对象上,因为视觉对象计算只能使用视觉对象上存在的字段,而这五个字段我们都需要,后续我们进行隐藏即可。
现在就差最后一个字段了,我们需要计算出每个科目下方空白部分(基线),使用度量值计算会非常复杂,所以我们使用视觉对象计算实现。降低科目的基线等于第一个总计科目 + 提高的运行总和 - 降低的运行总和,提高科目的基线等于第一个总计科目 + 提高的运行总和 - 降低的运行总和 - 本身。
新建一个视觉对象计算,表达式如下,相比于传统的度量值计算,视觉对象计算无需理解任何上下文,所以大家直接修改对应的字段名称就可以直接使用。
基线 =
IF (
[是否总计] = 0,
RUNNINGSUM ( [提高] ) - RUNNINGSUM ( [降低] )
+ FIRST ( [金额] )
- IF ( [金额] > 0, [提高] )
)
接下来我们把不需要的字段隐藏一下,并把基线在列 Y 轴上的位置移到上方。
然后我们来修改各个数据系列的列颜色,基线数据系列的颜色透明度为 100%,它不需要在图表中显示。
提高为绿色,降低为红色,总计为黑色。
基线部分的图例不应该显示在图表中,在列 Y 轴上将它的名称修改为空格。
完成效果。
通过以上步骤,我们使用简单的视觉对象计算和灵活的配色设置,轻松实现了一个功能丰富的瀑布图。这种方法大大简化了传统复杂度量值的编写,尤其适合想快速实现瀑布图效果的小伙伴。希望今天的分享能帮助你在 Power BI 中更加高效地构建图表。如果你对这篇教程有任何疑问,欢迎在评论区留言讨论!感兴趣的小伙伴赶快去试一试吧。
企业级大型案例:
制造行业数字化案例
如果您也在寻找类似的解决方案,欢迎扫描文末二维码联系我们,共同探索适合您企业的数字化运营策略!
对企业数据分析有问题?点击下方预约直播,还可现场连麦咨询哦。
如果你对本文的 Power BI 源文件感兴趣可以私信老师了解领取方式。
📈【高级课程】:业务人(管理、销售、财务、供应链)彻底解决企业数据分析。
🔍【企业咨询】:十大行业,十大领域,企业案例,咨询,培训,实施。
🔗 如何获取更多信息?扫描下方二维码具体咨询。
点击“阅读原文”获取更多资源