複数Excel統合は「大量のファイルを一瞬でまとめ、分析可能な1つのデータに変換する」ための最強スキル
業務効率化を本気で考える人にとって、
複数Excelファイルの統合は“Pythonで最も効果が高い自動化” です。
毎日・毎週・毎月、次のような作業をしていませんか。
- フォルダ内のExcelを1つずつ開いてコピペ
- シートをまとめて1つのファイルに統合
- 月別・店舗別・担当者別のデータを結合
- CSVやExcelを大量に扱う業務
Pythonを使えば、
フォルダ内のExcelを一括読み込み → 統合 → 保存
まで完全自動化できます。
初心者でも理解できるように、例題を交えて丁寧に解説します。
複数Excel統合の基本構造(最重要ポイント)
複数Excel統合は次の3ステップで構成されます。
読み込み(pandas)
フォルダ内のExcelを自動で読み込みます。
結合(concat)
複数ファイルを縦方向・横方向に結合します。
保存(to_excel)
統合したデータを1つのExcelに書き出します。
この3つを理解すれば、どんな統合処理でも作れます。
最も基本的な「複数Excelの縦方向統合」テンプレート
フォルダ内のExcelをすべて読み込み → 1つにまとめる
import pandas as pd
import glob
files = glob.glob("data/*.xlsx")
df_list = []
for file in files:
df = pd.read_excel(file)
df_list.append(df)
merged = pd.concat(df_list, ignore_index=True)
merged.to_excel("merged.xlsx", index=False)
Python深掘りポイント
複数Excel統合の核は concat(結合) です。
ignore_index=True を付けることで、行番号がきれいに並びます。
glob を使うと「フォルダ内の全ファイル」を自動で取得できます。
ファイル名を列として追加する(どのファイルのデータか分かる)
統合後に「元ファイル名」を残す方法
import pandas as pd
import glob
import os
files = glob.glob("data/*.xlsx")
df_list = []
for file in files:
df = pd.read_excel(file)
df["元ファイル"] = os.path.basename(file)
df_list.append(df)
merged = pd.concat(df_list, ignore_index=True)
merged.to_excel("merged_with_filename.xlsx", index=False)
Python深掘りポイント
実務では「どの店舗のデータか」「どの担当者のファイルか」を残す必要があります。
ファイル名を列に追加することで、後から分析しやすくなります。
シート名ごとに統合する(複数シートをまとめたい場合)
全Excelの「売上」シートだけを統合する
files = glob.glob("data/*.xlsx")
df_list = []
for file in files:
df = pd.read_excel(file, sheet_name="売上")
df_list.append(df)
merged = pd.concat(df_list, ignore_index=True)
merged.to_excel("merged_sales.xlsx", index=False)
Python深掘りポイント
複数シートを扱う場合は sheet_name を指定します。
毎月の売上シートをまとめる業務に最適です。
横方向(列方向)に統合するテンプレート
同じ行数のExcelを横に結合する
import pandas as pd
df1 = pd.read_excel("file1.xlsx")
df2 = pd.read_excel("file2.xlsx")
merged = pd.concat([df1, df2], axis=1)
merged.to_excel("merged_side.xlsx", index=False)
Python深掘りポイント
axis=1 を指定すると「横方向」に結合できます。
部署別データを横に並べたい場合に使います。
Excelの複数シートに分けて保存する(レポート形式)
統合データを複数シートに出力
with pd.ExcelWriter("report.xlsx") as writer:
merged.to_excel(writer, sheet_name="統合データ", index=False)
summary = merged.groupby("商品")["売上"].sum()
summary.to_excel(writer, sheet_name="商品別集計")
Python深掘りポイント
ExcelWriter を使うと、1つのExcelに複数シートを作れます。
統合 → 集計 → レポート化 が一気にできます。
実務例①:店舗別売上ファイルを統合する
data/ フォルダに「店舗A.xlsx」「店舗B.xlsx」などがある場合
files = glob.glob("data/*.xlsx")
df_list = []
for file in files:
df = pd.read_excel(file)
df["店舗"] = os.path.basename(file).replace(".xlsx", "")
df_list.append(df)
merged = pd.concat(df_list, ignore_index=True)
merged.to_excel("all_stores.xlsx", index=False)
Python解説
店舗名を自動で追加することで、後から集計しやすくなります。
実務例②:毎月の売上ファイルを統合する(月次レポート用)
「2024-01.xlsx」「2024-02.xlsx」などを統合
df["月"] = os.path.basename(file).replace(".xlsx", "")
Pythonこの1行を追加するだけで、月別データが作れます。
実務例③:CSVとExcelを混在して統合する
CSVもExcelもまとめて読み込む
files = glob.glob("data/*")
df_list = []
for file in files:
if file.endswith(".csv"):
df = pd.read_csv(file)
else:
df = pd.read_excel(file)
df_list.append(df)
merged = pd.concat(df_list, ignore_index=True)
merged.to_excel("merged_all.xlsx", index=False)
Python解説
CSVとExcelが混在していても自動で統合できます。
Excel統合を業務で設計するときの視点
統合の目的を明確にする
月次レポート用なのか、KPI分析用なのかで構造が変わります。
ファイル名・シート名を残す
後から分析しやすくなります。
pandas.concat を使う
複数Excel統合の中心となる関数です。
ExcelWriter でレポート化
統合 → 集計 → レポートを1つのExcelにまとめられます。
