仕事術

AIでExcel・CSVを分析する前処理と確認手順

ExcelやCSVを生成AIで分析する前に、列名、1行1レコード、欠損、単位、個人情報を整え、集計結果と計算方法を確認する具体的な手順を解説します。

公開日
最終検証
次回確認
確信度
HIGH
生成AIExcelCSVデータ分析
表データがグラフと確認済みの分析へ変わるカラフルなイラスト

この記事で分かること

  • Excel・CSVをAIへ渡す前に整える表の形
  • 欠損、単位、分母、集計粒度を先に決める方法
  • AIへ計算方法まで示させる分析依頼プロンプト
  • 表計算ソフトで集計結果を再計算する方法

注意: 顧客名、メールアドレス、社員番号、自由記述などを含むファイルは、そのまま外部サービスへアップロードしないでください。組織の利用規程とサービスのデータ取扱条件を確認し、必要なら削除、仮名化、集計化します。

先に結論

AI分析で最初に整えるべきものはグラフではなく、元データです。列名を明確にし、1行を1レコードに統一し、欠損、単位、分母、集計単位を定義します。

分析後は、AIに使った列、除外条件、計算式、対象件数を出させます。そのうえで、代表的な集計をExcelなどで再計算します。答えがもっともらしいかではなく、同じ条件で再現できるかを確認してください。

表データを前処理してAI分析を検算する流れ 表の構造と定義を固定してから集計し、最後に別の方法で再計算する流れを示している。

手順1:分析したい問いを1つに絞る

「売上を分析して」では、AIが都合のよい指標やグラフを選ぶ余地が大きくなります。最初は、次のように対象、指標、比較軸、期間を決めます。

  • 2026年4〜6月の売上金額を地域別に比較する
  • 問い合わせ件数に占める解決件数の割合を月別に確認する
  • 商品別の返品率を比較し、母数が30件未満の商品を分けて表示する

「売上」が受注額、出荷額、請求額、入金額のどれかも定義します。同じ言葉でも社内で計算方法が異なる場合は、正本となる定義書を確認してください。

手順2:悪いCSVの構造を見つける

人には読みやすくても、分析に向かない表があります。

2026年度 東日本売上表
単位:万円,,,
地域,4月,5月,6月
東日本,120,95,集計中
西日本,80,,110
合計,200,95,110
注:返品分は担当者が後日調整,,,

問題点は次のとおりです。

  • タイトル、単位、注記、明細、合計が同じ表にある
  • 月が列方向に広がり、新しい月のたびに列が増える
  • 「集計中」と空欄の意味が違うのに、同じ欠損として扱われやすい
  • 合計行があり、AIが明細と一緒に再合計する可能性がある
  • 金額が売上総額か返品控除後か分からない

結合セル、色だけで意味を表すセル、非表示行、複数の表を1シートに置く構成も避けます。

手順3:1行1レコードの良いCSVへ直す

先ほどの表を、分析用に縦長へ直すと次のようになります。

record_id,month,region,sales_man_yen,status,include_in_total
R001,2026-04,東日本,120,確定,TRUE
R002,2026-05,東日本,95,確定,TRUE
R003,2026-06,東日本,,集計中,FALSE
R004,2026-04,西日本,80,確定,TRUE
R005,2026-05,西日本,,未提出,FALSE
R006,2026-06,西日本,110,確定,TRUE

この例では、1行が「1地域・1か月」の記録です。列名に単位を含め、欠損理由を status へ分け、集計対象かどうかを include_in_total で明示しています。合計行は置かず、分析時に計算します。

実際の売上が円単位なら、整数の円で統一する方が安全です。万円と円、税込と税抜、件と千件などが混ざる場合は、変換後の列を作り、変換式を記録します。

手順4:欠損の意味を決める

空欄を自動的に0へ置き換えてはいけません。

