小组中的最大差异

时间:2018-09-07 13:05:01

标签: powerbi dax

对于每个组,我想找到VarB的最大值,并减去Var A的每个组中的第一个值。Max(group1的{VarB)-FirstObs(VarA group1)。希望这是有道理的。以下是表格形式的预期结果,以及我尝试的代码

 VarA  VarB  Group  Result    Index
  10     11    1   (10-11=-1)   1
  11      4    1   (10-11=-1)   2
 ...
  12     7     1   (10-11=-1)   5
  9     11     2   (9-11=-2)    6
  13      4    2   (9-11=-2)    7
 ...
  11     7     2   (9-11=-2)    11

Maxdiff = 
   VAR CurrGroup = Table1[Group]
   VAR MaxVal = CALCULATE(MAX(Table1[VarB]), ALL(Table1), Table1[Group] = CurrGroup)
   VAR MinIndex = CALCULATE(MIN(Table1[Index]), ALL(Table1), Table1[Group] = CurrGroup)
   RETURN LOOKUPVALUE(Table1[VarB], Table1[Group], MaxVal) - 
          LOOKUPVALUE(Table1[VarA], Table1[Index], MinIndex)

我收到错误消息“在期望单个值的地方提供了多个值的表”

1 个答案:

答案 0 :(得分:1)

问题是您试图查找与您的VarB匹配的Group的{​​{1}}值。这是没有意义的,因为您可能不想将MaxVal的数字与Group的值进行匹配。由于每个组都有多个与之关联的VarB值,因此它将返回多个值。

我认为以下是您所追求的:

VarB

这将返回MaxDiff = VAR CurrGroup = Table1[Group] VAR MaxVal = CALCULATE(MAX(Table1[VarB]), ALL(Table1), Table1[Group] = CurrGroup) VAR MinIndex = CALCULATE(MIN(Table1[Index]), ALL(Table1), Table1[Group] = CurrGroup) RETURN MaxVal - LOOKUPVALUE(Table1[VarA], Table1[Index], MinIndex) = 12的{​​{1}}和[Group]。 (您的减法在您的问题中向后看。)