希望获得3年内特定月份的移动平均数和总和年数,而不是每月滚动平均数。我希望看到我们多年来的月度业务趋势,并希望将平均值作为基准。
即:
2011年1月,2012年1月,2013年1月等
2011年2月,2012年2月,2013年2月等
到目前为止,我所能做的就是从选定年份获得3年的SUM,即使这样。
例如:选定的月份= 2013年1月,汇总包括2011年2月至2013年1月的所有月份。相反,我需要在那些年份的1月份。
尝试了日期措施:
CALCULATE([total],
DATESINPERIOD(Time[Pk_Date],
LASTDATE(Time[PK_Date]),-3,Year
)
)
目标是从选定的年份推迟3年
在此方案中,滚动平均值和运行总计应为:
2013 avg = 53 | sum = 158
2014 avg = 55 |总和= 165
2015 avg = 52 | sum = 157
任何帮助表示赞赏!
答案 0 :(得分:2)
您已经非常接近,您错过了额外的过滤器,可以将您选择的日期时间过滤到所选的月份数。
首先,确保日期表中有月份编号的列。我们假设它被称为MonthNumber
。
接下来,创建一个度量来捕获您选择的月份。
ChosenMonth :=
MAX ( Time[MonthNumber] )
由于数据透视表中的每一行都有一个月,因此只会将该月作为一个度量返回,以便您可以在以后的计算中使用它。您也可以使用SUM()
,MIN()
等,因为只有一个值。
RollingAverage :=
CALCULATE (
[Total],
DATESINPERIOD (
Time[PK_Date],
LASTDATE ( Time[PK_Date] ),
-3,
YEAR
),
FILTER (
VALUES ( Time[MonthNumber] ),
Time[MonthNumber] = [ChosenMonth]
)
)
这就是为所选月份等事情创建中间隐藏度量的重要性,因此您可以