複数のExcelファイルを1つにまとめる方法|Power Query・VBA・Pythonの選び方

複数のExcelファイルを1つにまとめる方法|Power Query・VBA・Pythonの選び方

記事
IT・テクノロジー
毎月、各店舗や担当者から届くExcelファイルを、1つずつ開いてコピーしていませんか。 たとえば、12店舗から届いた売上表を1冊に集め、店舗別の合計を出す作業です。ファイル数が増えるほど時間はかかりますが、同じ形式のファイルを縦にまとめるだけなら、Excelの標準機能で自動化できる場合があります。 ただし、「Excelを1つにする」という言葉には、実は複数の意味があります。ここを区別しておくと、適切な方法を選びやすくなります。

最初に確認したい「まとめる」の3種類

① 行を縦に追加する 各店舗の売上明細を、1枚の一覧表に積み重ねる方法です。各ファイルに「日付・店舗・商品・金額」と同じ項目があれば、Power Queryが有力候補になります。 ② シートを1冊に集める A店のシート、B店のシートを別々のまま1つのブックへ移す方法です。元のシートの書式・計算式をどこまで残すかによって、手動コピーやVBAなどの選択肢が変わります。 ③ 共通の番号で照合して結び付ける 顧客一覧と売上一覧を「顧客ID」で突き合わせるような処理です。単純に行を追加するのではなく、対応するデータ同士を結合します。Power Queryのマージ機能などを検討します。
fig_01.png

どの方法を選ぶかは、ファイルの数よりも、最終的にどのような表が必要かで決まります。

同じ形式のファイルなら、まずPower Queryを試す

Windows版Excelなどで使えるPower Queryには、フォルダー内の複数ファイルを読み込み、共通の列構成で1つの表へまとめる機能があります。Microsoftも、同じ列構成を持つ複数ファイルを結合する用途を案内しています。 基本的な操作は次のとおりです。 結合したいExcelファイルだけを専用フォルダーへ入れます。 新しいExcelブックを開き、[データ]→[データの取得]→[ファイルから]→[フォルダーから]を選択します。 フォルダーを指定し、対象ファイルを確認します。 [結合と変換]などを選び、対象のシートまたはテーブルを指定します。 列名、日付、数値の形式を確認して読み込みます。 一度クエリを作成すると、次回以降も、対象フォルダーの中身を整えたうえで更新する運用が可能です。毎月、同じ列を何十回もコピーする必要はありません。 ただし、Power Queryはデータを取り込んで加工する機能です。元ブックの見た目や印刷レイアウト、マクロをそのまま合体させる機能ではありません。また、利用できるメニューはExcelのバージョンや環境で異なります。

形式が違う場合は、何を揃えるべきか

たとえば、A店では「売上金額」、B店では「金額」、C店では「売上」という列名になっているケースです。これをそのまま結合すると、別々の列として扱われることがあります。 この場合は、列名を統一する変換ルールを決めます。列の順番が違うだけなら対応しやすい一方、商品名だけが記載されたファイルや、日付と金額が結合セルに入っているファイルは、追加の整理が必要です。 特に見落としやすいのが、重複・日付・先頭のゼロです。 同じ月の修正版ファイルを旧版と一緒に取り込むと、売上が二重計上される可能性があります。 「2026/10/1」と文字列の「10月1日」が混在すると、日付別集計が崩れることがあります。 商品コード「00123」を数値として読み込むと、「123」に変わってしまうことがあります。 重複を消す場合も、行が同じという理由だけで削除してよいとは限りません。同じ金額の取引が2件あることもあるため、伝票番号など、業務上の識別ルールを使う必要があります。

Power Query・VBA・Python、どれを選ぶ?

Power Queryが向いているケース 毎月同じ形式のExcelやCSVが届く、必要な列を選ぶ、不要な行を削除する、店舗別に集計する。こうした「データの取り込みと整形」が中心なら、まずExcel標準機能を検討できます。 VBAが向いているケース 特定のセルを決まった帳票へ転記する、複数シートを指定した順番でコピーする、既存のExcel画面に実行ボタンを置く。Excelの操作や帳票の作りに密接な処理では、VBAが候補になります。会社のセキュリティ設定でマクロを使えない場合は別の方法が必要です。 Pythonが向いているケース ファイルごとに列名やシート構成が異なる、複雑な照合や例外処理がある、処理ログを残したい、Excel以外のデータとも組み合わせたい場合です。ただし、実行環境や配布方法、運用担当者への引き継ぎまで考える必要があります。 「Pythonの方が高性能だから」という理由だけで選ぶ必要はありません。現場で継続して使える方法が最適です。

結合できたかどうかは、件数と金額で確かめる

自動化した後に重要なのは、結果が正しいことです。 仮に、A店の明細が120行、B店が95行、C店が80行なら、除外条件がない限り、結合後の明細は295行になるはずです。行数だけでなく、店舗別の金額合計も元データと比較します。これは確認方法を説明するための仮の数字です。 私なら、少なくとも「読み込んだファイル名」「ファイル別の行数」「除外・エラー件数」「合計金額」を確認できるように設計します。取り込み元がわかれば、後から問題が見つかったときにも原因を追いやすくなります。 なお、Excelのワークシートには1枚あたり1,048,576行という上限があります。大量データなら、シートへの全件出力ではなく、データモデルや別の保存・集計方法も検討します。

依頼する前に整理するとよいこと

自分でPower Queryを試す場合も、ツール制作を相談する場合も、用意する情報はほぼ共通です。 元ファイルは何種類あり、どんな列・シートがありますか。 1回に何ファイル、何行くらい処理しますか。 完成形は「1枚の一覧表」「シートを束ねた1冊」「集計表」のどれですか。 重複、空欄、日付、修正版はどう扱いますか。 利用するExcelとWindowsなどの環境は何ですか。 サンプルは個人情報や機密情報を伏せ、列構成がわかるダミーデータで十分な場合があります。 仕様がはっきりした小規模・単機能の業務ツール制作は、私の基本方針では1万円からのご案内です。ただし、ファイル形式の統一、複雑な照合、画面作成、検証範囲などが増える場合は個別のお見積りになります。購入前のメッセージ相談は無料です。 まずはPower Queryで足りるかを確認する。 それでも毎月の例外処理や確認作業が残るなら、その部分だけをツール化する。複数のExcelをまとめる仕事では、この順番が無理のない選び方だと考えています。
サービス数100万件のスキルマーケット、あなたにぴったりのサービスを探す