状態 意味 一般的な扱いの例
0 実績がゼロと確認済み 集計へ含める
空欄・未提出 値がまだない 分母・合計から除外し件数を報告
集計中 後で確定する 暫定集計から除外
該当なし その項目自体が適用されない 指標定義に従い除外
エラー 形式不正や取得失敗 修正するまで集計しない

例えば平均売上を計算するとき、未提出を0にすると平均が不当に下がります。一方、実績ゼロを除外すると平均が上がります。欠損処理は分析後の修正ではなく、分析前のルールです。

自由記述の「なし」「-」「N/A」「未確認」も、意味を確認して統一します。元データを直接上書きせず、分析用コピーに変換列を追加すると変更を追跡できます。

手順5:データ辞書を作る

AIにはCSVだけでなく、各列の意味を渡します。

データ辞書
- record_id:行を識別する一意のID
- month:対象月。YYYY-MM形式
- region:営業地域
- sales_man_yen:返品控除後・税抜の確定売上。単位は万円
- status:確定/集計中/未提出
- include_in_total:確定値として集計可能ならTRUE

集計ルール
- include_in_total=TRUEの行だけを金額集計する
- 欠損値を0へ置換しない
- 地域別合計とともに、対象行数・除外行数を示す
- 期間は2026-04から2026-06まで

ここで「返品控除後」「税抜」のような定義が不明なら、分析を始めずデータ所有者へ確認します。

手順6:AIへ集計を依頼する

次のプロンプトは、結論だけでなく再現情報を出させるためのものです。

添付CSVを、以下のデータ辞書と集計ルールに従って分析してください。

目的:2026年4〜6月の確定売上を地域別に比較する。

必須の出力:
1. 読み込んだ行数、列名、期間の最小値・最大値
2. 列ごとの欠損数とstatus別件数
3. 適用した除外条件
4. 地域別の売上合計、対象行数、除外行数
5. 計算式または使用した処理手順
6. 元データのrecord_idで追跡できる集計対象一覧
7. 解釈上の注意点

禁止事項:
- 欠損を0と仮定しない
- 単位を推測しない
- 対象件数が少ない結果を一般化しない
- データにない原因を断定しない

計算前に、理解した列定義と集計条件を短く再掲してください。

成功の目安は、分析開始前にAIが対象期間、集計列、除外条件を正しく言い直し、結果に対象件数と除外件数が付くことです。列名を取り違えていたら、その時点で止めて修正します。

ChatGPTで実行する場合の確認順

ChatGPTは、対応するCSVや表計算ファイルを読み込み、表やグラフを作成できます。一部の分析ではPythonコードを生成し、実行します。ただし、アップロードできたことだけでは、全行を意図どおり解釈した証明になりません。最初の依頼では傾向や原因を求めず、行数・列数・列名・推定データ型・先頭数行だけを出させます。続いて、列ごとの欠損数、主キー候補の重複数、カテゴリ値の種類、日付の最小値と最大値を確認してから集計へ進みます。

集計後は、実際に使った抽出条件、型変換、グループ化、構成比の分母、対象件数と除外件数を示すよう依頼します。コードが表示される場合も、説明を読むだけで終えず、抽出後の代表行と既知の小計を表計算ソフトで再計算します。OpenAIの公式説明では、データ分析用のPython環境は外部WebリクエストやAPI呼び出しを行えません。外部の最新値が必要な場合は、利用権限を確認したファイルをアップロードするか、アカウントで利用可能な接続元を明示的に選びます。

手順7:表計算ソフトで再計算する

良いCSVのサンプルをExcelへ読み込んだとします。列がA〜Fで、region がC列、sales_man_yen がD列、include_in_total がF列なら、東日本の確定売上は次の式で確認できます。

=SUMIFS($D$2:$D$7,$C$2:$C$7,"東日本",$F$2:$F$7,TRUE)

対象行数は次の式です。

=COUNTIFS($C$2:$C$7,"東日本",$F$2:$F$7,TRUE)

サンプルでは東日本の対象はR001とR002なので、合計は215万円、対象行数は2、除外行数は1です。これは記事内の例示データから得られる確認値であり、実在の事業データの実測値ではありません。

