Excel Power Queryで毎月のCSVを結合する方法|翌月は追加して更新

複数のCSVファイルを1つの表にまとめるPower Queryのイメージ Excel

Excel の Power Query を使って、毎月の売上 CSV を、前月の Excel の末尾にコピーする手順を記載します。

一度設定しておくことで、翌月からは同じ形式のCSVを取り込んで、Excelで更新する運用にできます。

この記事では、架空の売上データを使い、1月・2月のCSVを1つの表にまとめ、あとから3月分を追加する手順を説明します。VBAやM言語のコード入力は使いません。

この記事でできること

  • 同じ構成の CSV を、Excelの1つの表にまとめる
  • 翌月の CSV を取り込み、Excel を更新する
  • 件数と売上合計を照合し、取り込み漏れ・二重取り込みを発見する

操作説明はWindows版のデスクトップExcelで「データ」→「データの取得」→「ファイルから」→「フォルダーから」を利用できる環境を対象にしています。Mac版・Web版は画面や対応する取り込み方法が異なるため、この手順の対象外です。ボタンの表記はExcelのバージョンによって異なる場合があります。

取り込みの基本操作は、Microsoftのフォルダーから複数ファイルを取り込む解説を参照しています。

練習用CSVを準備する

まず、PCのドキュメントフォルダなどに「PowerQuery練習」フォルダーを作り、その中を次の構成にします。

PowerQuery練習
├─ 取込用
│  ├─ sales_2026-01.csv
│  └─ sales_2026-02.csv
├─ 翌月追加用
│  └─ sales_2026-03.csv
└─ 月次売上.xlsx(これから作成するExcelブック)

フォルダーからの取り込みには、サブフォルダー内のファイルも含まれます。「取込用」の中に翌月分やバックアップを置くと、意図せず集計対象になるため別フォルダにしておきます。

以下の内容をそれぞれメモ帳に貼り付け、名前を付けて保存します。「ファイルの種類」を「すべてのファイル」にして、文字コードはUTF-8を選んでください。ファイル拡張子が .csv になるように保存してください。すべて説明用の架空データで、金額の単位は円です。

1月分:sales_2026-01.csv

日付,部門,商品,売上金額
2026/01/05,東日本,ノート,12000
2026/01/10,西日本,ファイル,18000
2026/01/15,東日本,ノート,9000
2026/01/20,西日本,ペン,15000

2月分:sales_2026-02.csv

日付,部門,商品,売上金額
2026/02/05,東日本,ノート,16000
2026/02/10,西日本,ファイル,14000
2026/02/15,東日本,ノート,20000
2026/02/20,西日本,ペン,10000

3月分:sales_2026-03.csv

日付,部門,商品,売上金額
2026/03/05,東日本,ノート,13000
2026/03/10,西日本,ファイル,17000
2026/03/15,東日本,ノート,22000
2026/03/20,西日本,ペン,8000

「取込用」フォルダに1月・2月の2ファイルだけを入れます。「翌月追加用」に3月のファイルを入れます。

手順1:ExcelからCSVの保存フォルダーを指定する

  1. 空のExcelブックを開きます。
  2. 「データ」→「データの取得」→「ファイルから」→「フォルダーから」を選びます。
  3. 先ほど作った「取込用」フォルダーを指定します。親の「PowerQuery練習」を選ばないようにしてください。
  4. ファイル一覧に1月・2月のCSVがあることを確認し、「データの変換」を選びます。

ここでは、結合する前に対象のファイルを確認するため、いったんPower Queryエディターが開きます。

手順2:取り込むファイルを絞り込む

一覧にはファイル名や拡張子、保存先などが表示されます。各列のフィルターボタンで、次の条件を設定します。

列設定する条件目的
Extension(拡張子).csvに等しいCSV以外を除く
Name(名前)テキストフィルターでsales_から始まる売上ファイルを対象にする
Folder Path(フォルダーパス)「取込用」直下のパスに等しいサブフォルダーを対象から外す

フォルダーパスは一覧に表示されている値を使います。末尾の区切り文字も含めて一致させてください。ファイル名は「1月と2月の2つを選ぶ」固定の指定にせず、「sales_から始まる」としておくと翌月分も対象にできます。

ただし、sales_2026-01_コピー.csvもこの条件に一致します。条件に合う同じ月のコピーを置けば二重に取り込まれます。入力フォルダーには、取り込む原本だけを置く運用にします。

手順3:ファイルを結合して、列名とデータ型を確認する

  1. 「Content」列の見出しにある「ファイルの結合」ボタンを選びます。見つからない場合はContent列を選択し、「ホーム」の「ファイルの結合」を探します。
  2. サンプルファイルには1月分を指定します。
  3. 文字コードを「65001: Unicode (UTF-8)」、区切り記号を「コンマ」にして、4列に分かれているか確認します。
  4. 「エラーのあるファイルをスキップする」のチェックボックスが表示される場合は、チェックを入れずに進めます。取り込み漏れをエラーで発見するためです。
  5. OKを押すと結合されます。「日付」「部門」「商品」「売上金額」の列名とデータを確認します。

列名がColumn1などになっていて、先頭行に「日付」「部門」などが残っている場合は、左側の補助クエリにある「サンプル ファイルの変換」を開き、「1行目をヘッダーとして使用」を適用します。その後、結合結果のクエリに戻って確認します。すでに正しい列名なら、この操作は不要です。

