Max(If( 相当于 DAX PowerPivot
Max(If( equivalent in DAX PowerPivot
这个问题之前已经被问过和回答过,但是我找到的解决方案似乎并不适合我目前的情况。
我的 table 看起来像:
我想要 return B 列中的最高值,因为它在功率数据透视表的 A 列中匹配的所有实例。
使用标准 excel 函数,我会在 C 列中使用 =max(if(a2=a:a,b:b))
。
我试过了=CALCULATE(max(Table1[B]),filter(Table1,Table1[A]=Table1[A]))
但这是结果
如有任何帮助,我们将不胜感激!
Table1[A]
始终等于 Table1[A]
因此您的条件始终为真,因此不会进行任何有意义的过滤。
您要查找的是按 earlier 行上下文过滤(来自原始 table,而不是 FILTER 迭代器函数):
CALCULATE (
MAX ( Table1[B] ),
FILTER ( Table1, Table1[A] = EARLIER ( Table1[A] ) )
)
另一种方法是在进入 FILTER 之前使用变量获取行上下文。
VAR CurrRowA = Table1[A]
RETURN
CALCULATE ( MAX ( Table1[B] ), Table1[A] = CurrRowA )
这个问题之前已经被问过和回答过,但是我找到的解决方案似乎并不适合我目前的情况。
我的 table 看起来像:
我想要 return B 列中的最高值,因为它在功率数据透视表的 A 列中匹配的所有实例。
使用标准 excel 函数,我会在 C 列中使用 =max(if(a2=a:a,b:b))
。
我试过了=CALCULATE(max(Table1[B]),filter(Table1,Table1[A]=Table1[A]))
但这是结果
如有任何帮助,我们将不胜感激!
Table1[A]
始终等于 Table1[A]
因此您的条件始终为真,因此不会进行任何有意义的过滤。
您要查找的是按 earlier 行上下文过滤(来自原始 table,而不是 FILTER 迭代器函数):
CALCULATE (
MAX ( Table1[B] ),
FILTER ( Table1, Table1[A] = EARLIER ( Table1[A] ) )
)
另一种方法是在进入 FILTER 之前使用变量获取行上下文。
VAR CurrRowA = Table1[A]
RETURN
CALCULATE ( MAX ( Table1[B] ), Table1[A] = CurrRowA )