数据可视化之DAX篇(二十四)Power BI应用技巧:在总计行实现条件格式

https://zhuanlan.zhihu.com/p/98975646

如何将表格或者矩阵中值的条件格式也应用于总计行?

目前PowerBI并不支持这种功能,无法在总计行或者小计行上应用条件格式,不过我们可以摸索个变通的方式来实现。


以制作红绿灯效果这篇文章的数据为例:

PowerBI小技巧:简单两步实现红绿灯、箭头效果

数据可视化之DAX篇(二十四)Power BI应用技巧:在总计行实现条件格式

这个总计行显然没有应用条件格式,本文尝试让总计行也同样适用于条件格式:动态的显示红绿灯的效果。

解决思路

PowerBI默认的总计行无法使用条件格式,这是暂时无法改变的,那就不要显示默认的总计行,而通过构造一个总计行来代替。

操作步骤

构造一个新的城市维度表,增加一行总计,如下图所示,

数据可视化之DAX篇(二十四)Power BI应用技巧:在总计行实现条件格式

可以用这个新的维度表与事实表建立关系,或者不破坏原有的模型,直接用这个表和原有的城市维度表建立关系。本文用后者的方式,重新写两个度量值,

本期销售金额=IF( HASONEVALUE(‘地区‘[客户城市]), [销售金额], CALCULATE([销售金额],ALL(‘地区‘)))
上期销售金额=IF( HASONEVALUE(‘地区‘[客户城市]), [上期销售金额0], CALCULATE([上期销售金额0],ALL(‘地区‘)))

这两个度量值的原理都是,先判断当前行是否为原有的城市维度表中的城市,如果是,返回当前上下文的本期金额和上期金额,如果不是,就返回合计金额。

将新的带总计行的城市维度,放入到矩阵的行标题中(表格类似),把上面新建的两个度量值作为【值】,并取消矩阵的小计和总计,就得到了下面这张表,

数据可视化之DAX篇(二十四)Power BI应用技巧:在总计行实现条件格式

这个表格最后一行是总计,但这个总计并不是系统默认的总计行,而是我们自己构造并通过度量值计算出来的。

然后正常应用条件格式,并添加红绿灯效果就很简单了,具体方法参考红绿灯那篇文章,最终总计行的效果如下,

数据可视化之DAX篇(二十四)Power BI应用技巧:在总计行实现条件格式

本案例已分享在知识星球