![](https://img.haomeiwen.com/i19522947/94d225579c577287.png)
PowerBI中,我们经常使用柱形图来进行趋势对比分析,通过柱形图我们可以直观展示每个月之间的差异。
但是在实际需求中,PowerBI原生的柱形图仅能展示一个数据标签,如果我们想要展示同环比的变化情况,往往需要将同环比的度量值放置到工具提示中。
这对用户来说,体验其实是很不友好的,用户期望的往往是一眼可以获取到所有想知道的关键信息。
面对用户的这一需求,我们可以通过计算组来实现。
案例数据:
![](https://img.haomeiwen.com/i19522947/7b8487d2d54d41ac.png)
将其导入到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
)
)
模型关系如下:
![](https://img.haomeiwen.com/i19522947/66cd64cdff1ccf08.png)
添加如下基础度量值:
销售数量:
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
将上述度量值在柱形图中展示如下:
![](https://img.haomeiwen.com/i19522947/3d3a3dd1ade11804.png)
到这里,我们的准备工作完成,其实这也是不通过计算组功能所能实现的效果。
![](https://img.haomeiwen.com/i19522947/e686e1bc0b22a908.png)
在外部工作区,打开Tabular。
![](https://img.haomeiwen.com/i19522947/96576f84b71e2fef.png)
选择创建计算组。
![](https://img.haomeiwen.com/i19522947/96567bbd206becac.png)
添加两个计算项:
同比计算项:
SELECTEDMEASURE()
设置数据展示格式:
IF (
ISBLANK ( [Count同比%] ),
SUBSTITUTE ( SELECTEDMEASURE (), "0", "\0" ),
SUBSTITUTE (
SELECTEDMEASURE () & "("
& FORMAT ( [Count同比%], "0%" ) & ")",
"0",
"\0"
)
)
![](https://img.haomeiwen.com/i19522947/0df0d5b8de992a2b.png)
环比计算项:
SELECTEDMEASURE()
设置数据展示格式:
IF (
ISBLANK ( [Count环比%] ),
SUBSTITUTE ( SELECTEDMEASURE (), "0", "\0" ),
SUBSTITUTE (
SELECTEDMEASURE () & "("
& FORMAT ( [Count环比%], "0%" ) & ")",
"0",
"\0"
)
)
![](https://img.haomeiwen.com/i19522947/bf016d3a6b6aa187.png)
将其保存,应用到PowerBI中,最终展示的效果如下:
![](https://img.haomeiwen.com/i19522947/7a73996b0e86b4f0.png)
解释:
1.IF判断的目的,是为了解决某些时间段不存在同环比的情况;
2.SUBSTITUTE是为了解决因为0导致的数据格式问题;
3.当然,这个需求也可以深挖一下,进行同环比配色,这里就不进行展示了。
![](https://img.haomeiwen.com/i19522947/7747ee7fb4eebfe8.png)
![](https://img.haomeiwen.com/i19522947/60e85db6a74f7b2a.png)
这里是白茶,一个PowerBI的初学者。
![](https://img.haomeiwen.com/i19522947/a3203a1395b2ec34.png)
网友评论