Power BI 度量值控制条件格式,以及自定义条件格式中的SVG图标
这是Power BI 某次更新中的一个内容,条件格式的其他设置和Excel中没什么区别,度量值这个是有点特色的:
上面这个图就是用color这个度量值来控制条件格式,这个条件格式,微软给的例子中用的是switch函数,可以做多种颜色配色方案使用,我们就简单两种颜色,用IF就行。
在表格的格式设置中有条件格式这个选项:
以背景色为例,把开关打开,然后选高级控件:
color是我写好的度量值:
color = IF(HASONEVALUE(data[省份]),if(sum(data[GDP])>=10000,"#b00330","#ffffff"))
前面一个hasonevalue是为了总计的行列不参与这个条件格式,后面的一个IF是GDP大于等于10000亿的数据背景着色。
如果是用Switch函数就参考这个例子:
我们再来看看其他的几个选项中的内容:
色阶:
规则:
字体颜色与背景颜色设置是相同的:
数据条,可以选择数据条方向:
图标,有很多种图标可以选择:
说到图标我们多说一点,图标也是可以用度量值来控制的,可惜参考中给的内容太少,我们无从知道系统内置图标的名称与对照表,所以我们很难根据名称来引用图标,如果你知道哪里可以找到这样的对照表,欢迎共享出来。目前只知道参考中的这个“StarMediumLight”一个填充了一半的星星。
我查了一些资料发现可以把svg的图标保存到本地,然后通过度量值引用,实现本地化的自定义图标。
先科普一下:SVG
就是可以任意缩放的矢量图形,并且可以改变颜色。
我们可以从这个网站上下载:
然后把svg目录解压到本地:
接下来用Power Query把这些图标文件导入,并把二进制文件解码:
然后加载到Power BI中,用DAX添加列:就是我们要自定义的颜色与大小:
我们添加了3列:red、green、yellow
red = SUBSTITUTE(
svg[svg],"width=""8"" height=""8""","width=""80vh"" height=""80vh"" fill=""#FD625E""")
原文中的宽和高替换成宽、高、颜色,vh是相对值,不加vh是绝对值。
当我们用html视觉对象来查看内容的时候,根据名称筛选单一图标,就可以显示出来了。
HTML视觉对象,用这个就可以:
接下来才是重点,我们怎么才能通过度量值来显示出我们想要的图标?
我们就想用上面的对号图标:circle-chexk.svg
ShowRed = "data:image/svg+xml;utf8,"&
CALCULATE(
SELECTEDVALUE(svg[red]),'svg'[Name]="circle-check.svg")
"data:image/svg+xml;utf8,":是表明引用编码格式,URL按照utf8编码
后面的CALCULATE就是为了取出来circle-chexk.svg当然是红色的,我们同样也写了一个绿色的度量值。
然后我们来写icon这个用来控制条件格式图标的度量值:
icon = if(sum(data[GDP])>=10000,
[ShowRed],[ShowGreen])
这只是举个例子,就用一个条件、两种图标,如果是多条件、多图标,用switch函数来控制。图标条件格式提供了一些自带图标,但是只能针对单一的字段进行设置,有了度量值控制,你就可以编写更多条件进来。