zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

如何在 PowerBI 中实现矩阵行中迷你图棒棒糖

2023-04-18 16:55:44 时间

PowerBI 原生支持矩阵行中迷你图,值得让人探索一番可能性,对此,我们分不同情况给出一些可能的延展。本文来实现行内的棒棒糖图。效果如下:

这里将当年完成的 YTD 实现为水平的棒棒糖图效果。行内棒棒糖图表示不同销售经理 YTD 各自各自完成的多少以及相对大小。

构造思想

矩阵并没有原生提供行内棒棒糖图的做法,那这里我们必须采用有想象力的构造思想:

  • 先给出一个通用坐标轴,如:X 范围为 1 到 100
  • 再计算矩阵每行的参考数值,在本例中是销售经理的 YTD 销售额
  • 将上述计算进行归一化记为 Y(各自 YTD 值占总 YTD 值的百分比)并延展到 1 到 100
  • 实现迷你图,如果 X 范围小于 Y,则返回 1,否则返回空

构造 X 轴

用 DAX 构造 X 轴,如下:

X-line = 
SELECTCOLUMNS(
    GENERATESERIES( 1 , 100 ) , "X" , [Value]
)

这样就得到了 1 到 100 的数字。

迷你图计算

再用 DAX 实现迷你图计算,如下:

KPI.ByManager.Y = 

VAR vValueAll = CALCULATE( [KPI.AC.YTD] , ALL( SalesMan ) )
VAR vY = INT( [KPI.AC.YTD] / vValueAll * 100 )
RETURN IF( MAX( 'X-line'[X] ) <= vY , 1 )

其中,先计算总值,再计算各分量对总值的百分比,最后用 1 来构造迷你图。

迷你图的设定

在设定迷你图的时候,可以注意:

  • 让线条尽量粗一些
  • 只显示最后的端点

如下:

这样,迷你图看上去就像是水平的棒棒糖了。

总结

结合此前的文章,现在大家就可以在矩阵中实现两种效果:

  • 水平方向:线形图和柱形图,用来反映趋势。
  • 棒棒糖图:用来直观反映大小。

那么,矩阵可以借助这些实现怎样的业务分析洞察呢?我们在后续的文章中进一步为大家分享。