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代码进行自定义。