ChatGPT・ClaudeにExcel関数を作らせる方法|一発で使える数式が返ってくる頼み方と確かめ方
「この条件で合計したいけど、どの関数を使えばいいのか分からない」。Excelでよくあるこの悩みは、ChatGPTやClaudeなどの生成AIに聞くと、かなりの割合で解決します。
ただ、聞き方があいまいだと、自分の表では動かない数式が返ってきます。この記事では、そのまま使える数式が返ってきやすい頼み方と、返ってきた数式が正しいかの確かめ方をまとめます。
頼み方のテンプレート
AIは、あなたの表を見ていません。数式に必要な情報を文章で渡す必要があります。次の5つを入れると、ほぼそのまま使える数式が返ってきやすくなります。
- やりたいこと(何を出したいか)
- シート名と列(どのシートの何列に何が入っているか)
- データの例(1〜3行ほど)
- 数式を入れるセル
- 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を仕事で使えるようになるスクールの選び方も参考にしてください。