• 使用计算组自动设置列宽


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

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

    但是,你可能会遇到要求更严格的客户。当时遇到过客户要求列上的所有月份的宽度必须一样,这样我们就没办法用自动列宽了,需要手动一列列调,当然也有相对简单的办法,就是先统一设定一个非常大的值,然后关掉自动列宽,之后再替换为要显示的值,具体可参考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 ()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    因为矩阵已经打开了自动宽度,返回报表可能看不出来变化,我们可以再新建一个计算项,设置宽度是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 ()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    这时返回报表看下效果

    推荐阅读

    PowerBI小技巧–快速统一矩阵列宽

    PowerBI处理同名客户

    计算组格式表达式的妙用

  • 相关阅读:
    功率放大器在材料测试中的应用有哪些
    openGL 3D geometry 之数学部分
    yolo训练时遇到GBK编码问题
    第2-1-3章 docker-compose安装FastDFS,实现文件存储服务
    shell的类型
    Java8函数式编程应用
    卡尔曼滤波应用在数据处理方面的应用
    使用Java分割PDF文件
    Bug及优化
    SpringBoot 2.3.12.RELEASE整合RabittMQ 3.8.12
  • 原文地址:https://blog.csdn.net/bluefire5/article/details/127717297