美文网首页BI学习笔记
BI技巧丨计算组格式

BI技巧丨计算组格式

作者: Fabric丨白茶 | 来源:发表于2023-03-17 19:38 被阅读0次

计算组最重要的用途,按照白茶的理解,有两个:
1.相同逻辑的度量值,可避免重复造轮子;
2.可自定义DAX格式而不改变其原有的数据格式。

白茶在之前的文章中曾经介绍过,计算组的用途除了避免重复造轮子外,还可以用来自定义数据格式。

那么什么样的场景适合使用自定义格式?自定义格式是怎样应用的呢?

案例数据:

案例数据比较简单,只有一张事实表。将其导入到PowerBI中,通过如下代码,建立模型关系。

Date = 
GENERATE (
    CALENDAR ( MIN ( 'Sales'[DATE] ), MAX ( 'Sales'[DATE] ) ),
    VAR DA = [Date]
    VAR YEAR =
        YEAR ( DA )
    VAR QUARTER =
        "Q" & FORMAT ( DA, "Q" )
    VAR MONTE =
        FORMAT ( DA, "MM" )
    VAR DAY =
        DAY ( DA )
    RETURN
        ROW (
            "Year", YEAR,
            "Quarter", QUARTER,
            "Month", MONTE,
            "DayOfMonth", DAY,
            "YearQuarter", YEAR & QUARTER,
            "YearMonth", YEAR & MONTE,
            "YearMonthCount",
                YEAR * 12 + MONTE
        )
)

结果如下:

我们先来构建三个基础的指标:

销售数量:

Quantity = 
SUM ( Sales[Quantity] )

同比:

Count同比% = 
VAR CurrentCount =
    SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastYearMonthCount = CurrentCount - 12
VAR LastYearMonthValue =
    CALCULATE (
        [Quantity],
        FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastYearMonthCount )
    )
VAR Result =
    DIVIDE ( [Quantity] - LastYearMonthValue, LastYearMonthValue )
RETURN
    Result

环比:

Count环比% = 
VAR CurrentCount =
    SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastMonthCount = CurrentCount - 1
VAR LastMonthValue =
    CALCULATE (
        [Quantity],
        FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastMonthCount )
    )
VAR Result =
    DIVIDE ( [Quantity] - LastMonthValue, LastMonthValue )
RETURN
    Result

举个例子:

现在老板希望可以通过切片器,来动态的切换数据,那么在我们学习计算组之前,我们的处理方式如下:

1.添加一张维度表。

2.添加动态度量值。

动态数据 = 
SWITCH (
    TRUE (),
    SELECTEDVALUE ( '动态数据'[Type] ) = 1, [Quantity],
    SELECTEDVALUE ( '动态数据'[Type] ) = 2, [Count同比%],
    SELECTEDVALUE ( '动态数据'[Type] ) = 3, [Count环比%]
)

结果如下:

可以看出来,我们虽然实现了动态切换度量值,但是从实际应用上来讲,切换的同时,也希望可以同时切换数据格式的。

原来的处理办法如下:

动态格式 = 
SWITCH (
    TRUE (),
    SELECTEDVALUE ( '动态数据'[Type] ) = 1, [Quantity],
    SELECTEDVALUE ( '动态数据'[Type] ) = 2, FORMAT ( [Count同比%], "0.00%" ),
    SELECTEDVALUE ( '动态数据'[Type] ) = 3, FORMAT ( [Count环比%], "0.00%" )
)

结果如下:

这种从肉眼上,实现了数据格式的动态切换,但是本质数据格式已经发生了改变。

而使用计算组的方式,则会更加的便捷。

PS:
当然,有的小伙伴会说,我用字段参数也行啊。
用字段参数的方式当然也是可以的,但是在字段参数出现之前,计算组的方式更加便捷,而且,对比字段参数,计算组还有其他用途。

打开Tabular Editor,依次点击鼠标右键:

Table→Create New→Calculation Group,创建名为“动态”的计算组,并且添加“数量、同比、环比”三个计算项,结果如下:

依次编辑三个计算项:

这里直接引用好我们构建的度量值即可,然后针对三个计算项,每个设定相应的格式。

保存应用,返回到PowerBI中,添加如下度量值:

计算组格式 = 
0

这里大家也可以随便写一个度量值,什么都可以,用作占位即可,白茶稍后会解释原因。

将其拖放到表格中,展示如下:

当我们点击切片器时,结果如下:

这样我们就实现了动态数据格式功能。

PS:
当页面有计算组字段,未进行筛选时,度量值会展示原本的计算结果;
计算组字段筛选时,会展示计算项的算法逻辑,会直接进行覆盖。

到这里就结束了么?并没有,除了这种动态切换度量值的应用以外,我们还可以将数字标签转换为文本。

在Tabular Editor中,我们继续新建一个计算组。

将其拖放到折线图中,并且将新建的计算组字段,放到当前可视化筛选器中,展示结果如下:

这里是白茶,一个PowerBI的初学者。


相关文章

  • BI技巧丨计算Topn品名

    BOSS:白茶,问你个事,能不能动态的根据我们的销量,告诉我销量前三的商品有哪些?这样便于我针对商品进行调控。白茶...

  • BI技巧丨同环比计算

    我们在做BI报表分析的时候,大部分指标的运算逻辑都不是特别的复杂,很多用户对于指标最基本的需求,就是可以展示当月数...

  • BI技巧丨百分位计算

    百分位计算 百分位数据计算,可以说是日常计算中比较常见的需求,通常会用于价格段位分析使用,而在PowerBI中,用...

  • BI技巧丨RankxYoY

    群友:PowerBI可以实现两年的排名差异么?白茶:可以!安排! 本期的问题,来自于群内小伙伴的一个实际应用场景。...

  • BI技巧丨均值之上

    BOSS:白茶呢?!今天没来么?同事:来了啊,老板,不过你上次不是罚他扫厕所么?厕所了!BOSS:哎哟!这个时候扫...

  • BI技巧丨粒度切换

    白茶在很久之前,写过关于笛卡尔积的两个函数。 GENERATE函数与CROSSJOIN函数。 传送门:《笛卡尔积》...

  • BI技巧丨权限轴

    BOSS:(愁眉苦脸)白茶呢?同事:(推一推)醒醒,白茶,BOSS喊你!白茶:(一脸懵)咋了,老板?BOSS:(一...

  • BI技巧丨当月期初

    最近在群里,小伙伴提出了一个有意思的算法逻辑,决定分享给大家。 先来看看本期的案例数据: 如图,数据相对而言比较简...

  • BI技巧丨权限下载

    BOSS:白茶,问你个事,就是报表的下载权限,这个能控制不?白茶:可以啊,老板,工作区限制成员身份就可以啊。BOS...

  • BI技巧丨筛选重置

    在开发的过程中,用户最喜欢,最习惯看的,还是类似于Excel形式的明细表格。 执行层用户需要的,往往是一张Deta...

网友评论

    本文标题:BI技巧丨计算组格式

    本文链接:https://www.haomeiwen.com/subject/betqfdtx.html