【Excel】Power Queryでフォルダ内のCSVを一括結合する!Excelのファイル統合を完全自動化

【Excel】Power Queryでフォルダ内のCSVを一括結合する!Excelのファイル統合を完全自動化
🛡️ 超解決

複数のCSVファイルをExcelに一つずつ取り込んで結合するのは、手間がかかる作業です。

特にファイル数が多い場合や、定期的に更新されるファイルの場合、手作業での統合は非効率的と言えます。

この記事では、ExcelのPower Query機能を使って、指定したフォルダ内のCSVファイルを自動的に結合する方法を解説します。

この方法を習得すれば、ファイル統合の作業時間を大幅に削減できます。

【要点】Power QueryによるCSVファイル一括結合の自動化

  • フォルダからCSVファイルを取得: 指定したフォルダ内の全CSVファイルをPower Queryが認識します。
  • CSVファイルの結合: 取得した複数のCSVファイルの内容を自動的に一つにまとめます。
  • データの更新: 元のCSVファイルが更新された場合、Excel上で簡単に最新データに更新できます。

ADVERTISEMENT

Power Queryによるフォルダ内CSV結合の仕組み

Power Queryは、Excelに標準搭載されているデータ加工・整形ツールです。様々なデータソースに接続し、データの抽出、変換、結合といった一連の処理を自動化できます。

フォルダ内の複数のCSVファイルを結合する際は、まず「フォルダ」をデータソースとして指定します。これにより、Power Queryは指定フォルダ内のファイル一覧を取得します。次に、取得したファイル一覧からCSVファイルのみを抽出し、各CSVファイルの内容を読み込みます。最後に、これらの内容をすべて結合して、一つのテーブルとしてExcelに表示する、という流れで処理が進みます。

この一連の処理を一度設定しておけば、次回からは「更新」ボタンをクリックするだけで、最新のファイル状況に応じた結合結果を得られます。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

フォルダ内のCSVファイルを結合する手順

このセクションでは、具体的な操作手順を解説します。Excel for Microsoft 365を基準としていますが、Excel 2019以降のバージョンでも同様の操作が可能です。

  1. 新しいブックを開くか、既存のブックを準備する
    Power Queryで処理結果を表示するためのExcelブックを開きます。新規作成でも既存のファイルでも構いません。
  2. 「データ」タブから「データの取得」を選択する
    Excelのリボンメニューにある「データ」タブをクリックします。「データの取得」ボタン(または「新しいクエリ」)を選択し、ドロップダウンメニューから「ファイルから」→「フォルダーから」を選びます。
  3. フォルダの指定
    「フォルダー」ダイアログが表示されます。ここで「参照」ボタンをクリックし、結合したいCSVファイルが保存されているフォルダを選択します。フォルダを選択したら「OK」をクリックします。
  4. ファイル一覧の確認と「データの結合」
    指定したフォルダ内のファイル一覧が表示されます。ここでは、ファイル名、拡張子、作成日時などの情報が確認できます。画面下部にある「結合」ボタンの右側にある▼をクリックし、「データの結合」を選択してください。
  5. 最初のファイルの内容確認
    「ファイルのプレビュー」ダイアログが表示されます。ここで、結合対象とするCSVファイルの中から、構造(列名やデータ形式)が代表となるファイル(通常は最初のファイル)を選択します。
  6. 「OK」をクリックしてPower Queryエディターを開く
    プレビューで問題がなければ「OK」をクリックします。これにより、Power Queryエディターが起動し、選択したファイルの内容が読み込まれた状態になります。
  7. 「結合」処理の実行
    Power Queryエディターの「ホーム」タブにある「結合」グループから、「結合」ボタンをクリックします。ファイル一覧の画面で「データの結合」を選んだ場合、このステップは自動的に行われています。もし「変換」を選んだ場合は、ここで「結合」を実行してください。
  8. 結合されたデータの確認
    Power Queryエディターに、指定フォルダ内のすべてのCSVファイルの内容が結合された結果が表示されます。必要に応じて、列名の変更、データ型の調整、不要な列の削除などのデータ整形を行います。
  9. 「閉じて読み込む」でExcelに表示
    データ整形が完了したら、「ホーム」タブの「閉じて読み込む」ボタンをクリックします。「閉じて読み込む」の▼をクリックすると、「閉じて次に読み込む」というオプションもあります。ここでは「閉じて読み込む」を選択し、Excelシートにデータを表示します。
  10. 読み込み先の選択
    「データのインポート」ダイアログが表示されます。通常は「テーブル」を選択し、「既存のワークシート」または「新規ワークシート」を指定して「OK」をクリックします。

定期的なデータ更新方法

一度設定したPower Queryは、非常に簡単に最新のデータに更新できます。

元のCSVファイルが格納されているフォルダに新しいCSVファイルを追加したり、既存のCSVファイルの内容を更新したりした場合、Excelブックを開き直す必要はありません。

Excelの「データ」タブにある「すべて更新」ボタンをクリックするだけで、Power Queryが再度フォルダ内のファイルを読み込み、結合処理を実行してくれます。

もし、結合結果のテーブルがアクティブでない場合は、テーブル内の任意のセルを選択してから「データ」タブの「更新」ボタンをクリックしても、そのテーブルのみを更新できます。

ADVERTISEMENT

Power QueryでCSV結合する際の注意点とトラブルシューティング

Power Queryは強力なツールですが、いくつか注意しておきたい点や、発生しうるトラブルがあります。

CSVファイルの文字コードが統一されていない場合

