AIのデータ分析プロンプト4本:集計表の計算を行数別に検算

AI のデータ分析プロンプトを 4 本用意し、GA4 公開サンプルの 10 行・31 行・92 行の表で合計・購入率・増減率を答えさせました。正解と突き合わせると 36 回とも一致し、ずれは出ませんでした。検算しやすい頼み方と定義の注意点も紹介します。

18分で読めます Data
罫線の表から AI の答えのカードと電卓のカードへ矢印が伸び、2 つが等号で結ばれて、集計表の計算を検算するイメージ
この記事は AI が下書きを補助し、運営者が内容を確認して公開しています。

表計算ソフトや GA4 から書き出した集計表を AI のチャットに貼り、「合計と前月比を出して」と頼んでいる方向けの、AI データ分析のプロンプト集です。扱うのは集計表の計算(合計・割合・増減率)に絞ったプロンプトで、グラフ作りや仮説出しのプロンプトは含みません。表の行数を 10・31・92 行の 3 通り、頼み方を 4 通りに変えて AI に計算させ、答えを正解と突き合わせました。

読み終わると、そのまま使えるプロンプト 4 本と、AI の計算を自分で確かめる検算の手順が分かります。

この記事で分かること

  • 集計表の合計・購入率・増減率を AI に頼む時の、そのまま使えるプロンプト 4 本(計算に絞ったもの)
  • 行数 3 通り × 頼み方 4 通りの 12 通りで、AI の答えが正解とどれだけ合ったか
  • 「購入率」「前半と後半」の定義が違うと値がどれだけ動くかと、検算の手順

ざっくり結論:今回は 36 回とも正解と一致した

先に結果を書きます。今回の条件では、12 通りを各 3 回、計 36 回試し、5 項目(3 つの合計・購入率・増減率)はすべて正解と一致しました。ずれは 1 回も出ませんでした。

ただし、指定した AI は claude-sonnet-5-5 だけ、くり返しは各 3 回だけで、「いつでも信用してよい」とは言えません。別にはっきりしたのは、前半と後半の分け方しだいで増減率が数十ポイント動くことです(筆者が同じ表で計算)。

使うデータ:公開サンプルから作った 10 行・31 行・92 行の表

使ったのは、Google が公開している GA4 のサンプルデータ(ga4_obfuscated_sample_ecommerce)です。Google の商品を売るオンラインストアの、2020 年 11 月 1 日から 2021 年 1 月 31 日までの 3 か月分が入っています(Google for Developers の説明)。BigQuery(Google のデータ分析用のデータベース)の無料枠で問い合わせができ、読者の方も同じ表を作れます。

セッション(サイトへの 1 回の訪問のまとまり)は、session_start イベントで始まり、セッション ID が付きます(GA4 のセッションの説明)。今回はこの ID の重複を除いて数えたので、推定で数える GA4 の画面の数字とは一致するとは限りません。売上は、購入イベントにだけ入る purchase_revenue の合計です(BigQuery Export のスキーマ)。スキーマではこの値を現地通貨で表すとされており、円の金額ではありません。

日別の表は、筆者が次の SQL を実行して作りました。BigQuery のコンソール(ブラウザで SQL を実行する画面)に貼って実行すると、92 行(92 日分)の表が出ます。

SELECT
  PARSE_DATE('%Y%m%d', event_date) AS d,
  COUNT(DISTINCT IF(
    event_name = 'session_start',
    CONCAT(
      user_pseudo_id, '-',
      CAST((SELECT value.int_value FROM UNNEST(event_params)
            WHERE key = 'ga_session_id') AS STRING)
    ),
    NULL
  )) AS sessions,
  COUNTIF(event_name = 'purchase') AS purchases,
  ROUND(SUM(IF(event_name = 'purchase',
    IFNULL(ecommerce.purchase_revenue, 0), 0)), 2) AS revenue
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
GROUP BY d
ORDER BY d

この 92 行の先頭 10 行と 31 行も切り出し、3 つの表にしました。表から計算した正解は次のとおりです。

行数(期間)セッション合計購入合計売上合計購入率売上の増減率
10 行(11/1〜11/10)34,27442128,7881.23%+23.79%
31 行(11/1〜12/1)111,4622,161150,5181.94%+114.76%
92 行(11/1〜1/31)354,8575,692362,1651.60%−63.25%

