ChatGPT・ClaudeにExcel関数を作らせる方法|一発で使える数式が返ってくる頼み方と確かめ方

Excel×AIの業務効率化|公開 2026年10月23日

「この条件で合計したいけど、どの関数を使えばいいのか分からない」。Excelでよくあるこの悩みは、ChatGPTやClaudeなどの生成AIに聞くと、かなりの割合で解決します。

ただ、聞き方があいまいだと、自分の表では動かない数式が返ってきます。この記事では、そのまま使える数式が返ってきやすい頼み方と、返ってきた数式が正しいかの確かめ方をまとめます。

頼み方のテンプレート

AIは、あなたの表を見ていません。数式に必要な情報を文章で渡す必要があります。次の5つを入れると、ほぼそのまま使える数式が返ってきやすくなります。

  1. やりたいこと(何を出したいか)
  2. シート名と列(どのシートの何列に何が入っているか)
  3. データの例(1〜3行ほど)
  4. 数式を入れるセル
  5. Excelのバージョン(Microsoft 365か、2019などの古い版か)

これをまとめると、次のような形になります。そのままコピーして使ってください。

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

やりたいこと:
(例:担当者ごとの今月の売上合計を出したい)

表の構成:
・「売上」シートの A列:日付、B列:担当者名、F列:金額(2行目からデータ)
・「集計」シートの A1:担当者名、B1:その月の1日の日付

データの例:
2026/10/5 佐藤 … 7000

数式を入れるセル:「集計」シートの A2

Excelのバージョン:Microsoft 365

数式と、それぞれの部分が何をしているかの説明をお願いします。

5のバージョンが大事なのは、XLOOKUPやFILTERなど新しい関数は、古いExcelでは使えないからです。社内で古いExcelを使う人がいるなら「Excel 2016でも動く関数で」と書いておきましょう。

仕事でよく使う数式の例

ここからは、事務作業でよく出てくる場面と、正しく動く数式の例を紹介します。どれも筆者がサンプルデータで計算結果を確かめた数式です。AIに頼むときも、この形の答えが返ってくれば正解に近いと考えてください。

1. 商品コードから単価を引いてくる(INDEX+MATCH)

「売上」シートのC列に商品コード、「商品」シートのA列に商品コード、B列に単価があるとき、E2に単価を表示します。

=IFERROR(INDEX(商品!$B$2:$B$4,MATCH(C2,商品!$A$2:$A$4,0)),"未登録")

商品一覧にないコードのときは「未登録」と表示されます。金額のF列は、単価が数字のときだけ計算するようにしておくと、エラーが広がりません。

=IF(ISNUMBER(E2),D2*E2,"")

Microsoft 365なら =XLOOKUP(C2,商品!A:A,商品!B:B,"未登録") でも同じです。

2. 担当者別・月別の売上合計(SUMIFS)

「集計」シートのA1に担当者名、B1に月の1日(例:2026/10/1)を入れておき、その担当者のその月の売上合計を出します。

=SUMIFS(売上!$F$2:$F$100,売上!$B$2:$B$100,A1,売上!$A$2:$A$100,">="&B1,売上!$A$2:$A$100,"<="&EOMONTH(B1,0))

EOMONTH(B1,0) はB1の月の末日を返す関数です。「月初以上、月末以下」という2つの条件で、日付の範囲を絞っています。B1を11/1に変えるだけで、11月の合計に切り替わります。

3. 期限切れの件数を数える(COUNTIFS)

A4に基準日(今日の日付なら =TODAY())、B4:B8に期限日が並んでいるとき、期限を過ぎた件数を数えます。

=COUNTIFS(B4:B8,"<"&A4)

比較の記号("<")とセルを & でつなぐのがポイントです。AIに頼むときは「今日より前の日付の件数」と書けば、この形の数式になるはずです。

4. 氏名を姓と名に分ける(LEFT・MID・FIND)

A10に「山田 太郎」のように、全角スペースで区切った氏名が入っているとき、姓と名を分けます。

