领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Power BI 度量值控制条件格式,以及自定义条件格式中的SVG图标

nixiaole 2025-01-04 22:19:54 知识剖析 16 ℃

这是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函数来控制。图标条件格式提供了一些自带图标,但是只能针对单一的字段进行设置,有了度量值控制,你就可以编写更多条件进来。

Tags:

最近发表
标签列表