CSVファイルをクエリで読み込みたいんだけど、ファイル名が毎回違ってて困ってるんだよね、という人のためのページ。
どうして困るのか。それは、CSVファイルの読み込みを「テキストまたは CSVから」から行うからだ。
「テキストまたは CSVから」でファイルを読み込もうとすると、ファイル名が固定のクエリが作成される。これではファイル名が可変だと対応してくれない。
ならばとデータ取得を「フォルダから」で指定しようとしても、最後にファイル選択することになるので結局はファイル名が固定になってしまう。そこから手順を踏めば可変参照にできるけど、それを毎回やるのは面倒なはず。
そこで空のクエリに貼り付けるだけで、読み込み一歩手間までできるコードを作ってみた。
[データ]→データの取得と変換の[データの取得]
[その他のデータ ソースから]→[空のクエリ]
Power Queryエディタが開いたら
[ホーム]→[詳細エディタ]
これでエディタが開くので、そこに下記を貼り付け(フォルダパスは書き換え必要)
let
フォルダパス = "C:\……\……\", //←ここにフォルダのパスを入力
ソース = Folder.Files(フォルダパス),
行の抽出 = Table.SelectRows(ソース, each [Extension]=".csv"),
csv = 行の抽出{0}[Content],
in
csv
すると下のような画面になる。このファイルを展開すれば、エンコードを勝手に判断して CSVファイルが開いてくれる。
表示されたファイルを右クリックして「CSV」を選択
これによってファイルが展開されて、適用したステップに「インポートされた CSV」「昇格されたヘッダー数」「変更された型」が勝手に追加される。
後はここに必要な加工を入れて読み込めばおしまい。