この記事でわかること
- ChatGPT にExcel 関数を作らせる「壊れない」基本プロンプト
- 業務別(集計・検索・条件分岐)のコピペ可能な例
- エラーが出たときのトラブルシューティング手順
- 関数だけでなく VBA / Office スクリプト まで頼める使い方
「この計算、関数で一発でできないかな」と思うたびに Google 検索でVLOOKUP の構文を確認していた——そんな時間を、ChatGPT で 数秒 に短縮できる可能性が高いとされます。
本記事では、業務シーン別にそのまま使える Excel 関数生成プロンプトと、応用テクニックを整理します。
基本:Excel関数を作らせる「壊れない」プロンプト
ChatGPT に Excel 関数を作ってもらうとき、以下の構造を満たすと出力品質が安定します。
あなたは Excel のエキスパートです。以下の【表の構造】【やりたいこと】【制約】を踏まえて、
そのままセルに貼り付けられる関数式を1つ提案してください。
解説は関数の後に簡潔にまとめてください。
【表の構造】
- セル範囲:A1:E100
- A列:日付(yyyy/mm/dd)
- B列:商品名
- C列:単価
- D列:数量
- E列:売上(C×D)
【やりたいこと】
- F1セルに、6月の売上合計を表示したい
【制約】
- ピボットテーブルは使わずに、関数のみ
- できれば SUMIFS で
「表の構造」を明示する ことが最も重要です。これをやらないと、ChatGPT は架空の表を仮定して、自分の業務とずれた式を返してきます。
業務シーン別プロンプト
1. 条件付き集計(SUMIFS / COUNTIFS)
【表の構造】
- A列:日付、B列:担当者、C列:商品カテゴリ、D列:売上金額
- データ範囲:A2:D500
【やりたいこと】
- 「2026年4月」かつ「担当者=山田」の売上合計を、セルF1に表示
【制約】
- SUMIFS で書いてください
- 日付の比較は >=2026/4/1 と <2026/5/1 の形式で
期待される出力例:
=SUMIFS(D2:D500, A2:A500, ">=2026/4/1", A2:A500, "<2026/5/1", B2:B500, "山田")
2. 検索(VLOOKUP / XLOOKUP / INDEX-MATCH)
【表の構造】
- マスター表:A2:C100(A列=商品コード、B列=商品名、C列=単価)
- 入力表:F2:F50(商品コードの一覧)
【やりたいこと】
- G2〜G50に、各商品コードに対応する単価を表示
【制約】
- XLOOKUP を使う(Excel 365/2021以降を想定)
- 該当なしの場合は「未登録」と表示
3. 文字列操作(IFS / TEXTSPLIT / 配列数式)
【表の構造】
- A列:「山田太郎 / 営業部 / 部長」のように「/」区切りで3項目入った文字列
【やりたいこと】
- B列に氏名、C列に部署、D列に役職を分けて表示したい
【制約】
- TEXTSPLIT 関数を使う
- 1セル入力で、A列を全行処理できるように(配列数式 / スピル機能を活用)
4. 条件分岐(IF / IFS / SWITCH)
【やりたいこと】
- A列の点数に応じて、B列に評価を表示
- 90点以上:S
- 80点以上:A
- 70点以上:B
- 60点以上:C
- それ未満:D
【制約】
- IFS 関数で書く(ネストしないシンプルな形)
5. 重複・ユニーク値の処理
【やりたいこと】
- A列にある商品名のうち、ユニーク(重複を除いた)値を C列に一覧表示
- さらに、それぞれの件数を D列に表示
【制約】
- UNIQUE 関数と COUNTIF を組み合わせて
- スピル機能で1セル入力にしたい
「関数で無理」だったら VBA / Office スクリプト
複雑な処理は、関数ではなく VBA(マクロ) や Office スクリプト(クラウド版)でやる方が現実的です。
VBAコード生成プロンプト
あなたは Excel VBA のエキスパートです。以下の処理を行う VBA コードを書いてください。
コードは、新しい標準モジュールに貼り付けて、すぐ動く状態にしてください。
【処理内容】
- アクティブシートのA列に並んでいるURL(A2以下)に対して、
それぞれをブラウザで開く Sub プロシージャを作る
- ボタンに割り当てる前提なので、Sub のみで完結すること
【制約】
- 既定のブラウザで開く
- A列が空白になったら処理を止める
Office スクリプト(クラウド版Excel)の場合
TypeScriptベースのOffice スクリプトで、以下の処理を書いてください。
- 現在のシートの A列のセルをループし、空白の場合はそのセルを赤く塗りつぶす
エラーが出たとき:ChatGPTへのフィードバック手順
提案された関数で #N/A や #VALUE! が出たら、エラーメッセージごとそのまま貼り付ける のが最速の解決策です。
さきほどの式:
=XLOOKUP(F2, A2:A100, C2:C100, "未登録")
を貼り付けると #N/A が出ます。F2 セルには「A001」が入っていて、
A列にも「A001」があるのですが、見つからない扱いになっています。
原因と修正案を教えてください。
→ 多くの場合、「A列の値が 数値型 と 文字列型 で混在している」など、見落としがちなデータ型の問題を指摘してくれます。
業務効率化のコツ
1. 「表の構造」を一度書いて使い回す
頻繁に Excel を使う業務なら、自分が扱う代表的な表の構造を テキストファイルにまとめておく と、毎回コピペで使えます。
2. カスタム指示に「Excel エキスパート」と登録
ChatGPT のカスタム指示や Claude のプロジェクト機能に「Excel関数の質問が来たら、SUMIFS や XLOOKUP などのモダンな関数を優先して提案してください」と登録しておくと、毎回の指示が短くなります。
3. 「セルへの貼り付け」を最初に明示
「そのままセルに貼り付けられる形で」とプロンプトに書くと、= 付きの関数式を直接返してくれます。
注意点:機密情報を渡さない
社内データのスクリーンショットや CSV を ChatGPT にそのまま貼り付けると、情報セキュリティ上のリスクが発生します。列構造とサンプル数行に置き換えて から相談することを推奨します。
❌ 顧客リストの実データを丸ごとペースト
○ 「A列:顧客名、B列:契約金額」など、構造の説明と、ダミー2〜3行
まとめ
- Excel関数の生成は 「表の構造」「やりたいこと」「制約」 の3点セットで指示
- SUMIFS・XLOOKUP・IFS・UNIQUE・TEXTSPLIT などのモダン関数を活用
- 関数で無理な処理は VBA か Office スクリプト に切り替える
- エラーは メッセージごとそのまま貼り付け て聞き返すのが最速
- 機密データは 構造とダミーに置き換えてから 渡す
毎日 Excel と格闘している方なら、1日30分の関数調査時間 がほぼゼロになる可能性があります。まずは1つ、今日の業務で困っている関数から試してみてください。
