2017-04-18 13 views
0

"DepositLclCcy"が空白でない最大の以前の値、つまりSEKの場合は5で空白の値を置き換えます。 この式を書くにはどうすればいいですか?DAX POWERPIVOT - 空白の値を前の値に置き換えます。

現在の結果

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

あなたは計算列を作成するには、以下の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および非ブランク012を有するを入力し、DepositLclCcyを返します。また、ブランク値が連続する場合にも機能します。

DepositLclCcyのデータタイプによっては、ISBLANK('Table'[DepositLclCcy])'Table'[DepositLclCcy] = ""に変更する必要があります。

結果:

results

+0

この式は、しかし、最初の非ブランク値を拾っては、一年背中言います。私は最新の非ブランク値が欲しい。 – Haggan

+0

@Haggan詳細についてもっと分かち合うことができますか?上記の例からわかるように、最新の非空白値を返しました。 –

関連する問題