Excel業務が変わる!Copilot×Python自動化術-第4回:ぐちゃぐちゃなデータも一発で整理
公開日
2026年2月22日
更新日
2026年5月6日
この記事の主な内容
この記事のポイント
・ぐちゃぐちゃなデータをCopilot/Python in Excelで 一発で整形する手順
・クレンジングの 5大パターン(表記ゆれ/欠損/重複/型違い/構造崩れ)
・コピペで使える プロンプト例7つ+Python in Excel コード
・Copilot利用の 前提条件(Microsoft公式)
「ぐちゃぐちゃなデータ」の正体
現場でもらうデータは、だいたい次のどれかに当てはまります。
・部署や担当者ごとに表記が揺れている(「株式会社」「(株)」「(株)」)
・セルに複数の情報が詰め込まれている(「田中太郎(営業部)」)
・空欄の意味が複数ある(未入力/非該当/確認中)
・同じ情報が複数行に分散している
・見出しが複数段で、結合セルで美しく飾られている
これらは人間が手で直すと1時間単位の作業ですが、CopilotとPython in Excelを組み合わせれば、多くは 5分以内 で整えられます。

図1:ぐちゃぐちゃなデータから整形された表への加工
クレンジング5大パターンと対処法
| パターン | 例 | 推奨ツール |
|---|---|---|
| ① 表記ゆれ | 「株式会社」「(株)」「(株)」 | Copilot |
| ② 欠損値 | 「空白」「-」「未記入」「N/A」が混在 | Copilot+Python |
| ③ 重複 | 同一レコードが複数行 | Copilot |
| ④ 型違い | 日付が文字列・数値混在 | Python in Excel |
| ⑤ 構造崩れ | 複数ヘッダー、結合セル | Python in Excel |
コピペで使えるクレンジングプロンプト例 7つ
① 企業名の表記統一
B列の会社名について、以下を実行してください。
・「株式会社」「(株)」「(株)」「カブシキガイシャ」を
すべて「株式会社」に統一
・会社名の前後の全角・半角スペースを削除
・英数字はすべて半角に変換
結果をC列に出力してください。
② 1セル複数情報の分解
A列に「田中太郎(営業部)」のように、氏名と部署が混在しています。
・氏名をB列
・部署をC列(括弧を除く)
に分けてください。全角/半角括弧どちらにも対応してください。
③ 欠損値の標準化
以下のパターンの欠損をすべて空セル(blank)に統一してください。
・「N/A」「NA」「未記入」「-」「未」「—」「null」「なし」
対象範囲:A2:Z1000
統一後、欠損の多い列Top5を表にしてください。
④ 重複除去(条件付き)
注文データから重複を除去してください。
・重複の判定基準:注文ID+顧客名+日付
・重複がある場合、金額が最大の1行を残す
・削除した件数をサマリーに出力
⑤ 日付正規化
A列に以下が混在した日付データがあります。
「2025/12/31」「2025-12-31」「2025年12月31日」「12/31/2025」「R07.12.31」
すべて「YYYY-MM-DD」形式(ISO 8601)に統一してください。
解釈不能な値は「UNKNOWN」と表示。
⑥ 結合セル解除と構造フラット化
A1:C5に結合セルを含むヘッダーがあります。
・結合を解除
・上の階層のヘッダーを下の階層に結合
(例:「売上 > 国内」「売上 > 海外」を結合して1行ヘッダー化)
・以降のデータ部分は位置がずれないように維持
⑦ 型違いの混在(数値と文字列)
D列に「1200」「1,200円」「¥1200」「千二百円」が混在しています。
・すべて数値型(整数)に変換
・元の表記はF列にバックアップ
・変換不能な値はG列に「要確認」と記録
Python in Excel で書く高度なクレンジング

