如何比较类别的平均值

时间:2019-04-27 17:37:51

标签: powerbi dax

我有3张桌子: 表1:

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

表2:

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

表3:值

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
-------------------------------------
  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  

有没有办法做到这一点?
预先感谢
埃里亚斯

2 个答案:

答案 0 :(得分:0)

您可以通过在“值”表中添加“类别”列来完成此操作:

Category = RELATED(Branch[Category])

并在此之后添加AgeragePerCategory列:

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

答案 1 :(得分:0)

感谢您的回答。 为了解决这个问题,我必须向Date添加一个额外的过滤器,因为它会将所有值取平均值,而不考虑日期。 因此,AveragePerCategory看起来像:

AveragePerCategory = CALCULATE(AVERAGE('Values'[Value]);FILTER('Values'; 'Values'[Category] = EARLIER('Values'[Category]) && 'Values'[Date] = EARLIER('Values'[Date])))