使用计算组自动设置列宽

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

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

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

计算组格式表达式的妙用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值