PowerQuery【05】フォルダから読み込み(Excel・CSV等の複数ファイルを同時にインポートする)

2021/3/6 取り込み後、不要な行を消す方法とエラーについて追記しました。
■全体像説明
PowerQuery【01】PowerQuery(パワークエリー)で出来ること
PowerQuery【02】PowerQuery(パワークエリー)の動かし方

■PowerQueryの実際のインポート方法
PowerQuery【03】CSVファイルのインポート
PowerQuery【04】Excelファイルのインポート

PowerQueryでの、複数のファイルの同時インポート方法

PowerQueryではフォルダを指定することで、同時に複数ファイルをインポートできます。
Excelだけでなく、CSVファイル等も複数一度にインポートできます。
複数ファイルで無く、ファイル一つの読み込みも可能です。(フォルダ内にファイルが一つにしておく)

条件や、留意事項は以下の通りです。

読み込みの条件

・ファイルは同じ列名で構成されている。
・Excelファイルの場合、以下の条件を満たす必要があり、そうでないとエラーになる。
①シート名が同じ
②ファイルの種類が同じ(xlsb・xlsx・xls等が混在しているとダメ)
③読み取りパスワードがついていない。
※なお、エラー後、シート名等を修正して、再度更新すれば、読み込みできます。

留意事項

・同じフォルダ内(含む子フォルダ)のファイルを全て読み込む
・つもり、読み込みを止めるなら、対象ファイルを別のフォルダに移動する必要がある。

プロセスの自動化(繰り返し処理)する場合の例
・例えば、ダウンロードしたCSVファイルをいつも同じフォルダに保存する。
データを洗い替えるなら、前のCSVファイルを、別のフォルダに移動する。

読み込み方法

データタブ/データの取得/ファイルから/フォルダから/

読み込みフォルダを指定する

結合ファイルの一覧が表示される
結合/データの結合と変換(2016では「結合と読み込み先」)を選択

 

Excelファイルなら、シート名を指定する。サンプルが表示されるので「OK」

 

クエリ画面が表示されるので、適宜数値型→テキスト型等に変換して読み込む

 

クエリ名を変更して「閉じて読み込む」。

出来上がり ファイル名が左列に表示される(シート名を変更しておくこと)

ファイルを一度に読み込む時だけでなく、プロセスの自動化等でも役立つと思います。

読み込み後の処理(不要な行を消す)

ヘッダー等、余計な行が表示されているので、以下で綺麗にします。
①行頭削除
②1行目をヘッダーとして使用
③不要な行を削除する

エラーについて

以下のようなメッセージが出るときの原因と対応です。

エラー1:「閉じて読み込み」をしようとすると、[DataFormat.Error ]のエラーが出る

メッセージ:![DataFormat.Error ]ファイルのデータが壊れています
クエリ:!ダウンロードは完了していません

原因:パスワードがついてままのファイルがある等の原因で開けないファイルがある
対応:ファイルを開いて開けないファイルがあるか調べる。大量のファイルがある場合は、いくつかのフォルダに分割して試してみる。
なお、フォルダを親子の関係にしている場合、親フォルダを選ぶと、子フォルダまで処理してしまうので、注意。

 

エラー2:読み込みの最中にエラーが出る。

DataSource.Error 別のプロセスで使用されているため、プロセスファイル「○○」にアクセスできません。
原因と対応:読み込みファイルが開いているので、いったん閉じてから処理する。