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

Python Python
スポンサーリンク
  1. Excelデータ検証は「入力ミスを自動で防ぎ、正しいデータだけをExcelに入れられるようにする」ための最強スキル
  2. Excelデータ検証の基本構造(最重要ポイント)
    1. データ検証は次の3つで構成される
  3. Excelのデータ検証(プルダウン)を自動設定する最小テンプレート
    1. A列に「商品名」のプルダウンを設定する例
    2. 深掘りポイント
  4. 数値のみ入力可能にする(売上・数量などで必須)
    1. B列に「数値のみ」を許可する例
    2. 深掘りポイント
  5. 日付のみ入力可能にする(勤怠・日報で必須)
    1. C列に「日付のみ」を許可する例
    2. 深掘りポイント
  6. 文字数制限を設定する(名前・ID・コードで使う)
    1. D列に「10文字以内」を設定する例
    2. 深掘りポイント
  7. エラーメッセージを設定して入力ミスを防ぐ
    1. プルダウン以外の値を入れたら警告を出す
    2. 深掘りポイント
  8. 実務例①:商品マスタを使ってプルダウンを自動生成
    1. 商品マスタを別シートから読み込み → プルダウン化
    2. 深掘りポイント
  9. 実務例②:売上入力シートに複数の検証を設定する
    1. 商品名(プルダウン)+数量(数値)+日付(日付型)
    2. 深掘りポイント
  10. 実務例③:複数シートにデータ検証を自動設定する
    1. 全シートに同じ検証ルールを設定
    2. 深掘りポイント
  11. Excelデータ検証を業務で設計するときの視点
    1. 入力ミスを防ぐルールを明確にする
    2. マスタデータを使う
    3. エラーメッセージを設定する
    4. openpyxl の DataValidation を使う

Excelデータ検証は「入力ミスを自動で防ぎ、正しいデータだけをExcelに入れられるようにする」ための最強スキル

MONO、あなたのように業務効率化を本気で考える人にとって、 Excelデータ検証(Data Validation)をPythonで自動設定できることは“品質向上×効率化”の両方を実現する最強の技術 です。

Excelのデータ検証は本来、手作業で 「入力規則 → 設定 → 範囲選択 → OK」 を繰り返す必要があります。

Pythonを使えば、 検証ルールの自動設定 → エラー防止 → 入力支援(プルダウン) まで一瞬で完了します。

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

Excelデータ検証の基本構造(最重要ポイント)

データ検証は次の3つで構成される

  • 入力制限(数値のみ、日付のみ、文字数制限など)
  • リスト選択(プルダウン)
  • エラーメッセージ表示(間違った入力を防ぐ)

Pythonでは openpyxl の DataValidation を使って設定します。

Excelのデータ検証(プルダウン)を自動設定する最小テンプレート

A列に「商品名」のプルダウンを設定する例

from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

wb = Workbook()
ws = wb.active

ws["A1"].value = "商品名"

dv = DataValidation(type="list", formula1='"りんご,みかん,バナナ"', allow_blank=False)
ws.add_data_validation(dv)
dv.add("A2:A100")

wb.save("validation.xlsx")
Python

深掘りポイント

  • type="list" がプルダウンの指定
  • formula1='"りんご,みかん,バナナ"' のように カンマ区切りで選択肢を指定
  • add("A2:A100") で検証範囲を指定
  • 手作業で設定するより圧倒的に速い

数値のみ入力可能にする(売上・数量などで必須)

B列に「数値のみ」を許可する例

from openpyxl.worksheet.datavalidation import DataValidation

dv = DataValidation(type="whole", operator="greaterThan", formula1="0")
ws.add_data_validation(dv)
dv.add("B2:B100")
Python

深掘りポイント

  • type="whole" は整数のみ
  • operator="greaterThan" で「0より大きい」
  • 売上・数量・在庫などの入力ミスを防げる

日付のみ入力可能にする(勤怠・日報で必須)

C列に「日付のみ」を許可する例

dv = DataValidation(type="date", operator="greaterThan", formula1="DATE(2020,1,1)")
ws.add_data_validation(dv)
dv.add("C2:C100")
Python

深掘りポイント

  • type="date" で日付のみ
  • 勤怠・日報・スケジュール管理で必須
  • 不正な文字列(例:AAA)が入らなくなる

文字数制限を設定する(名前・ID・コードで使う)

D列に「10文字以内」を設定する例

dv = DataValidation(type="textLength", operator="lessThanOrEqual", formula1="10")
ws.add_data_validation(dv)
dv.add("D2:D100")
Python

深掘りポイント

  • コード・ID・名前の入力ミス防止に最適
  • 長すぎる文字列を自動でブロック

エラーメッセージを設定して入力ミスを防ぐ

プルダウン以外の値を入れたら警告を出す

dv.error = "選択肢以外の値は入力できません"
dv.errorTitle = "入力エラー"
Python

深掘りポイント

  • エラーメッセージを設定するとユーザーが迷わない
  • Excelの「入力規則」画面と同じ機能をPythonで自動化できる

実務例①:商品マスタを使ってプルダウンを自動生成

商品マスタを別シートから読み込み → プルダウン化

products = ["りんご", "みかん", "バナナ", "ぶどう"]
formula = '"' + ",".join(products) + '"'

dv = DataValidation(type="list", formula1=formula)
ws.add_data_validation(dv)
dv.add("A2:A100")
Python

深掘りポイント

  • マスタデータを使うと選択肢の変更が簡単
  • 大規模システムでよく使う方法

実務例②:売上入力シートに複数の検証を設定する

商品名(プルダウン)+数量(数値)+日付(日付型)

# 商品名
dv1 = DataValidation(type="list", formula1='"りんご,みかん,バナナ"')
ws.add_data_validation(dv1)
dv1.add("A2:A100")

# 数量
dv2 = DataValidation(type="whole", operator="greaterThan", formula1="0")
ws.add_data_validation(dv2)
dv2.add("B2:B100")

# 日付
dv3 = DataValidation(type="date")
ws.add_data_validation(dv3)
dv3.add("C2:C100")
Python

深掘りポイント

  • 入力ミスをほぼゼロにできる
  • 売上入力シートの品質が劇的に向上する

実務例③:複数シートにデータ検証を自動設定する

全シートに同じ検証ルールを設定

for sheet in wb.worksheets:
    dv = DataValidation(type="whole", operator="greaterThan", formula1="0")
    sheet.add_data_validation(dv)
    dv.add("B2:B100")
Python

深掘りポイント

  • 月次シート・週次シートなど大量のシートに一括設定
  • 手作業では絶対にできない効率化

Excelデータ検証を業務で設計するときの視点

入力ミスを防ぐルールを明確にする

数値・日付・文字数・プルダウンなど。

マスタデータを使う

選択肢の変更が簡単になる。

エラーメッセージを設定する

ユーザーが迷わない。

openpyxl の DataValidation を使う

Excelの入力規則を完全自動化できる。

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