購入率は「購入合計 ÷ セッション合計」、売上の増減率は「後半の売上合計 ÷ 前半の売上合計 − 1」です。前半と後半の分け方は、10 行が 1〜5 行目と 6〜10 行目、92 行が 1〜46 行目と 47〜92 行目です。31 行は半分に割り切れないので、16 行目を除いて 1〜15 行目と 17〜31 行目にしました。

データ分析のプロンプト 4 本(そのまま使える文面)

4 本とも共通部分は同じで、最後の 1 文だけを変えました。「(ここに表を貼る)」に表を貼ります。

次の表は、あるネットショップの日別の
セッション数(sessions)、購入数(purchases)、売上(revenue)です。

(ここに表を貼る)

知りたいのは次の5つです。
1. セッション数の合計
2. 購入数の合計
3. 売上の合計
4. 購入率
   (購入数の合計 ÷ セッション数の合計、%、小数第2位まで)
5. 売上の増減率
   (後半の売上合計が前半の売上合計から何%増減したか、
   %、小数第2位まで)。
   前半は1〜5行目、後半は6〜10行目とします。

検証では売上に単位の「円」を書いて渡しましたが、データの通貨は円ではないため、この記事の文面では外しています。前半・後半の行番号は表に合わせて書き換え、この後に次の 4 通りのどれか 1 文を付けます。

プロンプト 1:結論だけ頼む

結論の数字だけを、項目名と値の一覧で答えてください。

プロンプト 2:途中の式を書かせる

途中の計算式を書きながら計算し、
最後に5つの答えを一覧にしてください。

プロンプト 3:行ごとの累計(小計)を出させる

まず表の1行ごとに、その行までの
セッション数・購入数・売上の累計(小計)を書き出してください。
その累計の最後の値を使って、5つの答えを一覧にしてください。

プロンプト 4:計算は SQL で返させる

計算は自分で実行せず、答えを出すSQLだけを書いてください。
表は t という名前のテーブルに入っている前提です。
(列は d, sessions, purchases, revenue。
d は日付の文字列で、日付順に並んでいる)
SQLite でも動く標準的な SELECT 文を1本だけ、
sql のコードブロックで返してください。
結果の列名は次のとおりにしてください。
sessions_total, purchases_total, revenue_total,
purchase_rate_pct, revenue_change_pct

SQL(データベースに計算を頼むための言葉)を書かない方は、プロンプト 4 を飛ばしてもかまいません。記事の文面は、読みやすいように検証で渡した文面へ改行を入れ、プロンプト 4 は文の区切りを変えています。頼んでいる内容は同じです。4 本の違いは図 1 にまとめました。

4 本のプロンプトを、頼む内容・答えの形・自分で確かめられることの 3 段で横に並べ、右へ行くほど検算の手がかりが増えることを示した比較図

AI の答えと正解を突き合わせる(12 通りの検算結果)

試した条件

2026-11-11 に、claude-sonnet-5-5 を使いました。呼び出しは Claude Code(Anthropic のコマンドで動く AI 開発ツール)の claude -p(チャット画面を開かず、コマンドから 1 回だけ質問する使い方)です。AI が計算用のプログラムを動かせない「道具なし」の設定にしたので、AI は暗算と同じように文字だけで計算しています。

12 通り × 各 3 回 = 36 回、毎回新しい会話で質問し、答えの中に 5 項目の正解の値があるかを探しました。プロンプト 4 は、返ってきた SQL を筆者が同じ表(SQLite という手元で動く小さなデータベース)で実行しました。

結果:12 通りすべてで 15 項目が一致した

1 通りの満点は 5 項目 × 3 回 = 15 項目です。次の表のとおり、12 通りすべてが満点でした。

行数結論だけ頼む途中の式を書かせる行ごとの累計を出させる計算を SQL で返させる
10 行15 / 1515 / 1515 / 1515 / 15
31 行15 / 1515 / 1515 / 1515 / 15
92 行15 / 1515 / 1515 / 1515 / 15
今回の条件では、92 行の表まで、どの頼み方でも 5 項目すべてが正解と一致しました。

ただし性質が違う結果が混ざっています。左の 3 列(27 回)は AI が道具なしで計算した答え、右の 1 列(9 回)は AI の SQL を筆者が実行した結果で、計算はデータベースが行っています。

AI の答えの実例

92 行の表に「結論だけ頼む」と頼んだ 1 回目の答えです(抜粋)。答えの中の「円」は、検証で質問に付けた単位をそのまま使ったもので、データの通貨ではありません。

