滚动/每月多年来移动平均线(Rolling/Moving average by month over

2019-10-24 11:51发布

希望得到的特定几个月多年均线和总金额超过3年,每月不滚动平均值。 我想一个月多年来看到我们的业务发展趋势,并希望有平均值作为基准。

即:

  • 2011年1月,2012年1月,2013年1月,等

  • 2011年2月,2012年2月,2013年2月,等

到目前为止,所有我已经能够做的就是从选择一年3年之和,甚至是关闭的。

例如:选择月= 2013年1月,总包括所有个月,从2011年2月 - > 2013年一月我反而只需要一月那些年。

日期措施的尝试:

CALCULATE([total], DATESINPERIOD(Time[Pk_Date], LASTDATE(Time[PK_Date]),-3,Year ) )

目标是回滚3年,从今年选择

  • 一月
    • 2011:50
    • 2012:55
    • 2013:53
    • 2014:57
    • 2015年:47

在这种情况下滚动AVG和运行总计应为:

2013 avg = 53 | sum = 158

2014平均= 55 | 总和= 165

2015年平均= 52 | 总和= 157

任何帮助表示赞赏!

Answer 1:

你超近,你只是错过了额外的过滤器来过滤你选择到所选择的月份数日时间。

首先,确保有一个为在你的日期表的月份数列。 让我们假设它被称为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]
    )
)

这就是为什么创造了象选择一个月中间,隐藏的措施是很重要的,这样你就可以重新申请一组日期的地方DAX真的没有等价的住宿这方面。



文章来源: Rolling/Moving average by month over years