DAX POWERPIVOT - 用之前的替换空白值

时间:2017-04-18 13:03:35

标签: replace null powerbi powerpivot dax

我想用最大前值替换空白值,其中" DepositLclCcy"不是空白,即在这种情况下为SEK为5。 我该怎么写这个公式?

当前结果

PositionDate    Currency        DepositLclCcy
2017-04-11      SEK               1
2017-04-11      DKK               3
2017-04-11      EUR               7
2017-04-10      SEK               (blank)
2017-04-10      DKK               3
2017-04-10      EUR               5
2017-04-07      SEK               5 
2017-04-07      DKK               3
2017-04-07      EUR               5

期望的结果

PositionDate    Currency        DepositLclCcy
2017-04-11      SEK               1
2017-04-11      DKK               3
2017-04-11      EUR               7
2017-04-10      SEK               5 
2017-04-10      DKK               3
2017-04-10      EUR               5
2017-04-07      SEK               5 
2017-04-07      DKK               3
2017-04-07      EUR               5

1 个答案:

答案 0 :(得分:1)

您可以使用以下DAX创建计算列:

ReplacedDepositLclCcy = 
IF(
    ISBLANK('Table'[DepositLclCcy]),
    CALCULATE(
        FIRSTNONBLANK('Table'[DepositLclCcy], 0),
        FILTER(
            'Table',
            'Table'[PositionDate] < EARLIER('Table'[PositionDate]) &&
            'Table'[Currency] = EARLIER('Table'[Currency]) &&
            'Table'[PositionDate] = LASTDATE('Table'[PositionDate]) &&
            NOT(ISBLANK('Table'[DepositLclCcy]))
        )
    ),
    'Table'[DepositLclCcy]
)

因此,它基本上会过滤具有相同PositionDate和非空Currency的最大DepositLclCcy的行,并返回DepositLclCcy。它也适用于有连续空白值的情况。

根据DepositLclCcy的数据类型,您可能需要将ISBLANK('Table'[DepositLclCcy])更改为'Table'[DepositLclCcy] = ""

结果:

results