図2:生成AIによるデータフィルタリング
大量データ(数千〜数万行)や複雑なクレンジングは、Python in Excel の方が効率的です。pandas は初期状態で import 済みです(Microsoft公式)。
① 複数フォーマットの日付を一括変換
=PY(
import pandas as pd
df = xl("raw!A1:G5000", headers=True)
df["date_clean"] = pd.to_datetime(df["date"], errors="coerce").dt.strftime("%Y-%m-%d")
df
)
② 重複除去(条件付き)
=PY(
import pandas as pd
df = xl("orders!A1:F10000", headers=True)
df = df.sort_values("amount", ascending=False)
df_dedup = df.drop_duplicates(subset=["order_id","customer","date"], keep="first")
df_dedup
)
③ 正規表現で表記ゆれを一気に統一
=PY(
import pandas as pd
import re
df = xl("companies!A1:B500", headers=True)
df["name_clean"] = df["name"].apply(
lambda x: re.sub(r"[((]株[))]|株式会社|カブシキガイシャ", "", str(x)).strip()
)
df
)
Copilot利用の前提条件(Microsoft公式)
Copilot in Excelを使うには以下の条件が必要です(Microsoft公式サポート情報より)。
・ファイル形式は .xlsx/.xlsb/.xlsm
・OneDrive または SharePoint に保存されていること
・自動保存オン
・データは Excel テーブル形式(または対応範囲:1行ヘッダー、空白列なし、結合セルなし)
・ライセンス:法人は Microsoft 365 Business/Enterprise+Microsoft 365 Copilot、個人は Microsoft 365 Personal/Family/Premium または Copilot Pro
「Copilotに聞いても反応しない」という場合、上記いずれかが満たされていないことが多いです。
クレンジングで起きがちな事故と対策
事故1:元データを上書きしてしまう
→ 必ず元データのコピーを別シート(raw)として残す。クレンジング結果は cleaned シートに。
事故2:AIが「解釈できた数字」をそれっぽく埋めてしまう
→ 「解釈不能な値はUNKNOWN/要確認として残して」と必ず指示。
事故3:クレンジング後の件数が減りすぎている
→ 処理前後の件数を必ずログ化。「before: 10,000行 → after: 9,850行、消えた150行の内訳」をAIに要求。
よくある質問(FAQ)
Q1. Power Queryで良くない?
定型化された処理ならPower Queryが最強です。ただし、「初回の未知フォーマットのデータ」ではAIの柔軟性が有利。運用フローは「AIで試行 → ルールが固まったらPower Queryに移植」が現実的です。
Q2. AIがクレンジングに失敗した時のデバッグは?
Copilotなら「先ほどの処理で、◯◯行がうまくいかなかった。原因を挙げて」と直接聞けます。Pythonなら、エラー行を別シートに isolation した上で問題を特定します。
Q3. 個人情報を含むデータはAIに渡して大丈夫?
Microsoft 365 Copilot と Python in Excel はいずれも、データが組織のコンプライアンス境界内で処理される設計です(Microsoft公式明記)。ただし社内規程は別途確認を。無料版ChatGPT等に個人情報を貼るのは避けましょう。
まとめ:クレンジングは「型」を覚えれば怖くない
・5大パターン(表記ゆれ/欠損/重複/型違い/構造崩れ)を識別
・Copilotは対話型で、Python in Excelはコード再利用可
・元データのコピーは必ず残し、件数ログを取る
・定型化したら Power Query に移植
次回予告
次回(第5回)は「数字の”違い”を読み解く比較とランキング」をテーマに、集計結果から次の一手を見つける方法を解説します。
参考:
・Microsoft「Excel の Copilot に関してよく寄せられる質問」公式サポート情報(ライセンス要件)
・Microsoft「Python in Excel availability」公式ドキュメント(pandas プリインストール)
<文/岡崎 凌>
新着記事
同じカテゴリーの新着記事
同じカテゴリーの人気記事
この記事に関連する教室: 統計・データ分析教室 → 社会人の学び直し講座 →






