CSVをAIへ渡して「傾向をまとめて」と頼むだけなら、結果はすぐに返ってきます。しかし、その合計値に重複行が混じっていたり、空欄がゼロとして扱われたりしても、読みやすい文章の裏に隠れてしまいます。
そこで今回は、要約より先に再計算・例外抽出・元データ照合を実行させる監査プロンプトを作り、意図的な異常を含む10行のCSVで試しました。狙いは「AIなら正しい」と信じることではなく、間違いを見つけやすい作業順へ変えることです。
検証日:2026年7月18日。個人情報を含まない自作CSVを使用し、検出結果をNode.jsの検証スクリプトと照合しました。
要約の前にデータ品質を確かめる
今回のCSVには、注文ID、日付、カテゴリー、数量、単価、報告金額を用意しました。10行の中へ、重複ID、数量の空欄、桁区切り付き数値、計算差、負の数量、カテゴリー欠損、存在しない日付という7種類の条件を埋め込んでいます。
検証スクリプトは8件の警告を返しました。数量が空欄の行では「欠損」と「計算不一致」が同時に出るためです。このような二次的な警告を別件として数えると、異常件数を過大評価します。そこでプロンプトには、原因と派生警告を分ける条件も加えました。
| 検査項目 | 埋め込んだ条件 | 確認結果 |
|---|---|---|
| キーの一意性 | 注文ID A003の重複 | 検出 |
| 必須値 | 数量・カテゴリーの空欄 | 検出 |
| 数値形式 | 桁区切りを含む単価 | 要正規化として検出 |
| 独立再計算 | 数量×単価と報告金額の差 | 期待値3000、報告値2500を検出 |
| 業務上の範囲 | 負の数量 | 検出 |
| 日付妥当性 | 2026年2月30日 | 検出 |
実際に使った監査プロンプト
目的は「読みやすい説明」ではなく、集計前にデータ品質と計算の再現性を確認することです。
次の順序を守ってください。
1. 列名、想定データ型、行数を確認する。
2. 元の表記を残したまま、欠損、重複キー、型崩れ、無効な日付、業務上不自然な負数を探す。
3. 数値の桁区切りなど、計算に必要な正規化を明示する。黙って置換しない。
4. 計算列は元の報告値を使わず、数量×単価のように独立して再計算する。
5. 異常は行番号とキーを付け、期待値・実値・判定理由を表にする。
6. 1つの原因から生じた二次警告は、原因と派生警告に分けて重複計上しない。
7. 重複キーを含む総計と、重複を除いた参考総計を分ける。
8. 判断基準がない項目は「未確定」とし、推測で正常・異常を決めない。
最後に「確認できた事実」「要確認」「集計に使わない行」「再現手順」の4区分で出力してください。
このプロンプトで改善した点
最も重要なのは、AIへ最終判断を丸投げしていない点です。どの列を数値として扱ったか、どの計算式を使ったか、どの行を除外したかを出させることで、人が追跡できる形になります。
また、「異常を探して」だけでは基準が曖昧です。負数が返品を意味するデータなら、負の数量は正常かもしれません。そこで今回のプロンプトは、業務ルールが与えられていない項目を未確定に残します。判断を止めることも、監査では大切な結果です。
実データで使う前の注意点
- 氏名、住所、メールアドレス、注文番号などは、必要性を確認して匿名化する。
- 複数の表や空行が混在するファイルは、1行1レコードの形へ整理する。
- AIが生成した計算コード、除外条件、丸め方法を確認する。
- 会計・税務・契約判断には使わず、担当者や正式なシステムの結果と照合する。
OpenAIの公式案内でも、ChatGPTのデータ分析はCSVや表計算ファイル、Pythonによる計算に対応する一方、生成されたコード、出力、仮定を確認するよう説明されています。対応形式やアップロード上限はプランや設定で変わるため、画面上の最新表示も確認してください。
関連資料:Excelでデータ検査を深める
CSV監査の考え方をExcelでも反復したい人向けに、関数・集計・統計の基礎を扱う実務書を1冊だけ掲載します。購入しなくても、本記事の監査プロンプトはそのまま利用できます。
1冊目は統計・分析の基礎を広く確認したい人向け、2冊目は大量のExcelデータを整形・検査する実務へ寄せたい人向けです。
広告・アフィリエイトリンクを含みます。商品選定は記事内容との関連性を優先しています。
統計学の基礎から学ぶExcelデータ分析の全知識 改訂2版(できるビジネス) [ 三好大悟 ]
数万件の汚いエクセルデータに困っている人のための Excel多量データクレンジング 【電子書籍】[ 村田吉徳 ]
まとめ:AIの答えより検査手順を再利用する
このプロンプトの価値は、AIに「正解を出させる」ことではありません。再計算、例外、照合という順番を固定し、間違った場合でも原因を探せるようにすることです。
まずは個人情報を含まない小さなCSVへ、答えが分かっている異常を数件入れて試してください。すべて見つからなければ、実データへ進まず、検査条件を追加するのが安全です。
参考情報
- OpenAI:Data analysis with ChatGPT
- OpenAI:File Uploads FAQ
- OpenAI:Data Usage for Consumer Services FAQ
本記事はAIを活用して構成し、記載したテストデータと検証スクリプトで結果を照合しました。AIの出力は利用環境やモデルにより変わるため、重要な集計は元データと正式な計算手段で再確認してください。

