PowerBI小技巧–使用换行符打造个性化多行卡

3

做了人类想成仙,坐在地上要上天

在做报告的过程中,很多时候需要性展示很长的一段文本来进行辅助说明,为了更好的展示,就需要对文本进行换行,而是PowerBI中进行换行也很简单:

  • Shift+Enter换行

  • 使用UNICHAR(10)

示例如下:

test1 = "我是中国人"test2 = "我是中国" & UNICHAR(10) & "人"

效果如下:

这时想起了罗老师的一句话,做人就是要折腾。那么利用换行符还能做些什么呢?

比如,文章标题已经提到的多行卡,PowerBI内置的是有多行卡的,先来看下原生的效果

利用换行符就可以做到标签和数值在一行显示,可以先这样写:

test3 = 
VAR KPI1 = "Sales YTD: " & [YTD.Sales Amt]VAR KPI2 = "Forecast: " & [YTD.Forecast Amt]VAR KPI3 = "Difference: " & [Diff Actuals vs Forecast]
VAR Result = KPI1 & UNICHAR(10) & KPI2 & UNICHAR(10) & KPI3
RETURN Result

因为卡片图是不能设置对齐方式的,所以这里需要插入一个空白按钮,然后设置下对齐方式。这里需要注意按钮宽度不能太宽,不然换行效果无法生效的。效果如下:

当然,上面代码中并未对相应的指标进行格式化,所以显示的小数位数可能不是我们想要的,用FORMATF进行相应的格式化就好。

文本是左对齐的,可能效果不是很好,先来看下空格在PowerBI中的显示效果

test4 = 1234 & REPT(" ", 1) & 6 & UNICHAR(10) & 456789 & UNICHAR(10) & 678919

同样地插入一个空白按钮,将文本设置为该度量值,可以看到虽然第一行加了空格来补位,但是在显示效果上仍然无法和另外两行对齐。

既然左对齐行不通,那我们可以试下右对齐,修改代码如下,然后水平对齐改为右对齐,发现空格并没有生效。

test4 = 1234 & REPT(" ", 1) & 6 & REPT(" ", 4) &  UNICHAR(10) & 456789 & REPT(" ", 4) & UNICHAR(10) & 678919 & REPT(" ", 4)

查询相关资料可知空格还可表示为UNICHAR(8197),再来看效果,发现空格生效了。

test5 = 1234 & REPT(UNICHAR(8197), 1) & 6 & REPT(UNICHAR(8197), 4) & UNICHAR(10) & 456789 & REPT(UNICHAR(8197), 4) & UNICHAR(10) & 678919 & REPT(UNICHAR(8197), 4)

接下来就是应用到多行卡中

KPIS = VAR Space = UNICHAR(8197)
VAR KPI1_Text = "Sales YTD:"VAR KPI2_Text = "Forecast:"VAR KPI3_Text = "Difference:"
VAR KPI1_Value = FORMAT([YTD.Sales Amt], "0,,M" ) VAR KPI2_Value = FORMAT([YTD.Forecast Amt], "0,,M" ) VAR KPI3_Value = FORMAT([Diff Actuals vs Forecast], "0,,M" )
VAR Widths = MAX( MAX( LEN(KPI1_Value), LEN(KPI2_Value)), LEN(KPI3_Value) )VAR KPI1_ = (Widths - LEN(KPI1_Value) )*2VAR KPI2_ = (Widths - LEN(KPI2_Value) ) *2VAR KPI3_ = (Widths - LEN(KPI3_Value) )*2
VAR Result = KPI1_Text & REPT(Space, Widths+KPI1_) & KPI1_Value & REPT(Space, 4) & UNICHAR(10) & KPI2_Text & REPT(Space, Widths+KPI2_) & KPI2_Value & REPT(Space, 4) & UNICHAR(10) & KPI3_Text & REPT(Space, Widths+KPI3_) & KPI3_Value & REPT(Space, 4)
RETURN Result

折腾了这么久终于右对齐了,来看下最终效果

总结

之所以有这次尝试或者说折腾,是因为在做报表的过程中会很多时候会遇到用户需要看很多指标,如果全放卡片图的话性能会很差,当然也可以自带的多行卡,或者一些其他第三方图表,学习的过程就是一个不断试错,不断折腾地过程,希望大家在学习PowerBI时可以享受这种过程。



本篇文章来源于微信公众号: PowerBI木小桼

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注