在 Power Bi 中我有一个类似的表格,我正在尝试找出一种方法来计算“G”列中每个团队和每一天的最大值(仅适用于性别 F)。
在 Excel 中,我会使用类似这样的方法(尽管我仍然需要想办法管理重复的值 - 行以黄色突出显示)
=IF(AND([@Gender]="F";MAXIFS([Value];[Day];[@Day];[Team];[@Team];[Gender];"F") = [@Value]);MAXIFS([Value];[Day];[@Day];[Team];[@Team];[Gender];"F");"")
无论如何,我编写 Excel 公式只是为了更好地解释所需的结果,我确实知道 DAX 的逻辑不同,但我找不到在 Power Bi 中实现它的方法。我设法获得了最大值,但它写在列的每一行上,这不是我想要的。
我已经使用过这个公式,并且我知道我应该应用额外的过滤器,但我对 DAX 的了解几乎为零......
Max Value = CALCULATE(MAX('MyTable'[Value]), ALLEXCEPT( 'MyTable', 'MyTable'[Team&Day]))
'MyTable'[Team&Day] 是我在 Power Bi 中通过合并 Team 和 Day 列创建的列
任何帮助都值得感激,谢谢!
答案1
对于计算列,关键技巧是捕获变量中的当前行值,然后使用 CALCULATE 函数的过滤参数来应用它们。大致如下:
Max Value =
VAR v_Team = [Team]
VAR v_Day = [Day]
RETURN
CALCULATE (
MAX ( 'MyTable'[Value] ),
'MyTable'[Team] = v_Team,
'MyTable'[Day] = v_Day,
'MyTable'[Gender] = "F"
)