PowerBI 实现区间对比图,轻松对比品牌,大区,门店增长

2020-06-04 11:03:00 浏览数 (1)

有小伙伴在群里提问,这是用什么软件做的?

很显然,不知道本来的软件是什么,但用 PowerBI 也是可以完成的。

利用这个方式,还可以做出这样的图:

整个图形有两部分构成:

  • 数值部分
  • 增长率部分

而从作图角度的实质挑战是如何制作这个区域。

难题分析

首先来看这个区域的构成:

没错。这的确是一张图。

这里的奥秘在于,它们彼此为什么可以分开,而应该是这样的吗?如下:

很明显,对于办公用品,技术,家具来说,是三个独立的事情;而对于2019以及2020来说又具有连续性,所以,这是:

大颗粒离散下的局部连续型对比

我们称之为:区块对比,且块内连续。

技巧设计

大家都知道,区块可以认为是类别,直接使用类别即可。

而连续型元素,就有了排序的说法了,我们希望排序的依据是按年份来。

再有,在区块之间要形成断层,以实现分隔效果。

为此,我们作了这样的设计:

没错,其实我加入了“洋葱”。

“洋葱”,就是那种加不加不影响吃饱,但却是一个重大技巧的东西。在这里就体现在:空白元素

你还可以举例出:还有什么场景是 空白元素 的妙用吗?

我们通过空白元素让区块的数值归零后产生区块之间的间隔效果。

当然,需要开启这个效果,还需要作一个小的设置,如下:

必须设置:显示无数据的项目。

这样就产生了预期的效果,如下:

很明显,这个表是为了专门来作这个图的,它实际上,与数据模型本身并没有融合。

动态挂载

将用来作图的辅助表与数据模型在计算时完美结合的过程,我们称为:动态挂载。在我即将推出的《PowerBI高级》中将更全面地介绍这项技巧的使用。这里,可以创建这样的度量值如下:

代码语言:javascript复制
View.Trend.KPI.Value.Product =
CALCULATE(
    [KPI] ,
    TREATAS(
        SUMMARIZE( 'X.Axis' , 'X.Axis'[Product] , 'X.Axis'[Year] ) ,
        'Product'[Category] ,
        'Calendar'[YearName]
    )
)

可以使用 TREATAS 函数实现这种动态挂载效果,作为更精巧的演示,这里使用了一次性的双列挂载,同时将产品和年份挂载到数据模型的相应表上,实现动态计算。

举一反三,可以实现 YTD 的计算,如下:

值得注意的是:

  • 2019YTD和2020YTD应该随着时间自动变化。
  • 2019YTD的内容应该和2020YTD自动匹配,都是年初到当月当日。

应用扩展

除了这里写的场景,这还特别适合用来比较同一层面的不同对象,如:品牌;大区;门店等。

总结

在 PowerBI 的原生可视化对象中,给我们直接提供的能力是有限的,但是通过想象力和创造力,我们可以构建出很多图形。还有什么好玩的图形欢迎小伙伴们提出。

0 人点赞