使用计算组自动设置列宽
你是不是经常看到下面这样的矩阵呢,要么是数值换行了,要么是数值进行了隐藏
要解决上面的问题其实也很简单,打开值的自动宽度就行了。
但是,你可能会遇到要求更严格的客户。当时遇到过客户要求列上的所有月份的宽度必须一样,这样我们就没办法用自动列宽了,需要手动一列列调,当然也有相对简单的办法,就是先统一设定一个非常大的值,然后关掉自动列宽,之后再替换为要显示的值,具体可参考PowerBI小技巧–快速统一矩阵列宽,这样的会有一个坏处,如果某天业务增长,超过了当时我们设定的那个最大值,值的显示还是会不理想。
那么,今天就来介绍另外一种方法,使用计算组来自动设置列宽,使用计算组的思路其实和PowerBI小技巧–快速统一矩阵列宽中的方法差不多,
-
• 找到矩阵中最大的值,求出其长度
-
• 矩阵中当前值和最大值长度比较,不足的补空格显示
看到补空格显示,不知道有没有小伙伴想到在处理同名客户时的做法,感兴趣的可以参考PowerBI处理同名客户
比如我们要设置下面的矩阵的列宽
1、创建计算组,计算表达式直接默认就好
2、格式表达式按照刚我们的思路依次求出各个值
VAR cur =
SELECTEDMEASURE ()
VAR curLen =
LEN ( cur )
VAR maxV =
CALCULATE (
MAXX (
SUMMARIZE ( 'FactInternetSales', 'DimProductSubcategory'[EnglishProductSubcategoryName], 'DimDate'[CalendarYear], 'DimDate'[MonthNumberOfYear]),
[销售额]
),
ALLSELECTED ()
)
VAR maxLen =
LEN ( maxV )
VAR spaces =
IF ( maxLen > curLen, maxLen - curLen, 0 )
VAR result =
REPT ( " ", spaces )
RETURN
"""" & result & """"
& SELECTEDMEASUREFORMATSTRING ()
因为矩阵已经打开了自动宽度,返回报表可能看不出来变化,我们可以再新建一个计算项,设置宽度是15个空格,表表达式不变,格式表达式如下
VAR cur =
SELECTEDMEASURE ()
VAR curLen =
LEN ( cur )
VAR selLen = INT ( SELECTEDVALUE( '自动列宽'[name], curLen ) )
VAR spaces =
IF ( selLen > curLen, selLen - curLen, 0 )
VAR result =
REPT (" ", spaces )
RETURN
"""" & result & """"
& SELECTEDMEASUREFORMATSTRING ()
这时返回报表看下效果
推荐阅读
本篇文章来源于微信公众号: PowerBI木小桼