Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
はじめまして。
以下のようなテーブルがあった時、最終日からデータを参照し、データの補完をしたいと思っています。
ID | DATE | CODE |
1 | 2017/10/1 | A |
1 | 2017/10/2 | A |
1 | 2017/10/3 | B |
1 | 2017/10/4 | |
2 | 2017/10/1 | C |
2 | 2017/10/2 | C |
2 | 2017/10/3 | D |
2 | 2017/10/4 |
ID「1」は10/4のCODEがブランクになってしまっていますが、
ブランクの場合は、CODEにID「1」のCODEがブランクではない最終日のCODEである「B」を補完したいです。
ID「2」の場合であれば、同様に10/4のCODEには「D」を持ってきたいです。
ロードスクリプト上で、解決したいのですがどのようにすればよろしいでしょうか。
Qliksenseでの作成もしくはロードスクリプトを教えて頂けますでしょうか。
質問頂いたテーブルのようにID、DATE、CODEの並び順になっている前提で回答します。
下記のように記述します。
テキストファイルやxlsxファイルのフォーマット定義の()の中に
filters()を追加し、その中にReplace()の中身を記述します。
3が列の順番、topが上のセル、StrCnd(null)がnullの場合という条件なので
3列目の値がnullの場合に上のセルの値に置換するという意味になります。
LOAD [ID],
[DATE],
[CODE]
FROM [lib://Cmmunity/Data20171017セル変換.txt]
(txt, codepage is 28591, embedded labels, delimiter is '\t', msq,
filters(
Replace(3, top, StrCnd(null))
)
);
INLINE LOADの場合の方がわかりやすいと思いますので参考に記載します。
LOAD * INLINE [
ID, DATE, CODE
1, 2017/10/1, A
1, 2017/10/2, A
1, 2017/10/3, B
1, 2017/10/4
2, 2017/10/1, C
2, 2017/10/2, C
2, 2017/10/3, D
2, 2017/10/4
](embedded labels,filters(
Replace(3, top, StrCnd(null))
));