Missed the Q4 Fall Release Product Update? Watch the on-demand webinar for more info on the latest in Designer 24.2, Auto Insights Magic Reports, and more!
Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。

Nullに下のデータをコピーする方法

Takiyama
アトム
 

 

下記のような列を含むデータがあった場合に、Null部分に下のデータをコピーする方法をご存じでしたらご教示いただけませんでしょうか?

 

Null 

1000

Null

2000

Null

3000

5件の返信5
gawa
16 - Nebula
16 - Nebula

@Takiyama 

複数行フォーミュラで以下のような式を設定すればOKです。原則、行方向(縦方向)を参照する動作は、複数行フォーミュラを使うことになります。

IF IsNull([Field1]) THEN [Row+1:Field1]
//Nullの場合、下の行の値を参照する
ELSE [Field1]
//それ以外は、値そのまま
ENDIF

 

以下補足です:

上記の処理を複数の列に適用する場合、列数の数だけ複数行フォーミュラを並べる(下図上段)こともできますが、この場合、入力データの列数・列名が変わると、エラーとなります。

下図下段のように縦横変換とグループ処理を組み合わせることで、動的な対応ができるWFとなります。

WFを添付しますので、ご参考ください。

image.png

AkimasaKajitani
17 - Castor
17 - Castor

@Takiyama さん

 

行をまたいだ処理をするときは、複数行フォーミュラが便利です。

次の行は、[Row+1:FIELDNAME]で取ることができるため、

IF IsNull([FIELDNAME]) THEN [Row+1:FIELDNAME] ELSE [FIELDNAME] ENDIF

のような関数で処理が可能です。

 

 

AkimasaKajitani
17 - Castor
17 - Castor

よく考えたら、途中で2行抜けた時などに対応できないので、レコードIDツールで現在の並びを保存しておいて、降順にソートして上のデータを引っ張る、としたほうが汎用性はあるかと思います。

 

image.png

Takiyama
アトム

素晴らしい解決策をご教示いただきありがとうございました!大変勉強になりました。。。使わせていただきます!

Takiyama
アトム

ご教示いただきありがとうございました。大変勉強になりました。活用させていただきます!!

トップのソリューション投稿者