Excel PowerQuery フォルダ内から最新のファイル1つだけ選ぶ

Microsoft Excel

スポンサーリンク

はじめに

Excel PowerQuery データソースの変更

前回の記事で、ExcelのPowerQueryでいったん設定したデータソースを、後から変更する手順について書いた。
そして、その変更が面倒だとも書いた。

実際の運用においては、データソースのパス、すなわち
フォルダパス + ファイル名
を常に一定に保つというのは難しいことだ。自分個人ではできても、他の人にまでそれを求めるのは嫌がられるだろう。

だったらせめて、PowerQueryではフォルダ内のファイルをまとめて取込むことができるから、フォルダの場所だけを固定にして、その中のファイルをファイル名関係なしにまとめて取込むという運用が良いだろう。

Excel PowerQuery フォルダ内の複数ファイルを開く

ただ、フォルダ中に複数ファイルある場合にも、それらをまとめて取込み・結合するのでなく、ファイル1つだけを取り込めば良いということは当然ある。

そういう場合、「フォルダの中には絶対にファイルを1つしか保存するな」という運用にするのも悪くないが、複数人での運用でそれを守り切るのは難しいかもと思う。

だから、PowerQueryで単一ファイルのみを扱う際に、データソース変更の手間をなるべく省くには「フォルダのパスを固定にして、その中にある最新のファイル1つだけを開くようにする」というのが、私の考える運用だ。

前置きが長くなったが、今回はその運用方法について書いていく。

フォルダ・ファイルの用意

まず用途に応じたフォルダを1つ作成し、その中に下図のように、PowerQueryを組み込んだExcelファイルと「元データ」フォルダを保存する。

そして「元データ」フォルダの中に、データソースとなるファイルを保存していく。
そのファイルの中から、最新のファイル1つだけを開くわけだ。

フォルダを指定して開く

ではPowerQueryを組み込むExcelファイルの操作手順。
基本的には、以前に扱った、フォルダ中のファイルをまとめて開く方法による。

リボン「データ」タブ
→「データの取得」
→「ファイルから」
→「フォルダーから

で、フォルダ内のファイルをまとめて開く。

ダイアログに「元データ」フォルダーのパスを入力して「OK」

「データの変換」を押す。

更新日時で並べ替え・絞り込み

フォルダ中にある複数Excelファイル等のデータが表示される。

この項目の中で「Name」がファイル名で、他には

  • Date accessed:最終アクセス日時
  • Date modified:更新日時
  • Date created:作成日時

などがある。

この中で今回は
Date modified:更新日時
に注目し、これを降順に並べ替えする。

インデックスの追加

そしてここで

リボン「ホーム」タブ
→「インデックス列

とする。

Excel PowerQuery 行番号(インデックス)を付ける

最新のファイルのみにフィルタリング

これで、予め更新日時で降順に並べ替えしておいたデータに対して、0から始まるインデックス番号が振られる。

このインデックスが0のデータのみを選べば、更新日時が最新のファイル1つだけが選ばれるというわけだ。

「インデックス」列の右端のボタンを押し、値=0のみにフィルタリングしよう。

データを展開

データが1行のみになるので「Content」列の右端の四角ボタンを押す。

画面の左端で、
単一シートのみ扱うなら、そのシート名をクリック
全シートを結合するなら、「パラメーター」とか書いてあるフォルダのマークをクリック

そして「OK」を押す。

後は、通常のPowerQueryと同様に、データを加工等していけば良い。

スポンサーリンク