Excelファイルを結合する小さなPython|日々の整理を、少しだけ自動に

データ整理って、ちょっとしたことなのに、毎日くり返すと案外たいへん。
今日は、同じ名前のExcelファイルが月ごとに増えていく作業フォルダを見て、
「あ、これ、Pythonでちょっと楽にできるかも」と思った話です。

目次

🧩 1. やりたかったこと

  • 毎月「202506abc.xlsx」のように増えるExcelファイル。
  • 中身は同じ構造だけど、人の手でまとめるのはちょっと面倒。
  • フォルダ内を全部まとめて1つのExcelにしたい!

🔧 2. Pythonで書いた小さなしくみ

💡 プログラム1|ライブラリの設定

# プログラム1|ライブラリの読み込み( # の右側はコメントですよ 書かなくても良い )
import glob                # ファイル一覧を取得するための標準ライブラリ
import pandas as pd        # データ操作のための定番ライブラリ「pandas」

Pandasはデータ整理の相棒。globはファイル一覧の取得に便利です。

💡 プログラム2|ファイルを探す

# プログラム2|対象のExcelファイルを検索
def_path = r"\\host-name\2025\202506"     # Excelファイルが入っているフォルダのパス
files = glob.glob(def_path + r'\202506*.xlsx')  # "202506"で始まるExcelファイルをすべて取得

202506*.xlsxという形で、月別のExcelファイルを全部取得します。

💡 プログラム3〜4|1つずつ読み込む

# プログラム3|空のリストを準備(データを格納するため)
list = []  # 後で読み込んだDataFrameを追加していく入れ物

# プログラム4|ファイルを1つずつ読み込み、リストに追加
for file in files:
    # 各Excelファイルの中身を、6行目(header=5)から読み込む
    df = pd.read_excel(file, header=5)
    list.append(df)  # 読み込んだDataFrameをリストに追加

header=5にしてるのは、5行目からがデータ本体だから。
これは現場ルールに合わせて変えられます。

💡 プログラム5|全部まとめて、列名もそろえる

# プログラム5-1|すべてのデータを1つにまとめる
df = pd.concat(list)  # list内のすべてのDataFrameを縦に結合(行方向)

# プログラム5-2|ヘッダー名を別ファイル「管理表_ヘッダー.xlsx」から取得して統一
col = pd.read_excel('管理表_ヘッダー.xlsx').columns  # ヘッダーだけ読み取る
df.columns = col  # 現在のdfの列名を、管理表の列名に置き換える

# プログラム5-3|"Unnamed"という列名(空白列や結合ミスの可能性)を空文字に変換
df.columns = ["" if "Unnamed" in col else col for col in df.columns]
# → "Unnamed: 3" のような列を "" に置き換え、あとで削除しやすくする工夫

ヘッダー行は「管理表_ヘッダー.xlsx」から取っています。
“Unnamed”を含む列は空白にすることで、不要な列を明確にできます。

💡 プログラム6|まとめたデータを書き出す

# プログラム6|すべてのデータをExcelファイルとして保存
df.to_excel('total.xlsx', index=False)  # インデックス列を含めずに出力

最後に、「total.xlsx」として1つのファイルに出力。
これで、毎月の手作業がちょっと楽になりました。

🌿 3. おわりに|暮らしとPythonのやさしい関係

この小さなスクリプトで、毎月の“まとめるだけの作業”にさよならできました。
大きなシステムじゃなくても、こうして自分の手元でちょっとだけ助けてくれるPythonが好きです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次