- セッション数の合計: 354,857
- 購入数の合計: 5,692
- 売上の合計: 362,165 円
- 購入率: 1.60%
- 売上の増減率: -63.25%
  - 前半(1〜46行目、2020-11-01〜12-16)の
    売上合計は 264,835 円です。
  - 後半(47〜92行目、2020-12-17〜2021-01-31)の
    売上合計は 97,330 円です。

(Bashが使えなかったため、計算ツールは使わず手計算で出しました。
前半と後半の合計が全体と一致することは確認しています。)

最後の文の Bash は、AI がプログラムを動かして計算するための道具のことです。今回は道具なしの設定なので使えず、AI は手計算したと答えています。読みやすいように、長い行だけ途中で改行しました。

AI は前半と後半の合計が全体に戻ることを自分で確かめていました。正解と並べます。

項目AI の答え正解一致
セッション合計354,857354,857一致
購入合計5,6925,692一致
売上合計362,165362,165一致
購入率1.60%1.60%一致
売上の増減率−63.25%−63.25%一致

「行ごとの累計を出させる」の 92 行では、累計表を 92 行すべて書き出した回を SQL の累計と行ごとに比べ、不一致は 0 行でした。

プロンプト 4 では、10・31・92 行のどれでも、3 回とも SELECT 文が 1 本返ってきました。92 行の 1 回目の SQL から、増減率の部分を抜粋します。

  ROUND(
    100.0 * (
      SUM(CASE WHEN rn > 46 THEN revenue ELSE 0 END)
      - SUM(CASE WHEN rn <= 46 THEN revenue ELSE 0 END)
    ) / SUM(CASE WHEN rn <= 46 THEN revenue ELSE 0 END),
    2
  ) AS revenue_change_pct
FROM (
  SELECT sessions, purchases, revenue,
    ROW_NUMBER() OVER (ORDER BY d) AS rn
  FROM t
) AS x;

ROW_NUMBER(並び順に 1 から番号を振る機能)で行番号を付け、46 行目までを前半としています。筆者が SQLite で実行すると、354,857・5,692・362,165・1.6・−63.25 が返り、正解と一致しました。

行数と頼み方で、ずれは出たか

図 2 のとおり、12 マスのどれも「一致」で、ずれが出始める行数や頼み方は見つかりませんでした。

行数 3 通りと頼み方 4 通りの 12 マスの対応表。12 マスすべてが一致 15/15 で、SQL で返させた列だけ計算を機械が行ったと区別している

そのため「何行まで信用してよいか」の境目は示せません。言えるのは、次の条件で 92 行まではずれが出なかった、までです。

確かめたこと確かめていないこと
claude-sonnet-5-5、道具なし、各 3 回他社の AI、チャット画面の通常の設定
92 行までの表もっと長い表、桁区切り・空欄が混ざった表
5 項目の値が答えに含まれるか途中の式の細かい誤り(全件は読んでいない)
実行の記録に出たモデル名各回の答えをどのモデルが書いたか(同じ実行の記録に、別のモデル claude-fable-5-2 の名前が混ざる回があった)

試した環境では筆者の個人設定(AI への共通の指示)が読み込まれ、答えの最後に「次の一手」などの付け足しの欄が出ました。この点も、素のチャットとは違う条件です。

AI は表の中の違和感にも気づいた

92 行の表では、2021 年 1 月 26 日以降、購入は 1 日 19〜69 件あるのに、売上は 1,259 から 0 まで下がっています。92 行の表に質問した 12 回のうち 7 回で、AI は数字の答えとは別の欄で、この点を指摘しました。たとえば「1/26 以降は、購入数が50前後あるのに売上が 128 円や 190 円しかありません」です(「円」は質問に付けた単位をそのまま使ったもので、データの通貨ではありません)。

ただし、指摘はほぼすべて、答えの最後の「気づいた点」「次の一手」の欄に書かれていました。この欄は、上で書いた個人設定が答えの最後に付けさせたものです。個人設定のない素のチャットでも同じように指摘するかは、今回は確かめていません。

原因は確認できていません。公開サンプルは難読化(元の値が分からないように加工すること)されていて、内部の整合性が少し崩れる場合があると説明されています(Google for Developers の説明)。

ずれに気づける頼み方:式や SQL で返させて自分で検算する

今回はずれが出なかったので、「どの頼み方ならずれに気づけたか」は測れていません。答えの中の手がかりで比べると(図 1)、結論だけの答えは別に正解を出さないと確かめられません。

式なら分母・分子の取り違えに、累計の表ならずれた行に気づけます。SQL なら、実行すれば計算は機械が行います。

