zl程序教程

您现在的位置是:首页 >  工具

当前栏目

PowerBI: 使用计算组功能计算不同度量值的同比、环比

PowerBI计算 使用 功能 不同 同比 度量 环比
2023-06-13 09:15:58 时间

文章背景: 在进行商业数据分析时,经常需要给不同的度量值(如销售额、销量等)计算同比、环比、YTD(年初至今)等指标,如果给每个指标都写一个以上的时间智能函数,那么会写很多重复的度量值,这些度量值的唯一不同就在于引用的基础度量值。比如:上月业绩 = CALCULATE([销售业绩],DATEADD('日期表'[日期],-1,MONTH))

如果需要统计更多度量值的上月情况,只需替换[销售业绩]这个度量值就行了。而计算组功能就可以做到这一点。

PowerBI 版本:2.109.782.0 64-bit (2022年9月)

假定有一份PowerBI文件,内有一张销售明细表,目前需要统计每月销售额、人均销售额等的同比、环比。本文打算通过计算组的功能实现。操作步骤如下:

(1)需要提前安装Tabular Editor 3软件,下载地址:https://tabulareditor.com/。这个软件是收费的,米目前开放了 30 天的免费体验期。

(2)Tabular Editor 3软件安装完成后,重新打开PowerBI软件,在外部工具的菜单上可以看到Tabular Editor 3图标。

(3)点击该图标,进入Tabular Editor 3的界面。

(4)点击上图中的图标,选择已经打开的PowerBI 文件。

注意:PowerBI desktop必须提前打开;PowerBI desktop必须已经有一个数据模型而不能是空的。

选择,并点击OK后,进入如下界面。

(5)右键点击Model,选择Create,弹出:

点击Calculation Group,创建一个计算组,如下:

创建的计算组包括如下几个部分:

  • New Calculation Group
    • Calculation Items
    • Name
    • Ordinal

假定我们想要得到如下的效果图:

这里需要定义环比和同比这两种计算逻辑。

(6)修改计算组的名字。

(7)修改Name的名字。

(8)定义计算组中的项

右键Calculation Items,选择Create,弹出:

点击Calculation Item,创建一个名为环比的项,如下:

环比:

VAR PY =
    CALCULATE(
        SELECTEDMEASURE(),
        DATEADD('日期表'[日期],-1,MONTH)
    )
RETURN
    DIVIDE(
        SELECTEDMEASURE()-PY,
        PY
    )

同样地,点击Calculation Item,创建一个名为同比的项,如下:

同比:

VAR PY =
    CALCULATE(
        SELECTEDMEASURE(),
        DATEADD('日期表'[日期],-1,YEAR)
    )
RETURN
    DIVIDE(
        SELECTEDMEASURE()-PY,
        PY
    )

通过建立的两个计算项,可以看到:

1)Ordinal指定了排序;

2)Format String Expression 指定了格式化的字符串。

(9)将更改保存至DAX引擎。

点击上图中的图标,将更改保存至已经连接的数据库(也就是DAX引擎)。

(10)回到PowerBI desktop界面,对所创建的计算组进行数据刷新。

(11)计算组已经创建完毕。按照下图拖拽出需要的矩阵图,效果如下:

对于矩阵的,这里只放置了一个度量值(人均销售额)。而计算组按照事先定义的两个计算逻辑(环比和同比)进行了计算。

参考资料:

[1] Power BI计算组应用(https://www.jianshu.com/p/0f309922c469)

[2] PowerBI DAX 计算组 基础篇

[3] [通过计算组动态切换指标格式(https://www.cnblogs.com/yeacer/p/13938034.html)