文章背景: 在进行商业数据分析时,经常需要给不同的度量值(如销售额、销量等)计算同比、环比、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
,创建一个计算组,如下:
创建的计算组包括如下几个部分:
假定我们想要得到如下的效果图:
这里需要定义环比和同比这两种计算逻辑。
(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)
[3] [通过计算组动态切换指标格式(https://www.cnblogs.com/yeacer/p/13938034.html)