使用计算组自动设置列宽

你是不是经常看到下面这样的矩阵呢,要么是数值换行了,要么是数值进行了隐藏

要解决上面的问题其实也很简单,打开值的自动宽度就行了。

但是,你可能会遇到要求更严格的客户。当时遇到过客户要求列上的所有月份的宽度必须一样,这样我们就没办法用自动列宽了,需要手动一列列调,当然也有相对简单的办法,就是先统一设定一个非常大的值,然后关掉自动列宽,之后再替换为要显示的值,具体可参考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小技巧–快速统一矩阵列宽

PowerBI处理同名客户

计算组格式表达式的妙用

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

类似文章

发表回复

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