Power Queryが自動で作る「サンプル ファイル」「ファイルの変換」などの補助クエリは、各CSVへ共通の処理を行うために使われます。名前が似ていても、不要と判断して削除しないでください。

結合結果では、各列の見出し左側の型アイコンから、次の型になっているか確認します。

列名データ型
日付日付
部門・商品テキスト
売上金額整数

このサンプルの金額は小数を使わないため整数にします。実際のデータで小数が必要なら、整数に丸めず用途に合う型を選んでください。元ファイル名が入ったSource.Nameなどの列は残しておくと、どのCSVから取り込まれた行か追えます。

CSV結合と自動の型検出についてはMicrosoftのCSV結合の解説、文字コードなどはText/CSVコネクタの解説も参考になります。

手順4:Excelに読み込み、8件・114,000円を確認する

  1. 結合結果のクエリ名を「月次売上」に変更します。
  2. 「ホーム」→「閉じて読み込む」のメニューから「閉じて次に読み込む」を選びます。
  3. 「テーブル」と「新規ワークシート」を指定して読み込みます。
  4. 読み込み完了後、見出しを除くデータが8行あることを確認します。
  5. 読み込まれたテーブル内を選び、「テーブル デザイン」で「集計行」を有効にします。
  6. 集計行の「売上金額」列で「合計」を選び、114,000円になることを確認します。

集計行の合計は、テーブルにかけたフィルターの影響を受けます。照合するときはフィルターを解除してください。集計行自体はデータ件数に含めません。

対象明細件数売上合計
1月4件54,000円
2月4件60,000円
1月+2月8件114,000円

Excelブックは、入力用CSVと区別しやすいよう「取込用」の外へ月次売上.xlsxという名前で保存します。

手順5:3月分を追加し、更新する

  1. 「翌月追加用」に置いたsales_2026-03.csvを、「取込用」へ移動します。
  2. Excelの「データ」→「すべて更新」を選びます。
  3. 更新処理が完了したら、テーブルのフィルターを解除して、データが12件・合計174,000円になったことを確認します。
  4. 元ファイル名の列でも、3月分が4件取り込まれているか確認します。
  5. 確認後、Excelブックを保存します。

同じCSVを何度も開いて貼り付ける代わりに、保存しておいた取り込み処理を再実行します。通常のフォルダー取り込みでは、更新するたびに対象フォルダーの内容から結果を作り直します。新しいファイルだけを履歴へ追加し続ける仕組みではありません。

そのため、過去月のCSVを入力フォルダーから取り除くと、次の更新後はその月のデータも結果から消えます。過去月を含めた一覧を維持したい場合は、対象のCSVを残してください。また、CSVを置くだけでExcelの結果がすぐ変わるわけではなく、この記事の設定では更新操作が必要です。

うまくいかないときに確認すること

症状確認する場所と対処
日本語が文字化けするファイル結合時の文字コードと元CSVの文字コードを合わせます。この練習データはUTF-8です。実務のCSVがShift-JISなら、その形式に合わせます。
データが1列に固まる区切り記号を確認します。このサンプルはコンマ区切りです。
翌月分が増えない保存先、拡張子、ファイル名の条件を確認します。固定のファイル名で絞り込んでいないか、更新が完了しているかも確認します。
件数や合計が多すぎる同じ月のコピーやバックアップが対象になっていないか確認します。単月データと累計データを混ぜても重複します。
「列が見つからない」などのエラーが出る元CSVの列名と、補助クエリ・結合結果の適用したステップを確認します。「売上金額」と「売上金額 」のような空白の違いにも注意します。
必要な列が空欄になる、追加した列が見えないCSVの列構成が途中で変わっていないか確認します。欠けた列が必ずエラーになるとは限らず、空欄になる場合もあります。新しい列も自動で最終結果へ出るとは限りません。
フォルダーを移動したら更新できない「データ」→「クエリと接続」から対象クエリを編集し、「ソース」の参照先を修正します。Folder Pathで絞っている場合は、その条件も新しいパスに直します。

エラーが出ないことだけで、集計が正しいとは判断できません。今回のように、元データの件数・合計と結合結果を照合する手順を更新作業に含めます。

毎月の業務で使う前に決めておくこと

  • CSVの形式をそろえる:列名・列数・日付形式・文字コードをそろえ、1行目を見出しにします。途中に合計行を混ぜないようにします。
  • 単月か累計かを確認する:この手順は月ごとに重複しない明細を縦に並べる例です。毎月のファイルに年初からの全明細が入る場合は、そのまま結合すると重複します。
  • 修正は元データへ反映する:読み込み結果のセルを直接直すと、更新で上書きされます。元CSVを修正して更新するか、繰り返す整形ならPower Queryの手順に組み込みます。
  • 照合する数字を決める:元システムの件数・金額など、結果と突き合わせられる数字を用意します。

まずはこの練習データで、8件から12件へ変わる流れを確かめてください。自分の業務に置き換えるときは、「同じ形式のファイルを置く」「更新する」「件数と合計を照合する」の3つを毎月の手順にすると運用しやすくなります。

コメント

タイトルとURLをコピーしました