这是我的问题。我正在尝试计算每个月(滚动)的3个月平均值,最后一个值。
例如:
ID SCORE DATE
2 3 3/19
1 * 2 4/19
6 3 5/19 May(avg Mar,Apr,May) 3+*2+3+4/4 = 3
3 4 5/19
4 4 6/19 June(avg April May June) 3+4+4+*3+5/5= 3.8
1 * 3 6/19
6 5 6/19
因此,五月平均值将为3(12(三月,四月,五月)/ 4),ID为1的值= 2
但在6月,平均值将是3.8(19(4月,5月,6月)/ 5),ID 1得分的值= 3。
我试图遵循 https://community.powerbi.com/t5/Desktop/Rolling-3-Month-Average/m-p/695325#M335440),我需要的是过滤或仅传递用于求和的最新值的方法。
Rolling 3msc =
VAR PeriodEnd =
LASTDATE ( 'Table'[Date] )
VAR PeriodStart =
FIRSTDATE ( DATESINPERIOD ( 'Table'[Date], PeriodEnd, -3, MONTH ) )
RETURN
CALCULATE (
SUM ( 'Table'[Score] ),
DATESBETWEEN ( 'Table'[Date], PeriodStart, PeriodEnd )
) # what I need to figure out how to sum the score based
on the last score in this period
/ CALCULATE (
DISTINCTCOUNT ( 'Table'[ID] ),
DATESBETWEEN ( 'Table'[Date], PeriodStart, PeriodEnd )
)
答案 0 :(得分:0)
microsfot中的示例不正确,您可以添加一列:
Rolling 3msc =
var periodEnd = LASTDATE(DATESINPERIOD(AveMonths[DATE];AveMonths[DATE];1;MONTH))
var periodStart = FIRSTDATE(DATESINPERIOD(AveMonths[DATE];periodEnd;-3;MONTH))
return
CALCULATE(AVERAGE(AveMonths[SCORE]);
FILTER(AveMonths; AveMonths[DATE] >= periodStart && AveMonths[DATE] <= periodEnd))
最终结果:
在这里您可以看到4月的平均值是(3 + 2 + 4)/ 3 =3。(3月+ 4月+ 5月)。
您在一个月中拥有多少值都无所谓,它仍然可以计算出平均值。