結合しようとしているCSVファイル間で、文字コード(例:UTF-8、Shift_JIS)が異なると、文字化けが発生する可能性があります。

対処法:

  1. Power Queryエディターで文字コードを指定する
    Power QueryエディターでCSVファイルを開いた際、自動的に文字コードが判別されますが、誤っている場合があります。その場合は、「ホーム」タブの「ソースの選択」クエリ(通常、一番上のクエリ)で、CSVファイルを開く際の文字コードを手動で指定します。具体的には、ソースを右クリックし、「ソースの変更」を選択して、`Encoding` パラメータの値を適切なもの(例:`65001` for UTF-8, `932` for Shift_JIS)に変更します。
  2. 事前に文字コードを統一する
    可能であれば、CSVファイルを保存する際に、すべてのファイルを同じ文字コード(UTF-8が推奨)で保存するように運用ルールを決めると、トラブルを防ぎやすくなります。

CSVファイルのヘッダー行(列名)が異なる場合

結合するCSVファイル間で、ヘッダー行の列名が異なったり、列の順番がバラバラだったりすると、意図しない結合結果になることがあります。

対処法:

  1. 結合前に列名を統一する
    Power Queryエディターで、各CSVファイルの内容を表示する段階(通常、「Transform Sample File」クエリ内)で、列名を統一するステップを追加します。具体的には、結合したい列名を右クリックし、「名前の変更」を選択して、すべてのファイルで共通の列名に変更します。
  2. 不要な列を削除する
    結合したくない列や、重複している列は、結合処理の前に削除しておくと、結果がスッキリします。
  3. 「Sample File」クエリの編集
    Power Queryの「フォルダから」のクエリでは、通常「Sample File」というクエリが自動生成され、このクエリの処理が他の全ファイルに適用されます。この「Sample File」クエリで列名の整形や不要な列の削除を行えば、すべてのファイルに一括で適用できます。

フォルダ内にCSV以外のファイルが存在する場合

指定したフォルダにCSVファイル以外のファイル(例:xlsx、txt、pdf)が含まれていると、Power Queryがエラーを起こしたり、意図しないファイルが結合されたりする可能性があります。

対処法:

  1. ファイルの種類でフィルタリングする
    Power Queryエディターでファイル一覧が表示された画面(「フォルダー」クエリ)で、「Extension」(拡張子)の列を見つけます。その列の▼をクリックし、「テキスト フィルター」→「等しくない」などを選択して、`.csv` 以外の拡張子を持つファイルをフィルタリングして除外します。または、「.csv」でフィルターをかけ、CSVファイルのみを残します。

大量のファイルを結合する際のパフォーマンス問題

数千、数万といった非常に大量のCSVファイルを結合する場合、Excelの動作が重くなったり、処理に時間がかかりすぎたりすることがあります。

対処法:

  1. 必要な列のみを読み込む
    結合処理を行う前に、Power Queryエディターで不要な列を削除しておくことで、読み込むデータ量を減らし、パフォーマンスを向上させることができます。
  2. 「データの結合」ではなく「クエリの追加」を使う
    ファイル数が極端に多い場合や、各CSVファイルの構造が微妙に異なる場合は、「データの結合」ではなく、個別のCSVファイルを読み込むクエリを複数作成し、それらを「クエリの追加」機能で一つにまとめる方法も検討できます。この方が、各ファイルの読み込み・変換処理を個別に最適化しやすい場合があります。
  3. 「読み込み」ではなく「接続の作成」を選択する
    最終的なExcelシートにすべてのデータを読み込むのではなく、Power Queryで結合した結果を「接続の作成」のみに留めることも可能です。これにより、Excelファイル自体のサイズを抑えつつ、必要に応じてその接続からデータを参照できます。

Power QueryとVBAの使い分け

フォルダ内のCSVファイルを結合するタスクは、VBA(Visual Basic for Applications)でも実現可能です。しかし、Power QueryとVBAにはそれぞれ得意な場面があります。

項目 Power Query VBA
主な用途 データ抽出・変換・結合、ETL処理 定型業務の自動化、Excel操作の自動化
学習コスト 比較的低い(GUI操作中心) 中程度(プログラミング知識が必要)
処理の柔軟性 高い(多様なデータソースに対応) 非常に高い(Excelのあらゆる操作が可能)
更新の容易さ 容易(「更新」ボタンで再実行) 中程度(マクロの実行が必要)
エラー処理 GUI上でステップごとに確認・修正しやすい コードのデバッグが必要
大量データ処理 得意(メモリ管理が効率的) 注意が必要(メモリリークなどに注意)

今回の「フォルダ内のCSV一括結合」のように、データの取り込みから整形・結合までを自動化したい場合は、Power Queryが非常に適しています。

一方、結合したデータを基に、特定の条件でさらに加工したり、レポートを作成したりといった、より複雑なExcel操作を自動化したい場合は、VBAの活用が有効になります。

まとめ

この記事では、ExcelのPower Query機能を用いて、フォルダ内に保存された複数のCSVファイルを自動的に結合する方法を解説しました。

「データ」タブから「フォルダーから」を選択し、結合したいCSVファイルが格納されたフォルダを指定するだけで、手間のかかるファイル統合作業を効率化できます。

一度設定すれば、あとは「更新」ボタンをクリックするだけで最新のデータに更新できるため、作業時間の短縮に大きく貢献します。

文字コードやヘッダー行の不一致といったトラブルシューティングと、VBAとの使い分けについても触れました。

このPower Queryによる自動化を活用し、日々のデータ処理業務をより効率的に進めてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】