Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excelエラーチェック

Python Python
スポンサーリンク
  1. Excelエラーチェックは「Excelの入力ミス・欠損・異常値を自動で検出し、正しいデータだけを業務に流す」ための最強スキル
  2. Excelエラーチェックの基本構造(最重要ポイント)
    1. エラーチェックは次の5つで構成される
  3. 基本テンプレート:Excelのエラーを一覧化する
    1. Excelを読み込み → エラーを検出 → Excelに出力する例
    2. 深掘りポイント
  4. 欠損チェック(必須項目の空欄を検出)
    1. 必須項目が空欄ならエラーにする
    2. 深掘りポイント
  5. 数値の異常値チェック(売上・数量で必須)
    1. 数値が0以下・異常に大きい値を検出
    2. 深掘りポイント
  6. 日付の不正チェック(勤怠・日報で必須)
    1. 日付が正しい形式かチェック
    2. 深掘りポイント
  7. 重複チェック(顧客・商品マスタで必須)
    1. 重複行を検出する
    2. 深掘りポイント
  8. 型チェック(文字列・数値・日付の不一致)
    1. 数値列に文字列が混ざっていないか確認
    2. 深掘りポイント
  9. 実務例①:エラーをExcelに色付きで出力する
    1. エラー行を赤色にする(openpyxl)
    2. 深掘りポイント
  10. 実務例②:エラー一覧を別シートに自動生成する
    1. エラー一覧シートを作成
    2. 深掘りポイント
  11. 実務例③:複数Excelをまとめてエラーチェックする
    1. フォルダ内のExcelをすべてチェック
    2. 深掘りポイント
  12. Excelエラーチェックを業務で設計するときの視点
    1. 必須項目を明確にする
    2. 異常値の基準を決める
    3. 型チェックを必ず入れる
    4. エラー一覧を作る

Excelエラーチェックは「Excelの入力ミス・欠損・異常値を自動で検出し、正しいデータだけを業務に流す」ための最強スキル

MONO、あなたのように業務効率化を本気で考える人にとって、 Excelエラーチェックの自動化は“品質向上 × 時間削減”を同時に達成できる最強の技術 です。

Pythonを使えば、 誤入力・欠損・異常値・重複・型不一致 などを自動で検出し、Excelに「エラー一覧」を出力できます。

初心者でも理解できるように、例題を交えて丁寧に解説します。

Excelエラーチェックの基本構造(最重要ポイント)

エラーチェックは次の5つで構成される

  • 必須項目の欠損チェック
  • 数値項目の異常値チェック
  • 日付項目の不正チェック
  • 重複データチェック
  • 型(フォーマット)チェック

Pythonでは pandas を使うと高速かつ正確にチェックできます。

基本テンプレート:Excelのエラーを一覧化する

Excelを読み込み → エラーを検出 → Excelに出力する例

import pandas as pd

df = pd.read_excel("sales.xlsx")

errors = []

for idx, row in df.iterrows():
    if pd.isna(row["日付"]):
        errors.append([idx+2, "日付が空欄です"])
    if pd.isna(row["商品"]):
        errors.append([idx+2, "商品名が空欄です"])
    if row["数量"] <= 0:
        errors.append([idx+2, "数量が0以下です"])
    if row["売上"] < 0:
        errors.append([idx+2, "売上がマイナスです"])

error_df = pd.DataFrame(errors, columns=["行番号", "エラー内容"])
error_df.to_excel("error_report.xlsx", index=False)
Python

深掘りポイント

  • idx+2 はExcelの行番号(ヘッダーが1行目)
  • エラーをリストに追加して最後にまとめて出力する
  • 実務で最も使われる「エラー一覧表」形式

欠損チェック(必須項目の空欄を検出)

必須項目が空欄ならエラーにする

missing = df[df["商品"].isna()]
Python

深掘りポイント

  • 欠損は最も多いエラー
  • isna() で簡単に検出できる
  • 必須項目は業務ごとに変わるため柔軟に設定可能

数値の異常値チェック(売上・数量で必須)

数値が0以下・異常に大きい値を検出

invalid_qty = df[df["数量"] <= 0]
invalid_sales = df[df["売上"] < 0]
Python

深掘りポイント

  • 数量が0以下は入力ミスの典型
  • 売上がマイナスは異常値
  • pandasなら高速に検出できる

日付の不正チェック(勤怠・日報で必須)

日付が正しい形式かチェック

df["日付"] = pd.to_datetime(df["日付"], errors="coerce")
invalid_date = df[df["日付"].isna()]
Python

深掘りポイント

  • errors="coerce" で不正日付を自動で NaT に変換
  • 不正日付(例:2026/13/40)を確実に検出できる

重複チェック(顧客・商品マスタで必須)

重複行を検出する

duplicates = df[df.duplicated(subset=["商品コード"], keep=False)]
Python

深掘りポイント

  • マスタデータの品質チェックで必須
  • keep=False で重複行をすべて抽出

型チェック(文字列・数値・日付の不一致)

数値列に文字列が混ざっていないか確認

invalid_type = df[~df["数量"].apply(lambda x: isinstance(x, (int, float)))]
Python

深掘りポイント

  • Excelは「見た目が数値でも実は文字列」が多い
  • 型チェックは業務品質を大きく左右する

実務例①:エラーをExcelに色付きで出力する

エラー行を赤色にする(openpyxl)

from openpyxl import load_workbook
from openpyxl.styles import PatternFill

wb = load_workbook("sales.xlsx")
ws = wb.active

for idx in invalid_qty.index:
    ws[f"A{idx+2}"].fill = PatternFill(start_color="FF9999", fill_type="solid")

wb.save("sales_error_highlight.xlsx")
Python

深掘りポイント

  • エラー行を色付けすると視認性が大幅に向上
  • Excel担当者がすぐに修正できる

実務例②:エラー一覧を別シートに自動生成する

エラー一覧シートを作成

with pd.ExcelWriter("sales_checked.xlsx") as writer:
    df.to_excel(writer, sheet_name="元データ", index=False)
    error_df.to_excel(writer, sheet_name="エラー一覧", index=False)
Python

深掘りポイント

  • 元データとエラー一覧を同じExcelにまとめられる
  • 提出用のチェックレポートとして使える

実務例③:複数Excelをまとめてエラーチェックする

フォルダ内のExcelをすべてチェック

import glob

files = glob.glob("data/*.xlsx")

for file in files:
    df = pd.read_excel(file)
    # エラーチェック処理…
Python

深掘りポイント

  • 月次・週次の大量ファイルを一括チェック
  • 手作業では絶対に不可能な効率化

Excelエラーチェックを業務で設計するときの視点

必須項目を明確にする

日付・商品・数量・売上など。

異常値の基準を決める

数量0以下、売上マイナスなど。

型チェックを必ず入れる

Excelは型が崩れやすい。

エラー一覧を作る

修正作業が圧倒的に楽になる。

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