ExcelやGoogleスプレッドシートで複雑な関数を書くとき、数式の構文を忘れたり、エラーが発生して悩んだことはありませんか。生成AI(ChatGPT、Claude、Geminiなど)を活用すれば、自然言語で指示するだけで関数を生成してくれます。しかし、適切なプロンプトを書かないと、意図と異なる結果になることも多いです。この記事では、生成AIにExcelやスプレッドシートの関数を正しく作らせるためのプロンプトの書き方を解説します。具体的な例や失敗パターンも紹介するので、すぐに活用できるようになります。
【要点】効果的なプロンプトで生成AIに関数を作らせるコツ
- 具体的な要件の明示: セル範囲や条件を具体的に指定することで、正確な関数を得られます。
- 入力例と出力例の提示: サンプルデータを示すと、生成AIが意図を理解しやすくなります。
- エラー処理の依頼: エラー時の挙動やIFERRORの使用を指示することで、実用的な関数になります。
ADVERTISEMENT
生成AIが関数を生成する仕組みを理解する
生成AI(ChatGPT、Claude、Geminiなど)は、膨大なコードやドキュメントで学習しています。そのため、自然言語で「売上合計を計算したい」と伝えると、それに適した関数(SUMやSUMIFなど)を提案できます。しかし、生成AIは文脈を元に推論するため、曖昧な指示では不正確な結果が出ます。例えば「合計を出して」だけでは、範囲や条件が不明確です。そこで、プロンプトに具体的な情報を含める必要があります。特にExcelやスプレッドシートの関数では、セル参照や条件式が正確でないと利用できません。この仕組みを理解して、プロンプトを設計しましょう。
関数を生成させるためのプロンプト作成手順
- 目的を明確にする
まず「何を計算したいのか」を一文で書きましょう。例:「A列の売上金額の合計を求めたい」や「B列が”完了”の場合のC列の平均を出したい」など。 - 使用するアプリを指定する
「Excel用の関数を書いてください」または「Googleスプレッドシート用の関数を書いてください」と明示します。サービスによって関数名が異なる場合があるためです。 - セル範囲や条件を具体的に記述する
実際のシート構成に合わせて、例えば「A2:A100の数値の合計」や「C列が”東京”の場合のD列の平均」のように指定します。 - 入力例と期待する出力例を添える
可能であればサンプルデータを数行示します。「A1=10, A2=20, A3=30の場合、合計は60になる」という例があると、生成AIの精度が上がります。 - エラー処理や特殊な要件を伝える
「エラー時は0を返すようにしてください」や「空白セルは無視してください」など、追加の条件を指示します。 - 生成された関数をテストするよう促す
「生成した関数を実際のデータでテストして、正しいか確認してください」と自分に言い聞かせる意味でも、プロンプトに含めると良いでしょう。
よくある失敗パターンとその対策
曖昧な範囲指定による誤った関数
失敗例: 「A列の合計を出して」とだけ指示した場合、生成AIは列全体(A:A)を指定するかもしれません。しかし、実際にはデータがA2からA100までしかない場合、A1の見出しや空白行が含まれてエラーになります。対策: 必ず「A2からA100までの範囲」のように開始行と終了行を明示します。または「データがある行まで」と条件を付けましょう。
複雑な条件の伝え漏れ
失敗例: 「条件付き合計を計算したい」とだけ伝えると、SUMIFを使うかSUMIFSを使うか判断されず、不適切な関数が返されることがあります。対策: 条件が複数ある場合は「A列が’東京’かつB列が’完了’の場合のC列の合計」のように具体的に書きます。また、OR条件が必要なら「A列が’東京’または’大阪’の場合」と明示します。
サービス固有の関数名の違いを見落とす
失敗例: Excelでは「SUMIFS」が使えますが、古いバージョンや他のスプレッドシートでは使えない場合があります。生成AIに「SUMIFSを使って」と指定しても、そのサービスで対応していなければエラーになります。対策: 最初に「Excel 2019以降用の関数」や「Googleスプレッドシート用の関数」と指定します。また、互換性を考慮して「可能ならSUMPRODUCTを使う」などの代替案を求めるのも有効です。
エラー処理を忘れる
失敗例: 関数内で割り算をする場合、分母が0だと#DIV/0!エラーが発生します。生成AIにエラー処理を指示しないと、そのままの式が返されます。対策: 「エラーが出た場合は0を表示するようにIFERRORを使ってください」と最初から依頼します。同様に、VLOOKUPで該当なしの場合の処理も指定しましょう。
ADVERTISEMENT
良いプロンプトと悪いプロンプトの比較
| 観点 | 悪いプロンプト | 良いプロンプト |
|---|---|---|
| 目的 | 「合計を出したい」 | 「A2からA100までの売上金額の合計を求めます。Excel用のSUM関数を使ってください」 |
| 条件指定 | 「条件付きで集計」 | 「B列が’完了’の場合、C列の数値の平均を計算します。条件は複数なし。GoogleスプレッドシートのAVERAGEIF関数を使ってください」 |
| エラー処理 | 「VLOOKUPで検索」 | 「VLOOKUPでD2の値をA列から検索し、対応するB列の値を返します。見つからない場合は’該当なし’と表示するようIFERRORで包んでください」 |
よくある質問とその回答
Q: 生成AIに関数を生成させたが、エラーになります。どうすればよいですか?
A: まず、生成された関数の構文が正しいか確認します。次に、セル範囲や条件が実際のデータと合っているか見直します。また、使用しているスプレッドシートサービスでその関数がサポートされているか確認しましょう。それでも解決しない場合は、エラーメッセージを生成AIに伝えて修正を依頼できます。
Q: 非常に長い関数や複雑なネストが必要です。生成AIに任せられますか?
A: 可能です。ただし、一度に全てを伝えようとせず、段階的に依頼するのが効果的です。まずベースの関数を作り、その後で「この関数にIF条件を追加してください」のように修正を依頼します。また、プロンプトで「複数条件のネストが必要です。IFS関数を使ってください」と指定すると精度が上がります。
Q: 日本語で指示しても問題ありませんか?
A: 主要な生成AIサービスは日本語に対応していますので問題ありません。ただし、関数名やセル参照は英数字で書く必要があります。日本語で「A列の合計」と書けば、生成AIは適切に解釈します。ただし、特に日本語の方言や曖昧な表現は避け、簡潔で明確な文章を心がけましょう。
この記事では、生成AIにExcelやスプレッドシートの関数を作らせるためのプロンプト術を解説しました。具体的なセル範囲、条件、使用アプリ、エラー処理の指定が正確な関数を得る鍵です。入力例と出力例を添えることで、生成AIの理解度が向上します。まずは簡単なSUM関数の生成から始めて、徐々にSUMIFやVLOOKUPなど複雑な関数に挑戦してみてください。プロンプトを改善しながら、効率的な関数作成を実現しましょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
