パワークエリでフォルダー内にある複数ファイルの表データを対象に整形したいですが、何のコマンドでデータを取得すれば良いですか?
その場合、「フォルダーから」コマンドでデータ取得できますよ!
では、詳細を解説していきますね。
解説動画:【パワークエリ#5】フォルダーを対象としたデータインポート手順 – フォルダー内の複数データ(シート/テーブル)を自動で一括取得する
この記事の内容は下記の動画でも解説しています。
コメント欄の各プロセスの時間部分をクリックすると該当の解説へジャンプできますよ!
はじめに
この記事はパワークエリの概要を把握していることが前提です。
パワークエリの概要については、以下の記事をご参照ください。
この記事は、Excelでパワークエリ(Power Query)を使いたい方向けに、パワークエリの活用ノウハウをExcel本著者が解説。パワークエリの使用イメージ・できること・クエリの新規作成ステップ等を網羅。豊富な図解を用意しています。
「フォルダーから」の使いどころ
「フォルダーから」コマンドは、クエリの新規作成ステップのうち、STEP1の「データソースを取得/収集(Extract)」に該当する機能です。
特定のフォルダー内にファイル単位の表データが継続的に更新/蓄積される場合、「フォルダーから」コマンドを使いましょう。
「フォルダーから」コマンドを活用することで、フォルダー内の複数ファイルをクエリのデータソースに指定できます。
なお、「フォルダーから」コマンドで指定したフォルダー内から、取得する表データを自由に設定することが可能ですが、余計なファイルが入っているとデータ取得手順が煩雑になってしまいます。
よって、「フォルダーから」コマンドを使う場合、フォルダーに格納するファイルの種類を統一し、各ファイルの表データの列構成も同じものにしておくことをおすすめします。
使用イメージ
「社員マスタ」フォルダーを対象に「フォルダーから」コマンドを使用したイメージが以下です。
Power Queryエディター上でフォルダー内の複数の表データ(「社員マスタ」フォルダー内の「社員マスタ_2019」テーブルと「社員マスタ_2020」テーブル)を取得できました。
「フォルダーから」コマンドの場合、デフォルトのクエリ名はフォルダー名になる(「社員マスタ」フォルダーの場合は「社員マスタ」等)。
後は、クエリ新規作成ステップのSTEP2とSTEP3を行いましょう。
これにより、データソースにしたフォルダーの更新があっても、クエリに記録したステップを自動化できます。
クエリ作成後、指定フォルダーのフォルダーパス(フォルダー名やフォルダーの場所)を変更すると、クエリ更新時にエラーになるため注意(フォルダーパスの変更手順は後述)。
クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。
パワークエリ(Power Query)に関してのコンテンツです。
この記事は、Excelでパワークエリ(Power Query)を使いたい方向けに、パワークエリの活用ノウハウをExcel本著者が解説。パワークエリの使用イメージ・できること・クエリの新規作成ステップ等を網羅。豊富な図解を用意しています。
データ取得手順
フォルダーをクエリのデータソースにしたい場合、フォルダー内のファイル種類により若干手順が変わります。
実務で頻出なのは、ExcelブックとCSVファイルの2種類のため、それぞれ順番に解説します。
フォルダー内のファイル種類:Excelブック
フォルダー内のファイル種類がExcelブックの場合は、以下の手順となります。
- リボン「データ」タブをクリック
- 「データの取得」をクリック
- 「ファイルから」をクリック
- 「フォルダーから」をクリック
- データソースにしたいフォルダーを選択
※今回は「社員マスタ」フォルダー - 「開く」をクリック
- 対象のブックが正しく認識されているか確認
- 「結合」をクリック
- 「データの結合と変換」をクリック
- 「パラメーターN」を選択
※今回は「パラメーター1」 - 「OK」をクリック
- 取得したいテーブル/シートが表示されるフィルター条件を設定
※今回は「Kind」列の「Table」のみチェックON(「Table」に等しい) - 「Data」列を選択
- 選択列上で右クリック
- 「他の列の削除」をクリック
- 「展開」ボタンをクリック
- 取得したいフィールドを選択
※今回はすべての列のチェックON - 「元の列名をプレフィックスとして使用します」のチェックをOFF
- 「OK」をクリック
手順⑥は、手順⑤のファイル名をダブルクリックでもOK。
手順⑩⑪の「ファイルの結合」ダイアログの見方は、「Excelブックから」コマンドのナビゲーター画面とほぼ同じ(詳細は下記参考記事を参照)。
手順⑫は、指定ブック内にテーブルがある場合、同じ表でテーブル名とシート名の両方で表示されるが、基本的にはテーブル名の方を選択することがおすすめ(詳細は下記参考記事を参照)。
手順⑬は、「Data」列以外に残したい列があれば、その列も選択すること。
手順⑱でチェックONにした場合、列名の頭に「Data.」が付加されてしまう(例:「Data.社員番号」等)。
「Excelブックから」コマンドのナビゲーター画面の見方とテーブル名の選択がおすすめな理由の詳細は、以下の記事をご参照ください。
解説動画:【パワークエリ】フォルダーを対象としたデータインポート手順 - フォルダー内の複数データ(シート/テ …
フォルダー内のファイル種類:CSVファイル
フォルダー内のファイル種類がCSVファイルの場合は、以下の手順となります。
- リボン「データ」タブをクリック
- 「データの取得」をクリック
- 「ファイルから」をクリック
- 「フォルダーから」をクリック
- データソースにしたいフォルダーを選択
※今回は「社員マスタ」フォルダー - 「開く」をクリック
- 対象のファイルが正しく認識されているか確認
- 「結合」をクリック
- 「データの結合と変換」をクリック
- 取得データが正しく認識されているか確認
- 「OK」をクリック
手順⑥は、手順⑤のファイル名をダブルクリックでもOK。
手順⑩は、デフォルトで表示される「最初のファイル」のみ確認し、問題なければ次の手順へ進むこと(すべてのファイルの確認は現実的ではなく、取得後のデータで確認した方が早いため)。
手順⑩⑪の「ファイルの結合」ダイアログの見方は、「テキストまたはCSVから」コマンドのプレビュー画面とほぼ同じ(詳細は下記参考記事を参照)。
手順⑪まで完了後、先頭列(「Source.Name」列)にCSVファイル名が追加されるが、不要な場合は削除すること。
「テキストまたはCSVから」コマンドのプレビュー画面の見方の詳細は、以下の記事をご参照ください。
解説動画:【パワークエリ】テキスト・CSVファイルを対象としたデータインポート手順 - 別ファイル(.txt/ …
【参考】「フォルダーから」でクエリ作成時、ヘルパークエリが自動生成される
「フォルダーから」のコマンドでクエリを作成すると、ヘルパークエリが自動生成されます。
このヘルパークエリはフォルダー内のファイル情報を取得するためのものです。
予備知識程度に知っておいてください。
なお、フォルダーのようなアイコンは「グループ」です。
ヘルパークエリと「フォルダーから」で作成したクエリは同じグループになります。
上記の例では、「社員マスタからファイルを変換する」グループ。
また、ヘルパークエリもグループ化しており、その配下に3種のクエリがあります。
クエリ作成後、データソースに指定したフォルダーパスの変更手順
クエリ作成後、データソースに指定したフォルダーパスを変更したい場合は、「フォルダーから」で作成したクエリの「ソース」ステップを編集しましょう。
具体的には、「参照」ボタンをクリックし、再度フォルダーパスを選択し直すか、「フォルダーパス」ボックスのフォルダーパスを直接編集すればOKです。
なお、「フォルダーから」コマンドの場合、「ヘルパークエリ」グループ内の「サンプルファイル」クエリの「ソース」ステップも併せて編集しないと変更が反映されないことがあるため、セットで編集してください。
- 「ソース」ステップの歯車マークをクリック
- フォルダーパスを更新
- 「OK」をクリック
それぞれのクエリを編集後、Power Queryエディターのリボン「ホーム」タブの「閉じて読み込む」をクリックし、変更が問題なく反映されたかを確認しましょう。
クエリの編集の詳細は、以下の記事をご参照ください。
解説動画:【パワークエリ#9】クエリの基本操作5選 – 作成したクエリの各種編集や削除、コピペの方法をマスターする(編集、削除、名前の変更、読み込み先、コピー&貼り付け) この記事の内容は下記の動画でも解説し …
【注意】「フォルダーから」コマンド使用時、データソースのフォルダー内のブックは開かないこと
「フォルダーから」コマンドの注意点として、前述のデータ取得手順(フォルダー内のファイル種類がExcelブックの場合のみ)を実行する際、手順⑤に指定するフォルダー内のExcelブックは開かないよう、ご注意ください。
該当のExcelブックを開いた状態でデータ取得手順を実行した場合、Power Queryエディター上で該当ブックのレコードが「Error」となってしまいます。
「Error」のセルを選択すると、次のエラーメッセージが表示されます。
‘ファイルの変換’ クエリでエラーが発生しました。DataSource.Error: 別のプロセスで使用されているため、プロセスはファイル ‘フォルダーパス\ブック名’ にアクセスできません。
詳細:
フォルダーパス\ブック名
このエラーメッセージが表示された場合の対処法は以下の通りです。
- 自分が該当ブックを開いている場合:
Power Queryエディターを閉じる→該当ブックを閉じる→再度データ取得手順をやり直し - 第三者が該当ブックを開いている場合(共有フォルダー内等):
第三者に該当ブックを閉じてもらう→Power Queryエディターのリボン「ホーム」タブの「プレビューの更新」コマンドを実行
自分が該当ブックを開いている場合、Power Queryエディターを開いた状態で該当ブックを閉じることができない場合あり。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ取得_フォルダーから.zip
サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。
ブックを開いたら、次の手順(フォルダー内のファイル種類がExcelブック)を実施してください(今までの解説のまとめです)。
- リボン「データ」タブをクリック
- 「データの取得」をクリック
- 「ファイルから」をクリック
- 「フォルダーから」をクリック
- データソースにしたいフォルダーを選択
※今回は「社員マスタ」フォルダー - 「開く」をクリック
- 対象のブックが正しく認識されているか確認
- 「結合」をクリック
- 「データの結合と変換」をクリック
- 「パラメーターN」を選択
※今回は「パラメーター1」 - 「OK」をクリック
- 取得したいテーブル/シートが表示されるフィルター条件を設定
※今回は「Kind」列の「Table」のみチェックON(「Table」に等しい) - 「Data」列を選択
- 選択列上で右クリック
- 「他の列の削除」をクリック
- 「展開」ボタンをクリック
- 取得したいフィールドを選択
※今回はすべての列のチェックON - 「元の列名をプレフィックスとして使用します」のチェックをOFF
- 「OK」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
「フォルダーから」は、フォルダー内の複数ファイルをクエリのデータソースに指定できます。
別システムからエクスポートデータを特定のフォルダーへ蓄積し、Excelで集計/分析したいといったケースに役立ち、実務で活用する機会も多いため、ぜひ覚えておきましょう!
なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m
「フォルダーから」コマンドに慣れたら、他の種類のデータソース取得に役立つコマンドを覚えましょう。
おすすめのコマンドは、「テーブルまたは範囲から」・「テキストまたはCSVから」・「Excelブックから」です。
データを更新/蓄積する表データの場所に応じて、各コマンドを使い分けできると、自動化の範囲を広げることができますよ!