Excelデータ整形は「バラバラなExcelを自動で綺麗に整え、分析・レポート作成できる状態に変換する」ための最強スキル
MONO、あなたのように業務効率化を本気で考える人にとって、 Excelデータ整形の自動化は“Pythonで最も効果が大きい業務改善” です。
Excelのデータは現場ごとに形式が違い、 列名がバラバラ、日付が文字列、空欄が多い、順番が揃っていない…… こうした「汚いデータ」を整形するのは本来とても面倒です。
Pythonを使えば、 読み込み → 整形 → クレンジング → 保存 まで完全自動化できます。
初心者でも理解できるように、例題を交えて丁寧に解説します。
Excelデータ整形の基本構造(最重要ポイント)
データ整形は次の5つで構成される
- 列名の統一(日本語化・英語化・命名規則統一)
- 型変換(日付・数値・文字列の正規化)
- 欠損値処理(空欄の補完・削除)
- 並び替え(日付順・商品順など)
- 不要列の削除(分析に不要な列を除去)
Pythonでは pandas を使うと高速かつ正確に整形できます。
最も基本的な「Excelデータ整形」テンプレート
読み込み → 整形 → 保存の最小コード
import pandas as pd
df = pd.read_excel("sales.xlsx")
df.columns = ["日付", "商品", "数量", "売上"]
df["日付"] = pd.to_datetime(df["日付"], errors="coerce")
df["数量"] = pd.to_numeric(df["数量"], errors="coerce")
df["売上"] = pd.to_numeric(df["売上"], errors="coerce")
df = df.sort_values("日付")
df.to_excel("sales_clean.xlsx", index=False)
Python深掘りポイント
- 列名を統一すると後の処理が圧倒的に楽になる
errors="coerce"は不正データを自動で NaT / NaN に変換- 並び替えは「日付順」が最も使われる
列名の統一(最も重要な整形)
列名がバラバラなExcelを統一する例
df.rename(columns={
"DATE": "日付",
"ITEM": "商品",
"QTY": "数量",
"AMOUNT": "売上"
}, inplace=True)
Python深掘りポイント
- 列名が揃うと後の処理が一気に簡単になる
- 英語→日本語、日本語→英語どちらでもOK
- 実務では「列名統一」が整形の第一歩
型変換(日付・数値・文字列の正規化)
日付を正しい形式に変換する
df["日付"] = pd.to_datetime(df["日付"], errors="coerce")
Python数値を正しい形式に変換する
df["数量"] = pd.to_numeric(df["数量"], errors="coerce")
df["売上"] = pd.to_numeric(df["売上"], errors="coerce")
Python深掘りポイント
- Excelは「見た目が数値でも実は文字列」が多い
- 型変換は整形の中で最も重要
- 不正データは NaN に変換されるため後でチェック可能
欠損値処理(空欄の補完・削除)
空欄を補完する例
df["数量"].fillna(0, inplace=True)
df["商品"].fillna("不明", inplace=True)
Python空欄行を削除する例
df.dropna(subset=["日付", "商品"], inplace=True)
Python深掘りポイント
- 欠損値は分析の邪魔になる
- 補完か削除かは業務ルールに合わせて選ぶ
並び替え(日付順・商品順)
日付順に並び替える
df = df.sort_values("日付")
Python商品順に並び替える
df = df.sort_values("商品")
Python深掘りポイント
- 並び替えはレポート作成で必須
- 日付順にすると時系列分析がしやすい
不要列の削除(分析に不要な列を除去)
不要列を削除する例
df = df.drop(columns=["備考", "担当者コード"])
Python深掘りポイント
- 不要列が多いと分析が複雑になる
- 必要な列だけ残すことでデータが軽くなる
実務例①:複数Excelを整形して統合する
フォルダ内のExcelを整形 → 統合
import glob
files = glob.glob("data/*.xlsx")
df_list = []
for file in files:
df = pd.read_excel(file)
df.columns = ["日付", "商品", "数量", "売上"]
df["日付"] = pd.to_datetime(df["日付"], errors="coerce")
df_list.append(df)
merged = pd.concat(df_list, ignore_index=True)
merged.to_excel("merged_clean.xlsx", index=False)
Python解説
複数ファイルを整形してから統合すると、 「汚いデータが混ざる」問題を防げる。
実務例②:整形後にレポートを自動生成する
整形 → 集計 → レポート化
summary = df.groupby("商品")["売上"].sum()
summary.to_excel("summary.xlsx")
Python解説
整形したデータはそのままレポート作成に使える。
実務例③:整形後にエラーチェックを追加する
整形 → エラーチェック → 出力
invalid = df[df["数量"] <= 0]
invalid.to_excel("error.xlsx")
Python解説
整形とエラーチェックはセットで使うと最強。
Excelデータ整形を業務で設計するときの視点
列名を必ず統一する
整形の基盤になる。
型変換を必ず行う
Excelは型が崩れやすい。
欠損値処理を明確にする
補完か削除かを決める。
不要列を削除する
データが軽くなり分析しやすくなる。
