PowerBI可视化技巧,颜色突出显示特定行
文/陆文捷---物流供应链优化分析师,Power BI爱好者
Power BI的DAX不但能用来动态敏捷计算解决业务问题,还能控制可视化图表的展现,可谓里外一把抓的能手。本文通过一个示例,来体验DAX别样的威力吧~
预设场景:建立一个订单ID-产品名称-订购数量的明细。Power BI的默认显示样式,不论是表格还是矩阵,无外乎隔行交错显示,像下图这样:
或者表头+表体+汇总行的三段式分布,像这样:
这样的布局在视觉上无法一目了然地定位每个订单ID的明细。通过DAX,则可以实现这样的排布,
相同订单ID的背景颜色一致并交错分布,这样就可以更直观按颜色来区分不同ID的订单明细,是不是很清晰呢?
实现的原理是利用DAX构建度量值,分两步实现:
1、对订单ID按字段值进行排名
2、用上一步的排名度量值的奇偶性定义报表字段的背景色
下面进入详细的实现步骤,对订单ID排名需要用到RANKX函数,同学们可以参考星主的文章学习。
度量值代码如下:
这个度量值的逻辑是:
1.通过VAR构建所选订单ID的中间表,作为RANKX的第一参数
2.通过VAR获取当前上下文的订单ID
3.获取对当前订单ID在报表中的订单ID 排名。这里用到了RANKX的第三参数,也就是当前订单ID值,该ID会在订单ID列中迭代获相应排名
将这个度量值放到矩阵里看看效果:
接着用排名数值是否可以整除2定义奇偶性:
订单ID.ColorIndex = MOD ( [Rank.订单ID], 2 )
其返回结果是0(偶数)或1(奇数):
至此DAX函数构建完成。
最后就是利用条件格式,来编辑报表字段背景颜色,按0或1指定两种不同颜色:
稍显麻烦的是每一个报表字段都得按同样的步骤设置一次,希望微软在后续的版本更新里可以提供全字段设置的选项。
全部定义之后就能实现上面介绍的按不同的订单ID来交错显示背景颜色了。
类似的,还可以对字体,图标等进行动态的定义控制,来实现默认类型之外的布局风格。
总结
本文的DAX驱动可视化原理类似于Excel借助辅助列设置条件格式的方法。通过构建中间表->按特定字段排名->建立辅助度量值并定义格式的步骤实现。实践中对RANKX的第三参数使用也加深了理解。伙伴们也可举一反三,实现更多灵活多变的控制。
-精彩推荐-
采悟 from PowerBI星球