alt

PowerBI有三大工具,分别是DAX Studio,Tabular Editor和Bravo。

DAX Studio通常我们会用来进行性能分析和DAX调优使用,Bravo一般用来批量格式化DAX,而Tabular Editor主要的功能就是计算组。

计算组这个名词,相信很多小伙伴都听过,但也有很多小伙伴其实并没有用过这个功能,本期我们来了解一下,计算组的用途以及使用方法。

案例数据:

alt

案例数据比较简单,只有一张事实表。 将其导入到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
        )
)

结果如下:

alt

到这里,我们的准备工作结束。 安装Tabular Editor,这里就不赘述了,小伙伴们可以自行搜索Tabular Editor2。

注:目前Tabular Editor2版本还是免费的,最新版Tabular Editor3属于收费。

计算组最重要的用途,按照白茶的理解,有两个:

1.相同逻辑的度量值,可避免重复造轮子;

2.可自定义DAX格式而不改变其原有的数据格式。

这里,我们只介绍如何避免重复造轮子。

举个例子:

我们现在有三段代码,分别用来计算销售数量的本期、同比以及环比。 销售数量:

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

结果如下:

alt

这里,白茶为了更好阐述计算组的用途,特意使用了较为复杂的逻辑。

在实际工作中,我们经常会遇到同一套逻辑,针对不同的KPI,我们需要重复写DAX的情况。

这样不仅费时费力,而且后续维护起来,也是一个巨大的麻烦,而计算组的出现,很好的解决了这一烦恼。 在安装好Tabular Editor后,我们会在面板导航上面,发现一个新的功能区”外部工具“(其他工具安装好后,也会出现在这里)。

alt

我们选择点击,打开Tabular Editor。

在之前的版本中,还需要在预览功能里面打开“使用增强的元数据格式存储数据集”功能,目前最新版已经不需要了。

打开之后的页面如下:

alt

依次点击鼠标右键:Table→Create New→Calculation Group,会出现如下界面:

alt

这里会构建一张新表,我们需要针对此表进行命名,例如:同环比。

依次点击鼠标右键:表名→Create New→Calculation Item,会出现如下界面: alt

Name是展示我们构建逻辑的名称,New Calculation则是逻辑名称以及构建我们需要的业务逻辑。我们可以创建两个业务逻辑,分别是同比和环比。

这里会使用到一个特殊的函数:SELECTEDMEASURE。此函数的用途,用来代替我们要计算的指标。

同比:

VAR CurrentCount =
    SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastYearMonthCount = CurrentCount - 12
VAR LastYearMonthValue =
    CALCULATE (
        SELECTEDMEASURE(),
        FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastYearMonthCount )
    )
VAR Result =
    DIVIDE ( SELECTEDMEASURE() - LastYearMonthValue, LastYearMonthValue )
RETURN
    Result

结果如下:

alt

环比:

VAR CurrentCount =
    SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastMonthCount = CurrentCount - 1
VAR LastMonthValue =
    CALCULATE (
        SELECTEDMEASURE(),
        FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastMonthCount )
    )
VAR Result =
    DIVIDE ( SELECTEDMEASURE() - LastMonthValue, LastMonthValue )
RETURN
    Result

结果如下:

alt

两个逻辑构建完毕之后,我们点击保存按钮。

alt

此时,我们回到PowerBI Desktop页面,会出现如下页面,点击立即刷新即可。

alt

此时,我们就可以在表中看到刚才构建的计算组了。

alt

最终展示效果如下:

alt alt alt

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