如果数据差异非常大,有的上亿,有的只有几百,如何在卡片图更好的显示这样的数据?把数据修正同时带有单位是个不错的办法,比如如果数据超过一亿,除以一亿,末尾加个汉字”亿“。

Power BI推出的动态格式可以解决这一问题,把数据进行如下除法处理,
Value_修正 =
SWITCH (
TRUE (),
[Value] >= 100000000, ROUND ( [Value] / 100000000, 1 ),
[Value] >= 10000000, ROUND ( [Value] / 10000000, 1 ),
[Value] >= 1000000, ROUND ( [Value] / 1000000, 1 ),
[Value] >= 10000, ROUND ( [Value] / 10000, 1 ),
[Value] >= 1000, ROUND ( [Value] / 1000, 1 ),
ROUND ( [Value], 1 )
)针对该度量值施加动态格式(不了解动态格式参考此文:Power BI 动态格式的奇葩用法),单位即可按照数据自行切换了。

这个方法显示效果欠佳,因为单位和数据是相同格式,且水平对齐,下图进行了优化,单位靠右下角,且字体颜色为灰色,与数据进行了很好的区分。

实现方式是为该卡片设置SVG图标,这需要使用2023年6月Power BI新推出的卡片图(不了解可参考此文:Power BI可视化的巅峰之作:新卡片图),SVG图标的内容为单位,图标度量值如下:
单位图标 =
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'>
<text id='wujunmin' x='0' y='46' font-size='24' fill='Grey'>"
& SWITCH (
TRUE (),
[Value] >= 100000000, "亿",
[Value] >= 10000000, "千万",
[Value] >= 1000000, "百万",
[Value] >= 10000, "万",
[Value] >= 1000, "千",
"元"
) & "
</text>
</svg>"把该图标度量值如下图放入图像URL,操作即完成。

本方法不仅仅用在卡片图,也可以放在表格矩阵条件格式图标:

这个原理可以进行扩展应用,比如卡片左下角放置币种符号,右上角放置辅助指标。
