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 )