複数の部署や拠点から提出されるExcelファイルを、毎回手作業で1つにまとめていませんか?Pythonのpandasライブラリを使えば、同一フォーマットのExcelファイルを自動で一括統合することができます。
この記事では、フォルダ内のExcelファイルをすべて読み込み、1つのファイルにまとめる方法を解説します。
前提:pandasとopenpyxlのインストール
pip install pandas openpyxl
openpyxl
はExcelの読み書きエンジンとして必要になります。
対象ファイルの構成例
以下のような構成のExcelファイルを想定します(すべて同じ列構成)。
- ./excel_data/sales_tokyo.xlsx
- ./excel_data/sales_osaka.xlsx
- ./excel_data/sales_nagoya.xlsx
統合処理スクリプト
import pandas as pd
import os
# Excelファイルが格納されているフォルダ
folder_path = "./excel_data"
# 拡張子がxlsxのファイルを収集
excel_files = [f for f in os.listdir(folder_path) if f.endswith(".xlsx")]
# 読み込んだデータを格納するリスト
df_list = []
for file in excel_files:
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path, engine="openpyxl")
df["ファイル名"] = file # どのファイル由来か記録
df_list.append(df)
# 全ファイル分のDataFrameを結合
merged_df = pd.concat(df_list, ignore_index=True)
# 結果を保存
merged_df.to_excel("統合結果.xlsx", index=False)
print("統合が完了しました。")
オプション:特定のシートを指定して読み込む
シート名が固定されている場合、以下のように指定できます。
df = pd.read_excel(file_path, sheet_name="売上データ", engine="openpyxl")
応用例:日付や店舗名でソートする
# 日付で昇順ソート
merged_df.sort_values(by="日付", inplace=True)
# 店舗名ごとに集計
summary = merged_df.groupby("店舗")["売上"].sum()
print(summary)
まとめ
pandasを使えば、複数のExcelファイルを自動で統合・加工・出力する処理を簡単に構築できます。毎月のレポート作成や部門別の集計作業など、手間のかかる作業を効率化できる強力な手段です。
ファイル構成や列名が統一されていれば、わずか数行のコードで一括処理が可能になります。ぜひ業務に取り入れてみてください。