对于每个组,我想找到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)
我收到错误消息“在期望单个值的地方提供了多个值的表”
答案 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)
= 1
和2
的{{1}}和[Group]
。
(您的减法在您的问题中向后看。)