文本包含文字、字母、符号、emoji等内容,将文本转换为图标后可以用在Power BI 表格矩阵条件格式、按钮切片器、新卡片图视觉对象,增强可视化效果。
我设计了一个文本转图标函数,函数名称为SVGTextIcon。新建一个度量值,引用该函数,填入三个参数:
SVG文本 =SVGTextIcon("字","lightgrey","red")
第一个参数为文本内容,第二个参数为文本背景色,第三个参数为文本颜色。该度量值放入表格矩阵条件格式图标,得到:

放入按钮切片器图像区域得到:

在实践中,三个参数都可以动态处理。以下列举若干场景。
下图是符号文本嵌入条件格式:

对应图标度量值为:
SVG文本 =SVGTextIcon(
IF([M.业绩达成率]>=1,"✔","✘"),
"lightgrey",
IF([M.业绩达成率]>=1,"green","red")
)
以下是表情包嵌入按钮切片器图像区域:

对应图标度量值为:
SVG文本 =SVGTextIcon(
IF([M.业绩达成率]>=1,"😊","😭"),
"snow",
"snow"
)
这里snow是一种白色,可以换成其它页面背景一致的颜色。无论是符号还是表情包,微软自带输入法均可以打出(下图右侧),也可以在网上查询类似的资料库。

以下是中文嵌入矩阵条件格式图标的示例:

以下是字母嵌入表格条件格式图标的示例:

那么,SVGTextIcon函数怎么移植到你的模型当中?
首先,将Power BI Desktop升级到2025年9月的版本,安装包地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=58494
打开文件-选项和设置-选项-预览功能,勾选”DAX用户自定义函数“:

切换到DAX查询视图,粘贴以下代码:

DEFINE
FUNCTION SVGTextIcon =
--功能:表格矩阵、按钮切片器、新卡片图条件格式图标
--参数:文本内容、背景颜色(支持英文颜色名称、RGB)、文本颜色
(TextIcon:string,BackgroundColor:string,FontColor:string)=>
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' id='wujunmin' width='96' height='96'>
<rect rx='5' x='0' y='0' width='96' height='96' fill='" & BackgroundColor & "'/>
<text x='48' y='48' text-anchor='middle' dominant-baseline='central' font-size='60' fill='" & FontColor & "'>" &
TextIcon & "</text>
</svg>"
点击右上角的按钮应用:

这样,SVGTextIcon函数在你的模型就生效了,可以愉快地玩耍了。
关于Power BI DAX自定义函数的前两篇内容: