3
做了人类想成仙,坐在地上要上天
在做报告的过程中,很多时候需要性展示很长的一段文本来进行辅助说明,为了更好的展示,就需要对文本进行换行,而是PowerBI中进行换行也很简单:
-
Shift+Enter换行
-
使用UNICHAR(10)
示例如下:
test1 = "我是中国
人"
test2 = "我是中国" & UNICHAR(10) & "人"
- 1
- 2
- 3
效果如下:
这时想起了罗老师的一句话,做人就是要折腾。那么利用换行符还能做些什么呢?
比如,文章标题已经提到的多行卡,PowerBI内置的是有多行卡的,先来看下原生的效果
利用换行符就可以做到标签和数值在一行显示,可以先这样写:
test3 =
VAR KPI1 = "Sales YTD: " & [ Amt]
VAR KPI2 = "Forecast: " & [ Amt]
VAR KPI3 = "Difference: " & [Diff Actuals vs Forecast]
VAR Result =
KPI1 & UNICHAR(10) &
KPI2 & UNICHAR(10) &
KPI3
RETURN
Result
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
因为卡片图是不能设置对齐方式的,所以这里需要插入一个空白按钮,然后设置下对齐方式。这里需要注意按钮宽度不能太宽,不然换行效果无法生效的。效果如下:
当然,上面代码中并未对相应的指标进行格式化,所以显示的小数位数可能不是我们想要的,用FORMATF进行相应的格式化就好。
文本是左对齐的,可能效果不是很好,先来看下空格在PowerBI中的显示效果
test4 =
1234 & REPT(" ", 1) & 6 & UNICHAR(10)
& 456789 & UNICHAR(10)
& 678919
- 1
- 2
- 3
- 4
同样地插入一个空白按钮,将文本设置为该度量值,可以看到虽然第一行加了空格来补位,但是在显示效果上仍然无法和另外两行对齐。
既然左对齐行不通,那我们可以试下右对齐,修改代码如下,然后水平对齐改为右对齐,发现空格并没有生效。
test4 =
1234 & REPT(" ", 1) & 6 & REPT(" ", 4) & UNICHAR(10)
& 456789 & REPT(" ", 4) & UNICHAR(10)
& 678919 & REPT(" ", 4)
- 1
- 2
- 3
- 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)
- 1
- 2
- 3
- 4
接下来就是应用到多行卡中
KPIS =
VAR Space = UNICHAR(8197)
VAR KPI1_Text = "Sales YTD:"
VAR KPI2_Text = "Forecast:"
VAR KPI3_Text = "Difference:"
VAR KPI1_Value = FORMAT([ Amt], "0,,M" )
VAR KPI2_Value = FORMAT([ 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) )*2
VAR KPI2_ = (Widths - LEN(KPI2_Value) ) *2
VAR 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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
折腾了这么久终于右对齐了,来看下最终效果
总结
之所以有这次尝试或者说折腾,是因为在做报表的过程中会很多时候会遇到用户需要看很多指标,如果全放卡片图的话性能会很差,当然也可以自带的多行卡,或者一些其他第三方图表,学习的过程就是一个不断试错,不断折腾地过程,希望大家在学习PowerBI时可以享受这种过程。