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

DAX POWERPIVOT - Replace blank value with previous

我想用之前的最大值替换空白值,其中 "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

您可以使用以下 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]
)

所以它基本上过滤了具有相同 Currency 和非空白 DepositLclCcy 的最大值 PositionDate 的行,以及 return 和 DepositLclCcy .它也适用于有连续空白值的情况。

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

结果: