Power BI -フォルダ内のファイルを一括取得(最新のファイルだけ取得)する方法
同一形式のファイルが毎月、毎週、毎日生成されるような場合、
それらのファイルを「一括で取得」して、
更新のたびに「自動でマージして処理」したいことがあると思います。
このような処理をする場合は、(簡単に行うためには)以下の条件があります。
1. 各ファイルが同一フォルダにあること
2. 各ファイルのデータフォーマットが同一(※)であること
3. ファイル形式が類似(※)していること
(※) データフォーマットが同じであれば(例えばエクセルだと、同一のセル番地に、同種類のデータが入っていること)、細かいデータ形式(xlsx, csv, xlsなど)の違いは問わないという意味です
フォルダから一括でファイルを取得してマージする方法
次のステップでできます。
Step 1:「データの取得」から「フォルダー」を選択
Step 2:マージしたい複数ファイルが入ったフォルダアドレスを指定して、「データの変換」を選択
「データの変換」を押すと、次のようにQueryエディターが起動し、取り込まれたデータが表示されます。
(データは、”1ファイル1行”として取り込まれます)
ちなみに、マージしたくないファイルがある場合は、この段階でソート(いらないファイルを除外)をしておけばよいです。
Step 3:「Content」の↓↓ボタンを押してファイルを自動でマージ(結合)
Content列の↓↓ボタンを押すと、「クエリを評価しています・・」などと表示されてクエリが勝手にマージするための下準備をしてくれます。
この表示が終わると、「Fileの結合」という画面が表示されます。
Fileの結合が表示されると、「サンプルファイル」が表示されて、
このサンプルファイルで選んだシートやテーブルと同一の、サンプルファイル以外のファイルのシートやテーブルがマージされます。
上記の例では、すべてのファイルのSheet1に同じフォーマットの売上データが入っているので、Sheet1を選択して「OK」を押します。
こちらが結合された後のクエリエディタの状態になります。
ヘルパークエリが自動で追加されていると思います。
これは「詳細エディター」を使って自分で各ファイルをマージすることもできる(らしい)のですが、それを自動で行うためにPower BIが作ってくれたクエリになります。
(気になる方は、「Power BI ヘルパークエリ」などと調べてみるとよいかと思います)
フォルダの中に格納されている最新ファイルだけを取得する方法
上述のように、フォルダ内の複数のファイルをマージせずに、
「最新のファイルだけを抽出」したい場合は、
上記のStep2の段階で、次のようにソートをかけます(超簡単です)
「最も遅い」が”最も直近”を意味します。
(「遅い」は英語の直訳なので一瞬迷うかもしれませんね)
ソートに使える列は複数ありますが、次の3つのどれかを使い分けるのが一般的だと思います。
「Date accessed」列:当該ファイルへ最後にアクセスした日時
「Date modified」列:最後に編集した日時
「Date created」列:最初にファイルが作成された日時
実務上、作成されたファイルがその後、少し編集されて最終化されるのであれば、
「Date modified」で直近編集されたファイルを抽出するのが適当かと思います。
以上になります。