Power Queryで複数CSVを結合する方法|毎月の集計を更新だけにする
毎月届く売上CSVや在庫CSVを一つずつ開き、コピーして一枚の表へ貼り付けていませんか。ファイルの列構成がそろっていれば、Power Queryでフォルダー内のCSVをまとめて取り込めます。
一度手順を作ると、翌月からは対象フォルダーへ新しいCSVを入れて「更新」するだけです。元のCSVを直接書き換えないため、やり直しや確認もしやすくなります。
準備するフォルダー
まず、結合したいCSVだけを入れる専用フォルダーを作ります。前年分や処理済みファイル、Excelの集計ブックは同じフォルダーへ入れません。
最初はCSVを2〜3個だけコピーして試します。
実務フォルダーを直接指定せず、テスト用フォルダーで列名・文字コード・件数を確認してください。
実務フォルダーを直接指定せず、テスト用フォルダーで列名・文字コード・件数を確認してください。
| そろえる項目 | 確認内容 |
|---|---|
| 見出し | 「商品コード」「数量」などの列名を同じにする |
| 列の意味 | 同じ列へ異なる種類の値を入れない |
| 文字コード | 文字化けする場合はUTF-8またはShift_JISを確認する |
| 商品コード | 先頭ゼロが必要なら文字列として扱う |
複数CSVを結合する手順
- 新しいExcelブックを開きます。
- 「データ」タブから「データの取得」→「ファイルから」→「フォルダーから」を選びます。
- CSVを保存したテスト用フォルダーを指定します。
- ファイル一覧が表示されたら「結合して変換」を選びます。
- 見本として使うファイルと区切り記号、文字コードを確認します。
- Power Queryエディターで不要な列の削除、列名の統一、データ型の設定を行います。
- 「閉じて読み込む」でExcelの表へ出力します。
Excelの版によってメニュー名が少し異なる場合があります。大切なのは、ファイルを一つずつ選ぶのではなく、対象フォルダーをデータ元として指定することです。
最初に行う3つの変換
1.不要な列を削除する
ファイルの保存場所や更新日時など、集計に使わない列を削除します。必要な列だけを残す方法にすると、仕入先側で余計な列が増えた場合にも影響を抑えやすくなります。
2.データ型を設定する
数量は整数、価格は数値、更新日は日付、商品コードは文字列というように型を決めます。商品コードを数値へ変換すると先頭ゼロが消えるため注意します。
3.元ファイル名を残す
どのCSVから取り込んだ行か分かるように、元ファイル名の列を残します。エラーや重複が見つかったときに元データへ戻りやすくなります。
翌月からの更新方法
- 対象フォルダーのCSVを入れ替える、または新しいCSVを追加します。
- 集計ブックを開きます。
- 「データ」タブの「すべて更新」を押します。
- 取込件数、合計数量、エラー件数を前月と比較します。
過去分を残して累積集計するなら新しいCSVを追加します。当月分だけを集計するなら、古いCSVを別の保管フォルダーへ移してから更新します。
よくある失敗と対処
| 症状 | 主な原因と対処 |
|---|---|
| 列がずれる | CSVごとに見出しや区切り記号が違う。元ファイルの形式を確認する |
| 文字化けする | 文字コードが合っていない。サンプルファイルの設定を変更する |
| 先頭ゼロが消える | 商品コードが数値型になっている。文字列型へ変更する |
| 同じデータが重複する | 同じCSVが別名で入っていないか、取込前にファイル一覧を確認する |
| 更新でエラーになる | 列名の変更や欠落を確認し、エラー行と元ファイル名を照合する |
処理後に必ず確認する数字
- 取り込んだファイル数
- CSVごとの行数と合計行数
- 商品コードの空欄・重複件数
- 数量・金額の合計
- エラーになった行数
更新ボタンが押せたことを成功にせず、処理前後の件数と合計値が説明できる状態にします。
まとめ
Power Queryを使うと、毎月のCSV結合をコピー&ペーストから更新作業へ変えられます。最初は列構成が同じ2〜3個のCSVで試し、元ファイル名と件数を残して確認できる仕組みにしましょう。