ChatGPTに「売上を集計する数式を作って」とだけ頼んでも、それらしい数式は返ってきます。ただ、そのまま使うと次のようなずれが起きがちです。

  • 参照している列の位置が違う
  • 使っているExcelにない関数が入っている
  • 空白のセルでエラーになる

原因の多くは、ChatGPTがあなたのシートを見ていないことです。

この記事では、数式を頼むときに渡す情報と依頼文の型を紹介します。そのうえで、返ってきた数式を少ない件数のテストデータで検算し、本番のシートに入れるまでの手順をまとめます。

数式を頼む前にそろえる5つの情報

渡す情報 書く内容の例 抜けると起きやすいこと
シート構成 「明細」シートは1行目が見出しで、データは2行目から。結果は「集計」シートに出す 参照するシート名やセル範囲が違う
列名と列の位置 A:日付、B:取引先コード、C:品名、D:数量、E:単価 別の列を参照する数式が返る
データ例 3〜5行分。空白や例外の行も1つ入れる 文字列の数字や日付の形式を想定外に扱う
期待する結果 「この入力ならこの値になる」という具体的な答え 「合計」の意味(全件か、条件付きか)がずれる
Excelのバージョン Microsoft 365、Excel 2019、Web版など そのバージョンで使えない関数が入る

Excelのバージョンは、デスクトップ版なら「ファイル」→「アカウント」に出る製品情報で確認できます。分からないときは「XLOOKUPなどの新しい関数が使えるか分からないので、使えない場合の書き方も示してください」と書き添えておくと安全です。

5つのうち、いちばん効くのは期待する結果です。「取引先ごとの合計」と書くよりも、「B列がK001の行について、D×Eを合計する。例のデータなら3,000になる」と書くほうが、意図の取り違えがずっと減ります。

依頼文の型

Excelの数式を作ってください。

【環境】
Microsoft 365のExcel(デスクトップ版、Windows)

【シート構成】
・「明細」シート:1行目が見出し、2行目からデータ。行は毎月増える(現在およそ500行)
・「集計」シート:A列に取引先コード、B列に合計金額を出したい

【明細シートの列】
A:日付(日付型) B:取引先コード(文字列。例 K001) C:品名 D:数量(数値) E:単価(数値)

【データ例】
2026/09/01, K001, ペン, 10, 100
2026/09/03, K002, ノート, 5, 300
2026/09/10, K001, 封筒, 20, 100
2026/09/15, (空白), 付箋, 3, 200

【やりたいこと】
「集計」シートのB2に、A2の取引先コードと一致する行の「数量×単価」の合計を出す。

【期待する結果】
A2がK001なら 10×100 + 20×100 = 3,000
A2がK999(明細にない)なら 0
取引先コードが空白の行は集計に含めない

【条件】
・下の行へコピーして使う
・作業列は使わず、1つの数式で
・数式の各部分が何をしているか、短く説明してください

この型で押さえているポイントは次の4つです。

  • コピーする方向を書く:「下へコピーする」と書くと、$による固定(絶対参照)が適切に付きやすくなる
  • 行が増えるかどうかを書く:範囲を固定の500行にするか、列全体やテーブルにするかの判断材料になる
  • 該当なし・空白のときの期待値を書く:エラーへの対処が最初から入る
  • 説明を求める:返ってきた数式を自分で読めるようになり、検算の当たりを付けやすい

実データをそのまま貼る必要はありません。顧客名や金額は、構造が同じダミーに置き換えて渡せば十分です。

返ってきた数式をまず読む