姓:=LEFT(A10,FIND(" ",A10)-1)
名:=MID(A10,FIND(" ",A10)+1,100)

よくある失敗は、スペースの全角・半角の違いです。名簿に半角スペースと全角スペースが混ざっていると、片方では動きません。AIに頼むときは「スペースは全角と半角が混ざっている」と伝えておくと、SUBSTITUTE でそろえてから分ける次のような数式を頼めます。

=LEFT(SUBSTITUTE(A11," "," "),FIND(" ",SUBSTITUTE(A11," "," "))-1)

5. ○営業日後の日付を出す(WORKDAY)

A12に開始日、C12:C13に祝日の一覧を入れておき、5営業日後の日付を出します。

=WORKDAY(A12,5,C12:C13)

たとえば開始日が2026年10月30日(金)で、11月3日(文化の日)を祝日に入れておくと、土日と祝日を飛ばして11月9日(月)になります。2つの日付の間の営業日数を数えるときは NETWORKDAYS を使います。

祝日の一覧は自分で用意する必要があります。AIに「2027年の日本の祝日一覧を表にして」と頼むこともできますが、祝日は必ず内閣府の発表などで確認してから使ってください。

返ってきた数式の確かめ方

AIの数式は、文法として正しくても、範囲がずれていたり、条件が1つ足りなかったりすることがあります。使う前に、次の3つを確かめる習慣をつけましょう。

小さなデータで手計算と比べる

3〜5行くらいのサンプルを作り、電卓や暗算で出した答えと数式の結果が合うかを確かめます。上の売上の例なら「佐藤さんの10月は 7,000円+1,200円=8,200円」と分かっている状態で、数式の結果が8,200になるかを見ます。

「ない場合」と「空欄」を試す

存在しないコード、空欄の行、0件のときに、エラーにならず意図した表示になるかを確かめます。実務で困るのは、たいていこの「例外」のほうです。

数式の意味を説明してもらう

分からない部分がある数式は、AIに「この数式を1つずつ分解して説明して」と頼みます。意味を理解しておけば、表の構成が変わったときに自分で直せます。

うまくいかないときの聞き直し方

返ってきた数式がエラーになったときは、エラーの表示と、そのときの値をそのまま伝えます。

さっきの数式をE2に入れたら「#N/A」になりました。
C2には「A001」と入っていて、商品シートのA2にも「A001」があります。
原因と直し方を教えてください。

「動きません」だけだと、AIも原因を推測するしかありません。エラーの種類(#N/A、#VALUE!、#NAME? など)と、実際のセルの値を書くと、的確な答えが返ってきやすくなります。ちなみに上の例のように、見た目は同じなのに一致しない場合は、数字と文字列の違いや、前後の余分なスペースが原因のことが多いです。

会社のデータを入れるときの注意

顧客名、売上金額、社員の個人情報など、社外に出してはいけないデータをそのままAIに貼り付けるのは避けましょう。数式を作ってもらうだけなら、本物のデータは不要です。「佐藤」「A001」のようなダミーの値で十分に伝わります。

会社によっては、生成AIの利用ルールが決まっていることもあります。業務で使う前に確認しておくと安心です。

まとめ

  • AIには「やりたいこと・シート名と列・データ例・入れるセル・Excelのバージョン」を渡す
  • 返ってきた数式は、小さなデータで手計算と比べ、「ない場合」「空欄」も試す
  • エラーのときは、エラーの種類とセルの値をそのまま伝えて聞き直す
  • 本物の社内データは貼らず、ダミーの値で頼む

関数の組み合わせに慣れてきたら、表の作り方そのものも見直してみてください。入出庫の記録から在庫を自動で出す例は、Excelで在庫管理表を作る方法で、テンプレート付きで紹介しています。

生成AIを業務全体にもっと取り入れたい人は、社会人が生成AIを仕事で使えるようになるスクールの選び方も参考にしてください。