如何实现多指标箭头动态变化


各位坊友好,在之前的文章《Power BI可视化:KPI指标在卡片图中的突出显示》里相信大家已经学会了KPI指标通过颜色突出显示的可视化技能。

即同比增长率大于等于0时,卡片图值显示绿色,同比增长率小于0时显示红色,同时有向上向下的箭头指示图标。

但在实际分析中我们往往希望通过多维度的对比以实现分析的目的,从而发现数据背后隐藏的故事。

file

以下有一份某款产品2018年1月至2019年4月的数据表,包括销售额、销售量和库存量:

file

先带大家温习一遍同比增长率的计算方式:

销售额_Sum = SUM('Fact_每月销售情况'[销售额])

销售额_YOY = varPY=CALCULATE([销售额_Sum],DATEADD(FILTER(VALUES('Dim_Date'[Date]),'Dim_Date'[Date]<=MAX('Fact_每月销售情况'[ 日期])),-1,YEAR))
return
           DIVIDE([销售额_Sum]-PY,PY)

我们希望计算出该款产品的销售额,销售量和库存量的同期对比后能够将结果突出显示出来,让阅读者能够直观的看到结果。
怎么办呢?

file

🙋‍我们可以将每个同比增长率都拆成两个度量,增长的箭头向上,下降的箭头向下。
当然,对于比较少的分析模型可以采取这种办法,但是当数据分析模型中出现了10个以上的同比增长率分析怎么办呢?

这时我们就需要简化分析模型,那有没有一种方式可以让我们只需要通过视觉筛选器来选就能判断当前要展示哪种增长率指标呢?
也就是度量值当筛选器。

坊友们可以参考这篇文章哦 ☛《DAX语言:听说你想用度量值做切片器?》

file

建立好指标维度表之后,我们就可以通过以下两个度量值实现动态切换要展示的同比增长。

指标_KPI = IF(CONTAINS('Dim_指标','Dim_指标'[指标],"销售额"),1,0)*[销售额_YOY]
                +IF(CONTAINS('Dim_指标','Dim_指标'[指标],"销售量"),1,0)*[销售量_YOY]
                +IF(CONTAINS('Dim_指标','Dim_指标'[指标],"库存量"),1,0)*[库存量_YOY]

指标_方向 = IF([指标_KPI]>0, "⇑",IF([指标_KPI]=0,"⇔","⇓"))

将指标和方向拆开写的好处一是检测我们写的度量是否有误,二是箭头方向和指标位置可以随意搭配。

OK,接下来看成果啦~

file

file

今天的分享就到这儿,感兴趣的小伙伴快动手试试吧!
有疑问欢迎文下留言~


如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

Power Pivot工坊