PowerBI - 带条件的平均值和方差计算

PowerBI - Average and Variance Calculation with conditions

我正在尝试在 PowerBI 中计算方差和平均值。我 运行 陷入循环依赖错误。

这是我的数据,

Month Year  Item  Count
1     2017  Chair  100
1     2017  Chair  200
1     2017  Chair  300
1     2017  Bench  110
1     2017  Bench  140
1     2017  Bench  150
2     2017  Chair  180
2     2017  Chair  190
2     2017  Chair  250 
2     2017  Bench  270
2     2017  Bench  370 
3     2017  Chair  120
3     2017  Chair  150  
3     2017  Bench  180
3     2017  Bench  190  
4     2017  Chair  200
4     2017  Chair  210
4     2017  Bench  220
4     2017  Bench  230
.
.
.

平均值 = 前 3 个月的计数总和 / 3

方差 =(平均值 - 总和(当前月份))/平均值

所以,因为前 3 个月的平均值没有意义,所以我不会担心。

预期输出,

Month Year Item Sum(CurrentMonth) Average Variance
1
1
2
2
3
3
4    2017  Chair     410               497      0.21
4    2017  Bench     x                 y        z

Lets Say for Chair,

Sum of Current Month = 200 + 210 = 410

Average of Last 3 Months = (100 + 200 + 300 + 180 + 190 + 250 + 120 + 150 )/ 3 = 1490 / 3 = 497

Variance = (497 - 410) / 410 = 87 / 410 = 0.21

请分享您的想法。

我从表 1 开始(我向你的数据添加了几个月的数据):

我将它加载到 Power BI 中并使用以下代码添加了一个名为 "YearMonth" 的列:YearMonth = Table1[Year]&FORMAT(Table1[Month],"00") ...得到这个:

然后我使用以下代码添加了另一个名为 "Sum(CurrentMonth)" 的列:Sum(CurrentMonth) = SUMX(FILTER(FILTER(Table1,Table1[Item]=EARLIER(Table1[Item])),VALUE(Table1[YearMonth])=VALUE(EARLIER(Table1[YearMonth]))),Table1[Count]) ...得到这个:

然后我使用以下代码添加了另一个名为 "Average" 的列:Average = SUMX(FILTER(FILTER(FILTER(Table1,Table1[Item]=EARLIER(Table1[Item])),VALUE(Table1[YearMonth])<=VALUE(EARLIER(Table1[YearMonth]))-1),VALUE(Table1[YearMonth])>=VALUE(EARLIER(Table1[YearMonth]))-3),Table1[Count])/3 ...得到这个:

最后,我使用以下代码添加了一个名为 "Variance" 的列:Variance = (Table1[Average]-Table1[Sum(CurrentMonth)])/Table1[Sum(CurrentMonth)] ...得到这个:

希望对您有所帮助。