セルに貼り付ける前に、次の点だけは目で確かめます。

  1. シート名と列が依頼どおりか:たとえば取引先コードの条件が、明細シートのB列を見ているか
  2. 範囲の大きさがそろっているか:SUMIFSやSUMPRODUCTで、条件の範囲と合計の範囲の行数が違うと、エラーや誤った集計になる
  3. $の付き方:下へコピーする数式なら、明細側の範囲は固定され、集計側のA2は行に合わせて動く形になっているか
  4. 自分のExcelにある関数か:知らない関数は、セルに「=関数名(」まで入力して候補に出るかを見る
  5. 引数の区切り文字:日本語環境のExcelでは通常カンマで区切る。セミコロンで返ってきたら、別の地域設定が前提になっていないか聞き直す

説明と数式の中身が食い違っていることもあります。説明はあくまで「こう動くはず」という主張なので、実際の動きは次の検算で確かめます。

検算用のテストデータを作る

本番の明細にいきなり入れるのは避けます。新しいシートに5〜10行ほどの小さな表を作り、正解を手計算で出しておきます。行数が少なければ、電卓や暗算で正解を確かめられます。

表には、次のような行を入れておきます。

種類 例 確かめること
ふつうの行 K001、10個、100円 基本の計算が合うか
同じキーが複数 K001が2行 すべて合算されるか、1件目しか拾わないか
該当なし 集計側にK999 0になるか、#N/Aになるか(どちらを期待したか)
空白 取引先コードが空白の行 除外されるか、誤って一致しないか
0 数量0 0として計算されるか
文字列の数字 数量が文字列として入った「10」 関数によって計算に含まれたり無視されたりする。どちらになるか
境界値 「1万円以上」が条件なら、ちょうど10,000と9,999 以上・超・以下・未満を取り違えていないか
日付の境界 月末・月初、時刻付きの日付 期間の条件から漏れないか
表記の違い 「K001」と末尾に空白の付いた「K001 」、全角と半角 一致してほしいものが一致しないケースを知っておく

すべての行が期待どおりになる必要はありません。たとえば末尾に空白がある行を拾わないのは、数式としては正しい動きです。大事なのは、どの入力でどう動くかを本番の前に知っておくことです。そうした行も拾ってほしいなら、その行と期待値を添えて、ChatGPTに直してもらいます。

直してもらうときの伝え方

検算で合わなかったときは「動きません」とだけ書かず、入力と結果をセットで伝えます。

次の入力で、期待と違う結果になりました。
・入力:A2=K001、明細にK001の行が2行(10×100、20×100)
・期待:3,000
・実際:1,000
・入れた数式:(実際にセルに入れた数式を貼る)
1件目しか拾っていないように見えます。全件を合計する形に直してください。

エラー値(#N/A、#VALUE!、#NAME?、#SPILL!など)が出た場合は、その表示もそのまま書きます。#NAME?は、関数名の綴りの誤りや、そのバージョンにない関数が原因のことが多いエラーです。Excelのバージョンを改めて伝えると、話が早く進みます。

本番のシートに入れる手順

  1. 本番ファイルのコピーを作るか、作業の前に保存しておく
  2. 1つのセルに数式を入れ、答えが分かっている1件と比べる
  3. 下(または右)へコピーし、別の数件も抜き出して照合する
  4. 全体の合計や件数を、ピボットテーブルやフィルターなど別の方法で出した値と比べる
  5. エラー値が残っていないか、フィルターや検索で確かめる
  6. 数式の前提を、セルのメモや別のシートに1〜2行で残す(作った日、前提にしたシート構成、該当なしのときの動き)

手順4は省かれがちですが、数式が全体として合っているかを確かめる最後の手段です。たとえば「明細の金額の総額」と「集計シートの合計列の総額」が一致するかを見るだけでも、多くの誤りが見つかります。

使い続けるときの注意

  • 明細に列を挿入・削除したり、シート名を変えたりすると、数式の前提が変わります。構成を変えたら、手元のテストデータでもう一度確かめる
  • 行が増えていく表は、範囲が足りているかを定期的に確かめる。表をテーブルにしておくと、範囲の広げ忘れを気にする場面が減る
  • 中身が分からない数式を使い続けない。説明を読んでも分からない箇所は、その部分だけを取り出して「この部分は何をしているか」と聞き直す

ChatGPTは、数式の下書きを速く作るのに向いています。ただ、そのシートで正しく動くかまでは保証しません。渡す情報を具体的にし、正解が分かっている少ない件数のデータで確かめてから使えば、手戻りは大きく減ります。

おすすめの記事