这篇内容来自昨晚上一个朋友的需求,给了发了一位国外叫Boss的创作者的一个PowerBI的内容,很精彩,很有想法,今天进来复制一份。正好最近没什么灵感了,非常感谢这位朋友提供想法,也欢迎大家多提问题、多提供思路。
![](https://i-blog.csdnimg.cn/blog_migrate/cf0483f1dc2166dd8693df5c9dbe8dac.gif)
需求是这样的,在PowerBI的Matrix表格里面,如果要填充背景颜色,背景颜色的填充范围的取值是根据表格所有数值最大值和最小值来确认的,但如果我们想要根据每一列或者每一行的值来呈现各自的颜色就不行了,如下图↓
在这个表里面,我们最大值用绿色,最小值用红色表示,基于全表的数值。如果我们想要分每个季度来标记各个品牌的颜色范围,就不行了,但是我们可以通过新建一个度量值,自定义渐变颜色来灵活控制我们想要的结果,先看看结果↓
![](https://i-blog.csdnimg.cn/blog_migrate/a357672c2c72e8eea9b7597c88d4f578.png)
从上图结果可以看到,我们已经按照季度各自来做渐变背景的,看看倒数两列,数据差异很大,但是不影响最后一列853仍然是最绿的。下面来讲解一下实现方式,耐心看,略微复杂,看懂了可以根据这个规则做很多条件格式背景的创意。
那么正式开始之前,介绍一下颜色的表示方式,我找了个我的拾色器软件截图,里面还是很完整。有RGB、CMYK、HSV、HLS等等颜色表示方法,如下↓
![](https://i-blog.csdnimg.cn/blog_migrate/4af968fb6db1e129bcf70abc8850f9e5.png)
我们今天使用的是HLSA方法,几个参数含义如下:
-
H 色调,取值范围 0~360。0或360表示红色、120表示绿色、240表示蓝色。
-
S 饱和度,取值范围 0%~100%。值越大,越鲜艳。
-
L 亮度,取值范围 0%~100%。亮度最大时为白色,最小时为黑色。
-
A 透明度,取值范围 0~1。
通过这几个参数的调整,就可以调出所有的颜色了,在PowerBI里面通过hsla()这个来求颜色值,我们来演示