マスログ

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 で書く高度なクレンジング

生成AIによるデータフィルタリング結果の画面

図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 プリインストール)

<文/岡崎 凌>

新着記事

同じカテゴリーの新着記事

同じカテゴリーの人気記事

この記事に関連する教室: 統計・データ分析教室 →社会人の学び直し講座 →

CONTACTお問い合わせ

個別講義や集団講義、また法人・団体向けの研修を行うスペース紹介です。遠人に在住の方や自宅で講義を受けたい方はオンライン講座をご用意しております。よくある質問はこちら