結果が一致しない場合は、次の順に確認します。

  1. AIとExcelで対象行が同じか
  2. TRUEが真偽値ではなく文字列になっていないか
  3. 金額列に文字や異なる単位が混ざっていないか
  4. 期間の端を含むか
  5. 欠損や重複行の扱いが同じか
  6. 丸める前と後のどちらを合計したか

ピボットテーブルも便利ですが、フィルター条件が見えにくくなることがあります。検算では、対象行を絞り込んだ画面と計算式を一緒に保存します。

手順8:グラフより先に分母を確認する

割合を比較するときは、分子だけでなく分母を表へ出します。

例えば返品率なら、返品件数 ÷ 出荷件数 なのか、返品数量 ÷ 販売数量 なのかで意味が変わります。キャンセルを分母へ含むか、同月返品か購入月基準かも決めます。

グラフには、指標名、期間、単位、分母、除外条件を添えます。差が大きく見えても、対象件数が少ない場合は「傾向」と断定しません。

期待結果と確認方法

分析完了時に、次の5点が残っていれば再現性を確認しやすくなります。

  • 入力したCSVの版または保存日時
  • データ辞書と欠損ルール
  • AIへ渡したプロンプト
  • 使用した計算・除外条件
  • Excelなどによる検算結果

別の担当者が同じCSVと条件を使い、同じ合計と対象件数を得られるか確認します。結果だけが一致しても、対象行が違えば偶然の一致かもしれないため、record_idも比較します。

失敗しやすい点と対処

合計行を明細へ混ぜる

AIが明細と合計を再合計する可能性があります。分析用CSVから小計・合計行を外します。

欠損を自動で0にする

未提出と実績ゼロを分け、欠損数も結果へ出します。

日付が文字列になっている

2026/7/1、7月、Julyが混ざらないよう、ISO形式などへ統一します。変換後に最小日と最大日を確認します。

AIの説明だけを検算とみなす

AIが自分の計算を説明しても、独立した検算ではありません。表計算ソフト、SQL、別担当者の手計算など、別の経路で代表値を確認します。

グラフから原因を断定する

売上低下と問い合わせ増加が同時に起きても、因果関係は確定しません。「関連が見える」「追加検証が必要」と事実と仮説を分けます。

利用条件と採用しない条件

ファイルアップロード機能、対応形式、容量、回数は、サービス、プラン、モデル、組織設定によって変わります。アップロードできない場合は、上限回避のために機密ファイルを別サービスへ移すのではなく、承認された方法を確認してください。

データの定義が不明、個人情報を安全に除けない、欠損が多すぎる、正本を特定できない場合は、AI分析を採用しません。まずデータ所有者と前処理ルールを決めます。

AI活用ナビの判断

AI活用ナビの判断: AIは、欠損の一覧化、集計コードの作成、複数の切り口の探索に向いています。しかし、分母、単位、対象期間、除外条件を決める責任は利用者にあります。重要な判断へ使う集計は、対象行IDと計算方法を残し、別手段で再計算できる場合に限って採用するのが安全です。

確認日と公式情報

2026年7月29日に確認しました。

  • OpenAI「Data analysis with ChatGPT」:明確な列名、1行1レコード、空行や複数表を避ける準備、計算コード・出力・仮定を確認する必要性を確認しました。対応形式はモデル、プラン、ワークスペース設定等で変わると案内されています。
  • OpenAI「File Uploads FAQ」:ファイルアップロードの用途、保存・削除、データ利用、各種上限に関する案内を確認しました。数値上限は変更されやすいため、本記事では固定値を手順の前提にしていません。

この記事はChatGPTの画面上で利用できるファイル分析を含む一般的な手順です。APIキーやOpenAI APIは使用しません。

確認した一次情報

  1. Data analysis with ChatGPTOpenAI · 2026年8月22日
  2. File Uploads FAQOpenAI · 2026年8月22日