计算组最重要的用途,按照白茶的理解,有两个:
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的初学者。
网友评论