在 Power BI 中创建计算列时如何使用过滤器?

How to use filter when creating calculated column in Power BI?

过滤器不能用于计算列,那么我如何简单地在 DAX 中创建一个列,该列将根据最大值 claimID 和最大值 DateCreated 选择一个值?

结果应该是这样的:

计算列具有当前行的 "row context",并且没有过滤器上下文,因为它们是在应用任何过滤器之前在模型加载期间计算的。但是您可以在计算中创建过滤器。 EG

TotalIncurredMaxDate = 
    var claimId = Table1[ClaimID]
    var controlNo = Table1[ControlNo]

    var maxDate = calculate(
        max(Table1[DateCreated]), 
        filter (
          all (Table1), 
          Table1[ClaimID]=claimId
          && Table1[ControlNo] = controlNo
          && Table1[TotalIncurred] > 0
        )
    )

    var retval = if(Table1[DateCreated] = maxDate, Table1[TotalIncurred], 0)

    return retval 

可以在计算列中使用过滤器。只是不要指望他们对切片器有反应。在这种情况下,不使用 FILTER 函数而使用简单的 CALCULATE 参数可能在计算上更有效:

TotalIncurredMaxDate =
VAR MaxDate =
    CALCULATE (
        MAX ( Table1[DateCreated] ),
        ALLEXCEPT ( Table1, Table1[ControlNo], Table1[ClaimID] ),
        Table1[TotalIncurred] > 0
    )
RETURN
    IF ( Table1[DateCreated] = MaxDate, Table1[TotalIncurred], 0 )