Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excelデータ整形

Python Python
スポンサーリンク

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は型が崩れやすい。

欠損値処理を明確にする

補完か削除かを決める。

不要列を削除する

データが軽くなり分析しやすくなる。

タイトルとURLをコピーしました