Power BI自定义表格图标条件格式:以服饰品牌2022价值榜为例

2022-05-19 08:44:58 浏览数 (1)

Brand Finance发布了2022服饰品牌价值排行榜,如下表所示。这个表格有个细节:排名高于去年时显示绿色向上图标;等于去年时显示黄色的等号图标;低于去年时显示红色的向下图标。

https://brandirectory.com/rankings/apparel/table

在Power BI中,大家很容易想到使用条件格式去实现,内置图标条件格式效果如下图所示:

但是,这个图标和Brand Finance并不相同,这引发一个思考,如何在Power BI自定义条件格式图标?这里介绍四种图标方式。下图是四种图标的显示效果:

1. 直接符号


对于常用的符号可以输入法直接调出,应用到度量值。参考采总的文章:利用微软输入法,轻松为PowerBI报表添加图标

代码语言:javascript复制
直接符号 = 
VAR Down="∨"
VAR Up="∧"
VAR Equal="="
RETURN
IF (
    [排行_2022] < [排行_2021],
    Up,
IF ( [排行_2022] = [排行_2021], Equal, Down)
)

2. UNICHAR符号


在网上找到符号对应的编码,写入度量值,这里可以找到数学符号的编码:

https://unicode-table.com/cn/sets/mathematical-signs/

代码语言:javascript复制
UNICHAR = 
IF (
[排行_2022] < [排行_2021],
UNICHAR ( 8743 ),
IF ( [排行_2022] = [排行_2021], UNICHAR ( 61 ), UNICHAR ( 8744 ) )
)

3. PNG/JPG图片符号


可以在网上寻找或者自己使用PPT制作图标图片,将图片放入度量值。如果害怕网址失效,可以将本地照片转换为BASE64放到Power BI中,转化方式参考黄师傅这篇文章:一键解决PowerBI本地图片显示问题

代码语言:javascript复制
PNG符号 = 
VAR Down="https://wujunmin/heart1.png"
VAR Up="https://wujunmin/heart2.png"
VAR Equal="https://wujunmin/heart3.png"
RETURN
IF (
    [排行_2022] < [排行_2021],
    Up,
IF ( [排行_2022] = [排行_2021], Equal, Down)
)

4. SVG图标


最后一种是SVG矢量图形图标,字节或者阿里有图标库,也可自己使用PPT设计。度量值如下:

代码语言:javascript复制
SVG符号 = 
VAR Down="data:image/svg xml;utf8,<svg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='48' height='48'><path d='M185.884 327.55 146.3 367.133 512.021 732.779 877.7 367.133 838.117 327.55 511.997 653.676Z' fill='Red'></path></svg>"
VAR Up="data:image/svg xml;utf8,<svg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='48' height='48'><path d='M838.116 732.779 877.7 693.195 511.979 327.549 146.3 693.195 185.883 732.779 512.003 406.652Z' fill='Green'></path></svg>"
VAR Equal="data:image/svg xml;utf8,<svg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'  width='48' height='48'><path d='M223 406.5v-51.3h591v51.3H223z m0 302.8V658h591v51.3H223z' fill='Gold'></path></svg>"
RETURN
IF (
    [排行_2022] < [排行_2021],
Up,
IF ( [排行_2022] = [排行_2021], Equal, Down)
)

图标有了之后如何和排名结合?针对直接符号和UNICHAR的方式,可以设定条件格式颜色:

代码语言:javascript复制
颜色 = 
IF (
    [排行_2022] < [排行_2021],
"Green",
IF ( [排行_2022] = [排行_2021], "Gold", "Red" )
)

PNG图片和SVG的方式可以使用字段自定义条件格式图标:

UNICHAR的显示效果:

PNG图标的显示效果:

SVG图标的显示效果:

字节的SVG图标库:https://iconpark.oceanengine.com/home

阿里的SVG图标库:https://www.iconfont.cn/

如果图标追求简约,建议使用直接符号或者UNICHAR的方式;如果追求花式,建议使用PNG方式,理论上所有图片都可以用作条件格式;如果对条件格式的细节要求比较多,建议使用SVG方式,比方上图中SVG符号的颜色、线条粗细、形状都可以直接编辑SVG代码进行自定义。

0 人点赞