大事な数字は、AI に SQL か式を書かせ、計算そのものは自分の手元で実行して確かめるのが確実だと考えられます。暗算の答えは、合っていても毎回合う保証がないからです。

検算の流れは図 3 のとおりです。

表を作る、AI に質問する、答えを記録する、同じ値を自分で計算する、差を比べるの 5 段階を上から下へ矢印でつなぎ、ずれたら質問を直す戻り矢印を付けた検算の手順図

  1. 表計算ソフトや BigQuery から、日別の表を書き出す
  2. 共通部分のプロンプトで、式と前半・後半の分け方を文で指定して質問する
  3. 質問文・答え・使った AI の名前・日付を記録する
  4. 同じ値を、SQL か表計算ソフトの関数(SUM など)で自分で出す
  5. 5 項目を並べ、ずれた項目と差を書く

SQL を書かない方は、手順 4 を表計算ソフトの SUM と割り算で行えます。「計算は表計算ソフトの式で返して」と頼む形は、今回は試していません。

AI に SQL を書かせる場合の誤りの出方は、AI に書かせた GA4 の BigQuery SQL を 3 問で検算した記事 で扱っています。書かせた SQL を AI 自身に見直させる方法は、AI に GA4 の SQL をレビューさせるプロンプト 4 本 にまとめました。

つまずきやすい点:割合の平均と全体の割合、前半と後半の決め方

「購入率」が 2 通りに読める

購入率には、全体の購入数を全体のセッション数で割る「全体の割合」と、日ごとの購入率を平均する「割合の平均」があります。筆者が同じ表から計算した差は次のとおりです。

行数全体の購入率(今回の正解)日ごとの購入率の平均差
10 行1.23%1.25%+0.02 ポイント
31 行1.94%1.89%−0.05 ポイント
92 行1.60%1.53%−0.07 ポイント

今回はプロンプトで式を書いて渡したので、36 回とも全体の割合でした。「購入率を出して」とだけ頼み、定義を AI に任せた場合にどちらになるかは、今回は試していません。定義が違えば値が上の表だけ動くので、式は文で書いておくと安心です。

前半と後半の分け方で、増減率は 32 ポイント動く

31 行の表は半分に割り切れません。16 行目(2020-11-16)をどちらに入れるかで、増減率は図 4 のように変わります(筆者が同じ表から計算)。

31 行の表で 16 行目を前半に入れる、除く、後半に入れるの 3 通りの売上の増減率を比べた横棒グラフ。93.62% から 125.68% まで約 32 ポイントの幅がある

分け方前半の売上後半の売上増減率
16 行目を前半に入れる(1〜16 / 17〜31 行目)51,26399,255+93.62%
16 行目を除く(1〜15 / 17〜31 行目、今回の指定)46,21799,255+114.76%
16 行目を後半に入れる(1〜15 / 16〜31 行目)46,217104,301+125.68%

AI の計算が正しくても、前半と後半の分け方が違えば、増減率は数十ポイント変わります。プロンプトでは、行番号と式を文で指定してください。分け方を AI に任せた場合にどう分けるかは、今回は試していません。

桁区切りや空欄の読み違いは、今回は確かめていない

今回の表は半角の数字だけで、空欄もありませんでした。コピーした表に「3,682」のような桁区切りや空欄が混ざると、CSV(カンマで列を区切った文字の表)では列の区切りと見分けにくくなります。こうした表で AI が読み違えるかは、今回は確かめていません。

AI にレポートの文章まで書かせる時の誤りは、AI に GA4 月次レポートを書かせて検算したプロンプト集 で扱っています。

まとめ

  • 今回の条件(claude-sonnet-5-5、道具なし、各 3 回)では、10・31・92 行のどの表でも、4 本のどの頼み方でも、5 項目が正解と一致しました。ただし毎回合う保証ではなく、他社の AI や長い表は確かめていません。
  • 計算ミスは出ませんでしたが、定義の違いだけで値は動きます。31 行の表では、前半・後半の分け方だけで増減率が 32 ポイント動きました(筆者が同じ表で計算)。だから行番号と式は文で指定します。
  • 検算しやすいのは、式や累計、SQL を返させる頼み方です。大事な数字は、同じ値を SQL か表計算ソフトの関数で出して並べます。

次にやること

検算した数字の見せ方は、ダッシュボードの一覧で、公開データから作った例をご覧ください。AI に書かせた集計の SQL が定義どおりか、第三者の目で確かめたい場合は、BigQuery SQL レビューパックもご利用いただけます。

参考にした一次情報