ChatGPTでExcel関数を作る方法|無料で始めるプロンプトと実例
作りたい処理を日本語で伝え、Excelに貼り付けるまでを解説。売上表のIF関数を例に、コピペ用プロンプト・練習データ・間違いの見つけ方を紹介します。
この記事は実際にChatGPTとExcel for the webで検証しています
最終検証日:2026年09月26日
Excelの関数名がわからなくても、「どのセルを見て、どういう結果を出したいか」を日本語で伝えると、ChatGPTに数式の候補を作ってもらえます。
この記事では、売上が目標以上なら「達成」、それ以外なら「未達」と表示する表を作ります。ChatGPTに相談する → Excelに貼る → 正解と照合する、の3段階で進めましょう。
2026年9月26日に、ChatGPTが返したIF関数を無料のExcel for the webに入力し、3人分の判定と、売上が目標と同額の場合の動作を確認しました。この記事では、実際に入力した依頼文・返ってきた数式・確認結果を紹介します。ChatGPTの利用プランは今回の検証記録には含まれていないため、無料版ChatGPTで検証したという意味ではありません。
1. 無料で始めるために用意するもの
必要なのは、ブラウザーで使うChatGPTとExcel for the webです。MicrosoftはWeb版のExcelを無料で提供しています。利用にはMicrosoftアカウントでのサインインが必要です。Microsoft公式の案内から開けます。
ChatGPTにも無料プランがあります。ファイルのアップロードやデータ分析などは、それぞれ利用制限があります。この記事では、ファイルをChatGPTにアップロードせず、セルの位置と条件を文章で伝える方法を使います。OpenAI公式の無料版FAQも確認してください。
有料版Excel、外部アドイン、APIキーは、この練習には必要ありません。会社で使う場合は、利用するアカウントや入力してよい情報を勤務先のルールに合わせてください。
2. 練習用の売上表を用意する
以下はすべて架空のデータです。Excelの新しいシートでA1セルを選択してから、次のタブ区切りテキストを貼り付けてください。名前がA列、売上がB列、目標がC列になります。
名前 売上 目標
田中 120000 100000
鈴木 80000 100000
佐藤 150000 100000
D1には「判定」と入力します。数値は「120,000円」という文字列ではなく、120000のように数値として入力しましょう。
| セル・列 | 内容 |
|---|---|
| A1〜A4 | 名前と3人分の架空の氏名 |
| B1〜B4 | 売上の見出しと数値 |
| C1〜C4 | 目標の見出しと数値 |
| D1 | 判定の見出し |
| D2〜D4 | これから数式を入れる場所 |
練習用Excelファイルをダウンロードすることもできます。「練習」シートのD2〜D4は空欄、「解答例」シートには数式が入っています。Excel for the webで開き、まず「練習」シートを使ってください。
CSV形式の元データも用意しています。CSVには数式や書式は含まれません。
3. ChatGPTに条件を伝える
ChatGPTの新しい会話に、次の文章を入力します。プロンプトとは、AIに送る依頼文のことです。
売上が目標以上なら『達成』、目標未満なら『未達』。売上はB列、目標はC列。D2セルに入れるIF関数を教えてください
この依頼では、列の意味・結果を出すセル・判定条件を具体的に伝えています。特に「目標以上」と書くことで、売上と目標が同じ場合も達成に含めます。別の表で使うときは、列名や出力セルを自分の表に合わせて変更してください。
実際にChatGPTから返った数式
=IF(B2>=C2,"達成","未達")
この数式をExcel for the webで試し、正常に動作することを確認しました。同じプロンプトでも、ChatGPTの回答文や説明は異なる場合があります。
回答の説明では、次の3点を確認してください。
B2>=C2:売上が目標以上かを比較する。"達成":条件を満たした場合に表示する文字。"未達":条件を満たさない場合に表示する文字。
>=は「以上」です。>だけなら「より大きい」となり、売上と目標が同額の人が未達になってしまいます。IF関数の基本構文はMicrosoft公式の解説でも確認できます。
4. 数式をExcelに貼り付けて、下の行にも使う
- ChatGPTの回答から、
=で始まる数式だけをコピーします。 - ExcelのD2セルを選び、数式を貼り付けてEnterを押します。
- D2セルをコピーして、D3〜D4に貼り付けます。
- D3では
B3とC3、D4ではB4とC4を参照しているか、数式バーで確かめます。
この数式では、行番号に$を付けていません。セルを下の行へコピーしたとき、参照先が行に合わせて変わる書き方です。画面の位置やメニュー名は、表示言語や更新によって変わる場合があります。
Excel for the webで確認した結果
| 名前 | 売上 | 目標 | 実際の判定 |
|---|---|---|---|
| 田中 | 120000 | 100000 | 達成 |
| 鈴木 | 80000 | 100000 | 未達 |
| 佐藤 | 150000 | 100000 | 達成 |
3人とも意図した判定になりました。ただし、この3人は全員、売上と目標が異なります。「同じ金額のときも達成になるか」は、次の追加データで確認しました。
5. 「超えたら」と「以上」で結果が変わった例
実際に入力した、意図が伝わりきらない依頼
次のように依頼したところ、比較演算子が>の数式が返りました。
売上が目標を超えたら達成、そうでなければ未達にしたいです。IF関数を教えてください。
実際の回答:
=IF(B2>C2,"達成","未達")
「超えたら」は、同じ金額を含みません。この回答は依頼文の「超えたら」に沿っています。ChatGPTの計算ミスではなく、「同額も達成にしたい」という意図と依頼文のずれが原因です。また、この依頼文だけでは列の位置も指定していないため、別の表にそのまま使わないようにしましょう。
高橋さんの同額データで比較した結果
売上100000、目標100000の「高橋」を追加し、Excel for the webで比較しました。
| 名前 | 売上 | 目標 | >で比較 |
>=で比較 |
|---|---|---|---|---|
| 高橋 | 100000 | 100000 | 未達 | 達成 |
>は「より大きい」、>=は「以上」です。同額も達成に含める今回の目的には、>=を使います。高橋さんを5行目に追加する場合は、=IF(B5>=C5,"達成","未達")のように、その行のセルを参照してください。
改善方法:同額を含めると明記する
最初に紹介した「売上が目標以上なら」という明確な指示では、>=を使った数式が返り、同額でも「達成」となることを確認できました。依頼するときに「売上と目標が同じ場合も達成にしてください」と補足すると、意図がさらに伝わりやすくなります。
大きい・小さい・同じの3パターンを確かめると、今回のような条件のずれを見つけやすくなります。
6. その他につまずいたときの確認方法
以下は補足の対処例です。今回のChatGPT・Excel for the webでの実機検証には含めていません。
空欄の行まで「達成」になる
基本の数式は、売上と目標が両方空欄のときにも、意図しない判定になることがあります。未入力の行は空白にしたいなら、売上または目標が空欄の場合は判定しないという条件を追加します。
=IF(OR(ISBLANK(B2),ISBLANK(C2)),"",IF(B2>=C2,"達成","未達"))
ISBLANKは何も入力されていないセルを判定します。数式の結果が空文字になっているセルや、「未入力」という文字・スペースだけのセルは空欄と判定しません。まず数値の列に不要な文字が混ざっていないか確認してください。
数式が計算されず、そのまま表示される
数式の先頭が半角の=か、先頭にアポストロフィが入っていないかを確認します。セルが文字列形式なら、標準形式にして数式を入れ直します。数式表示が有効になっている場合も、結果ではなく数式が表示されます。
貼り付けるときは、コード枠の飾りや説明文を含めないようにします。数式中の引用符は半角の"を使ってください。地域設定によって引数の区切りが異なる場合は、使用環境も含めて確認しましょう。
コピーしても同じ人を判定してしまう
数式が$B$2と$C$2を参照していると、コピー先でも2行目を見ます。各行の売上を判定する目的なら、B2とC2を使います。全員共通の目標セルを参照したい場合は、逆に目標セルだけを固定するなど、表の構造に合わせます。
エラーが出る場合は、セルの位置・入力値・使った数式・表示されたエラーをセットでChatGPTに伝えてください。実際の顧客名や社内データを送る必要はありません。
7. 今回の検証範囲
最終検証日:2026年9月26日。表計算ソフトは無料のExcel for the webを使用しました。
| 確認項目 | 結果 |
|---|---|
| 明確な指示をChatGPTに入力 | =IF(B2>=C2,"達成","未達")が返った |
| 田中:120000 / 100000 | Excel for the webで「達成」 |
| 鈴木:80000 / 100000 | Excel for the webで「未達」 |
| 佐藤:150000 / 100000 | Excel for the webで「達成」 |
| 「目標を超えたら」という指示 | =IF(B2>C2,"達成","未達")が返った |
| 高橋:100000 / 100000 | Excel for the webで>は「未達」、>=は「達成」 |
| 空欄対応・文字列形式などの対処例 | 今回の実機検証の対象外 |
この結果は、上記の小さな売上表で確認したものです。実際の仕事で使う場合も、表の列や判定ルールに合わせて、期待した結果になるか確認してください。
8. よくある質問
関数名がわからなくても依頼できますか?
できます。「B列の売上がC列の目標以上なら、D列に達成と表示する」のように、表の位置と実現したい処理を説明してください。回答は必ず、小さなデータと正解の表で照合します。
Excelのファイル自体を渡す必要はありますか?
今回のような単純な関数なら不要です。列構成と条件を文章で伝えられます。実データの代わりに架空の例を使うことで、機密情報を入力せずに相談できます。
VBAも同じ無料環境でできますか?
Excel for the webではVBAマクロの作成・実行・編集ができません。MicrosoftのVBA案内で説明されています。SHIGOTOFFでは、まずWeb版で扱える通常の関数を優先します。
AIの答えが間違っていたら?
「間違っています」だけでなく、どの入力で、何が表示され、本来どうなるべきかを伝えます。修正後も、正常なケース・境界値・空欄をもう一度確認してください。
9. 次に試すこと
まずはこの売上表で「達成・未達」を判定し、同額のケースも確認してみてください。自分の表に使うときは、プロンプトの列・開始行・出力セルを書き換えます。
Excelカテゴリーでは、IF・XLOOKUP・SUMIFS・エラー修正のガイドを順次追加する予定です。未公開の記事にはリンクを設けていません。
SHIGOTOFFでは、記事制作・検証方針に沿って、成功した手順だけでなく、つまずいた条件と改善方法も記録していきます。