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

时间:2017-09-07 23:54:27

标签: powerbi dax

我正在尝试计算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的计数总和

方差=(平均 - 总和(CurrentMonth))/平均值

所以,因为平均值在前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
  

让我们为主席说,

     

当月总和= 200 + 210 = 410

     

过去3个月的平均值=(100 + 200 + 300 + 180 + 190 + 250 + 120 + 150)/ 3 = 1490/3 = 497

     

方差=(497-410)/ 410 = 87/410 = 0.21

请分享您的想法。

1 个答案:

答案 0 :(得分:1)

我开始使用Table1(我向你的数据添加了几个月):

enter image description here

我将它加载到Power BI并使用以下代码添加了一个名为“YearMonth”的列:YearMonth = Table1[Year]&FORMAT(Table1[Month],"00") ...来获取此信息:

enter image description here

然后我使用以下代码添加了另一个名为“Sum(CurrentMonth)”的列:Sum(CurrentMonth) = SUMX(FILTER(FILTER(Table1,Table1[Item]=EARLIER(Table1[Item])),VALUE(Table1[YearMonth])=VALUE(EARLIER(Table1[YearMonth]))),Table1[Count]) ...来获取此信息:

enter image description here

然后我使用以下代码添加了另一个名为“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 ...来获取此信息:

enter image description here

最后,我使用以下代码添加了一个名为“Variance”的列:Variance = (Table1[Average]-Table1[Sum(CurrentMonth)])/Table1[Sum(CurrentMonth)] ...来获取此信息:

enter image description here

我希望这会对你有所帮助。