使用DAX Measure

时间:2019-02-26 19:56:22

标签: powerbi dax

目标:我想将计算所得的列公式转换为度量,因为EARLIER函数无法用于度量。

查询以进行修改:

VAR sumed_exp = 
    DIVIDE(
        SUM(Retention[Week n-1]),
        SUM(Retention[Week n-2])
        )
VAR PrevDay =
    CALCULATE (
        LASTDATE ( Retention[Report Date] ),
        Retention[Report Date] < EARLIER ( Retention[Report Date] )
RETURN
CALCULATE(
    sumed_exp,
    PrevDay 
    )

说明: 基本上我想要最后一个表示的值是:

  • 第{n-1周的列sum中所有值的divided
  • sum列在第n-2周中的所有值

1 个答案:

答案 0 :(得分:2)

这是标准的DAX Pattern for a cumulative total

您在MAX中使用EARLIER而不是FILTER

VAR PrevDay =
    CALCULATE (
        LASTDATE ( Retention[Report Date] ),
        FILTER (
            ALL ( Retention[Report Date] ),
            Retention[Report Date] < MAX ( Retention[Report Date] )
        )
    )

RETURN
CALCULATE(
    DIVIDE(
        SUM(Retention[Week n-1]),
        SUM(Retention[Week n-2])
    ),
    Retention[Report Date] = PrevDay 
)

请注意,这是当前过滤器上下文中的最大值,而不是整个列中的最大值。