如何比较类别的平均值

问题描述 投票:0回答:2

我有3个表:table1:

Category  
--------  
1  
2  
3  
4  

表2:

Branch | Category  
------------------  
A1     |   1  
A2     |   1  
A3     |   2  
A4     |   3  
A5     |   4  
A6     |   4  
A7     |   4  

table3:值

Date     | Branch  | Value
---------------------------
1/1/2019 |  A1     |   35  
1/1/2019 |  A2     |   40  
1/1/2019 |  A4     |   62  
1/1/2019 |  A5     |   10  
1/1/2019 |  A6     |   20  
1/1/2019 |  A7     |   35  

表连接是:类别 - > ---分支和分支 - > - 值

我试图将每个分支的值与属于的分类的平均值进行比较。如果分支的价值低于类别的平均值,那么其他情况就不错了。

如果我创建一个包含Branch,value和Category Average的矩阵,它看起来像这样:

Branch  |   Value  |   Category Average
-------------------------------------
  A1    |    35    |   35  
  A2    |    40    |   40  
  A4    |    62    |   62  
  A5    |    10    |   10  
  A6    |    20    |   20  
  A7    |    35    |   35  



BranchAVG = AVERAGE(Table3[Value])
CategoryAVG = AVERAGEX(VALUES(Categories[Category]);[BranchAVG])

但它应该是这样的:

Branch  |   Value  |   Category Average | Good/Bad
------------------------------------------------
  A1    |    35    |       37.5         |  Good             
  A2    |    40    |       37.5         |  Bad  
  A4    |    62    |       62.0         |  Good  
  A5    |    10    |       21.7         |  Good  
  A6    |    20    |       21.7         |  Good  
  A7    |    35    |       21.7         |  Bad  

有没有可能的方法呢? 提前致谢 埃利亚斯

powerbi dax
2个回答
0
投票

您可以通过向Value表添加Category列来执行此操作:

Category = RELATED(Branch[Category])

然后添加AgeragePerCategory列:

AgeravePerCategory = CALCULATE(AVERAGE('Values'[Value]);FILTER('Values'; 'Values'[Category] = EARLIER('Values'[Category])))

0
投票

谢谢你的回答。为了解决这个问题,我必须在Date中添加一个额外的过滤器,因为无论日期如何,它都会平均所有值。所以AveragePerCategory看起来像:

AveragePerCategory = CALCULATE(AVERAGE('Values'[Value]);FILTER('Values'; 'Values'[Category] = EARLIER('Values'[Category]) && 'Values'[Date] = EARLIER('Values'[Date])))
© www.soinside.com 2019 - 2024. All rights reserved.