これは何か。
複数のファイルをまとめて取り込む時に毎回めっちゃ苦労するので、やり方をメモしておいたです。
QlikSenseで複数のファイルを一気に取り込みたいとき
ふつうはワイルドカード(*)を使います。
ワイルドカード使うときの書き方
LOAD
ID AS key_ID,
Date(Date#(Text(日付), 'YYYYMMDD')) AS hiduke,
Today() AS kyou
FROM ['lib://ここにファイルパスを書いてください/*']
(ooxml, embedded labels, table is sheet1);
ですが、条件を入れたいときとかに、全然うまくいかないことがあります。
そういう時は、Loop処理で取り込みましょう。
ちなみに、JOINとか別に要らなかったり、ファイル名自体が固定の場合は、下記をご参照ください。
【Qliksense】フォルダにある複数のエクセルファイルをfor文で簡単に読み込む
今回は、ファイル名はばらばらだけど、カラム名は(少なくとも抽出分は)共通の場合の処理になります。
書き方
// フォルダのパスを設定
SET vFolderPath = 'lib://ここにファイルパスを書いてください/';
// ファイルのリストを取得
FileList:
LOAD
FileName() as FileName
FROM [$(vFolderPath)*];
// ループ処理でファイルを取り込む
FOR i = 0 TO NoOfRows('FileList') - 1
LET vFileName = Peek('FileName', $(i), 'FileList');
//ファイルを読み込む処理。ここは、普段のLOADで書いてるのと同じかきかたでOK
Data: //ここで名前を付けておくと、どんどんConcatenateされていってる。はず。
LOAD
//↓ここには好きなカラムをいれてくださいね
ID AS key_ID,
Date(Date#(Text(日付), 'YYYYMMDD')) AS hiduke,
Today() AS kyou
FROM [$(vFolderPath)$(vFileName)]
// ここで必要に応じてデータの処理を行う
// Dataテーブルに取り込まれたデータに対して行う
NEXT;
正直、BIツールはビジュアライズに能力を振ってるので、ゴリゴリとコードを書くものではないと思います。
こういう書き方はできますが、使わずに済むならそれに越したことはありません。
Load * FROMで済む処理を、わざわざこんな風にゴリゴリ書いてしまうと、再現性もないし、メンテナンスもたいへんです
ぜひ、データとして読み込む前に、前処理をしていただければと思います。
ただ、前処理をする、とかそういうことがわからない人たちに囲まれてしまった場合の誰かのお役に立っていれば、、、うれしいです。