複数のExcelファイルに分かれているデータを、1つのファイルにまとめたいことはありませんか?
今回は、Pythonの openpyxl を使って、3つのExcelファイルの売上データを1つに統合する方法を紹介します。
完成したExcelファイルや自動化の実例については、以下の記事で紹介しています。
今回使用するExcelファイル
A支店・B支店・C支店の3つのExcelファイルを用意します。
支店のExcelファイルには、2026年11月1日の売上データが1件ずつ入っています。
統合前のExcelファイル
A支店.xlsx
| 日付 | 売上金額 |
|---|---|
| 2026/11/1 | 100,000 |
B支店.xlsx
| 日付 | 売上金額 |
|---|---|
| 2026/11/1 | 90,000 |
C支店.xlsx
| 日付 | 売上金額 |
|---|---|
| 2026/11/1 | 150,000 |
どのファイルも「日付」「売上金額」の2列だけのシンプルな構成です。
今回は、この3つのファイルを1つにまとめます。
フォルダの準備
今回使用するファイルを、次のように配置します。
フォルダ
├─ main.py
├─ 統合ファイル.xlsx
└─ 入力
├─ A支店.xlsx
├─ B支店.xlsx
└─ C支店.xlsx
「統合ファイル.xlsx」には、あらかじめ「統合シート」という名前のシートを作成しておきます。
「統合シート」の表はExcelのテーブルにしておきます。

2行目以降は空欄にしておき、2行目にはコピー元となる日付や金額などの書式を設定しておきます。
Pythonコード
今回は openpyxl ライブラリを使用します。
from pathlib import Path
from copy import copy
import openpyxl
# フォルダ・ファイルのパス
base_path = Path(__file__).resolve().parent
folder_path = base_path / "入力"
output_path = base_path / "統合ファイル.xlsx"
# 統合先のExcelファイルを読み込む
output_book = openpyxl.load_workbook(output_path)
output_sheet = output_book["統合シート"]
# 出力開始行
output_row = 2
# 入力フォルダ内のExcelファイルを順番に処理
for file in folder_path.glob("*.xlsx"):
# 入力ファイルを読み込む
input_book = openpyxl.load_workbook(file, read_only=True, data_only=True)
input_sheet = input_book.worksheets[0]
# 日付・支店名・売上金額を出力
output_sheet.cell(output_row, 1).value = input_sheet["A2"].value
output_sheet.cell(output_row, 2).value = file.stem
output_sheet.cell(output_row, 3).value = input_sheet["B2"].value
# 入力ファイルを閉じる
input_book.close()
# 次の出力行へ
output_row += 1
# テーブル範囲を拡張
table = next(iter(output_sheet.tables.values()))
table.ref = f"A1:C{output_row - 1}"
# 2行目の書式を追加行へコピー
for row in range(3, output_row):
for column in range(1, 4):
output_sheet.cell(row, column)._style = copy(output_sheet.cell(2, column)._style)
if table.autoFilter is not None:
table.autoFilter.ref = table.ref
# 統合先のExcelファイルを保存
output_book.save(output_path)
output_book.close()
今回のコードでは、入力フォルダにあるExcelファイルを順番に読み込み、拡張子を除いたファイル名を支店名として使用しています。
例えば、「A支店.xlsx」というファイルなら、「A支店」が自動的に設定されます。
また、統合後はExcelテーブルの範囲を拡張し、2行目の書式を追加した行にコピーしています。
実行結果
Pythonプログラムを実行すると、「統合ファイル.xlsx」の「統合シート」に3支店の売上データが書き込まれます。

3つのExcelファイルから売上データを取得し、1つのシートにまとめることができました。
元のExcelファイルにはなかった「支店名」も追加されています。
また、Excelテーブルの範囲とセルの書式も反映されました。

テーブルの範囲や書式もPythonから変更できるんですね。Excelの自動化にもいろいろ活用できそうです!
まとめ
今回は、Pythonの openpyxl を使って、複数のExcelファイルの売上データを1つに統合する方法を紹介しました。
openpyxl を使えば、Excelアプリケーションを起動せずにファイルを読み書きでき、テーブル範囲の変更やセルの書式コピーも行えます。

Excelアプリケーションを起動しないので処理が速いんですね
今回はシンプルな例ですが、日々の売上データの集約など、繰り返し発生するExcel作業にも応用できそうです。


