我想用最大前值替换空白值,其中" 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
答案 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] = ""
。
结果: