ChatGPTでExcel関数を作る方法|関数名がわからなくても仕事で使える

Excel

Excelで「こういう処理をしたい」と思っても、どの関数を使えばいいのかわからず困ったことはありませんか?たとえば、
「別のシートに同じ商品コードがあったら『対象』と表示したい」
という目的は決まっていても、IF関数やCOUNTIF関数など、どの関数を使えば実現できるのかわからないことがあります。そんなときは、使う関数を自分で調べる前に、やりたいことをそのままChatGPTに相談する方法があります。

今回は実際に、関数名を指定せずChatGPTへExcelの処理方法を質問し、提案された数式がExcelで正しく動くのか試してみました。その結果、今回試した3つのケースでは、ChatGPTが目的に合った関数を選び、実際に使える数式を作成してくれました。

やりたいことChatGPTが提案した関数結果
商品コードがマスタにあるか判定IF+COUNTIF正しく動作
「未対応」の件数を数えるCOUNTIF正しく動作
商品コードから商品名を取得IF+XLOOKUP正しく動作

この記事では、実際に試した画面を使いながら、Excel初心者がChatGPTに関数を作ってもらう方法を紹介します。

ChatGPTなら関数名がわからなくてもExcelの数式を作れる

ChatGPTにExcelの数式を作ってもらうとき、「使いたい関数の名前を知らないと質問できない」と思うかもしれません。しかし、最初から関数名を指定する必要はありません。

今回の検証では、
「COUNTIFを使ってください」「XLOOKUPを使ってください」
といった指定はせず、Excelで何をしたいのかだけを日本語で説明しました。
それでもChatGPTは、処理内容から必要な関数を判断して数式を提案しました。

大切なのは関数名ではなく、「どこにどんなデータがあり、最終的にどうしたいのか」を具体的に伝えることです。

では、実際に試してみます。

実践|商品コードが商品マスタにあれば「対象」と表示する

最初に試したのは、仕事でもよくありそうな「2つの一覧を照合する」ケースです。
今回はExcelに「商品一覧」と「商品マスタ」という2つのシートを用意しました。
「商品一覧」には次の商品コードを入力しています。

商品コード判定
P001
P002
P003
P004
P005
P006
P007

一方、「商品マスタ」には次の商品コードが登録されています。

商品コード
P001
P002
P004
P005
P007

結論からいうと、使いたいExcel関数の名前がわからなくても問題ありません。
「何をしたいのか」「どこにデータがあるのか」「どんな結果にしたいのか」をChatGPTに伝えると、目的に合った関数と数式を提案してもらえます。
今回は実際に仕事でありそうなケースを使って、ChatGPTにExcelの数式を作ってもらい、本当に使えるのか試してみます。
やりたいことは、
商品一覧の商品コードが商品マスタにも存在すれば「対象」、存在しなければ空白にする
という処理です。
さらに、商品一覧の商品コード自体が空白の場合も、判定欄は空白にします。

関数名を指定せずChatGPTに質問してみる

今回は、どのExcel関数を使うのかを指定せず、ChatGPTに次のように質問しました。

Excelで次のことをしたいです。
「商品一覧」というシートのA列に商品コードが入っています。
別の「商品マスタ」というシートのA列にも商品コード一覧があります。
商品一覧のA列の商品コードが「商品マスタ」のA列に存在する場合は、商品一覧のB列に「対象」と表示したいです。
存在しない場合は空白にしたいです。
また、商品一覧のA列自体が空白の場合も、B列は空白にしたいです。
どの関数を使えばいいのか分かりません。
Excel初心者にも分かるように、
・B2セルに入力する数式
・その数式が何をしているのか
・他の行にも適用する方法
を教えてください。

ここでポイントなのは、IFやCOUNTIFといった関数名を一度も指定していないことです。

ChatGPTがIF関数とCOUNTIF関数を提案

ChatGPTから提案された数式がこちらです。

=IF(A2="","",IF(COUNTIF(商品マスタ!A:A,A2)>0,"対象",""))

ChatGPTは今回の処理には、IF関数とCOUNTIF関数を組み合わせる方法がわかりやすいと判断しました。
数式の動きを簡単に分けると、

  • A2が空白 → B2も空白
  • A2に商品コードがある → 商品マスタのA列を検索
  • 同じ商品コードが1件以上ある → 「対象」
  • 同じ商品コードがない → 空白

となっています。COUNTIFは、指定した条件に一致するセルの数を数える関数です。今回の場合は商品マスタに同じ商品コードが何件あるのかを数え、1件以上なら「対象」と表示しています。

ChatGPTが作った数式をExcelで試してみる

次に、ChatGPTが提案した数式を「商品一覧」シートのB2セルにそのまま入力しました。
その数式を下の行にもコピーした結果がこちらです。

結果は、

商品コード判定
P001対象
P002対象
P003
P004対象
P005対象
P006
P007対象

となりました。
商品マスタに登録されているP001、P002、P004、P005、P007だけに「対象」と表示され、登録されていないP003とP006は空白になっています。
ChatGPTに関数名を指定しなくても、やりたいことを説明するだけで適した関数と数式を提案してもらい、実際のExcelでも正しく動作することを確認できました。

ChatGPTにExcel関数を質問するときのコツ

今回のように、関数名がわからない状態から質問してもChatGPTは数式を提案できます。
ただし、
「Excelで判定したい」
だけでは、どんな数式が必要なのか判断するための情報が足りません。
できるだけ次の内容を伝えるのがおすすめです。

伝えること今回の例
やりたいことマスタに商品コードがあれば「対象」と表示
データがある場所商品一覧のA列
参照する場所商品マスタのA列
結果を表示する場所商品一覧のB列
条件に合わない場合空白
元データが空白の場合結果も空白

ポイントは、Excelの操作を説明するというより、完成させたい状態を説明することです。
「どの関数を使えばいいのかわからない」と書いておけば、ChatGPTに関数選びから相談できます。

コピペして使える質問テンプレート

自分の仕事でExcel関数を作りたい場合は、次のような形でChatGPTに質問できます。

Excelで次のことをしたいです。
【やりたいこと】
○○したいです。
【データ】
シート名:○○
A列:○○
B列:○○
【完成させたい状態】
○○セルに○○と表示したいです。
条件に合わない場合は○○にしたいです。
どの関数を使えばいいのか分かりません。
Excel初心者にも分かるように、
・入力する数式
・数式の意味
・他の行にも適用する方法
を教えてください。

必要に応じて、
「A列が空白なら結果も空白にしたい」「Microsoft 365を使っています」「Mac版Excelを使っています」など、自分の環境や条件を追加すると、より具体的な回答を得やすくなります。

ほかの仕事でもChatGPTにExcel関数を作ってもらえる

商品コードの照合以外でも試してみました。

「未対応」の件数を数えてもらう

次は、案件ごとの対応状況が入力された表です。

案件名対応状況
案件A対応済
案件B未対応
案件C対応済
案件D未対応
案件E未対応
案件F対応済

この表から「未対応」の件数だけを数えてD2セルに表示したい、とChatGPTに質問しました。
するとChatGPTはCOUNTIF関数を選び、次の数式を提案しました。

=COUNTIF(B:B,"未対応")

実際にExcelへ入力すると、
未対応は「3件」
と正しく集計されました。

このように、
「COUNTIFを使って未対応を数えたい」
と質問する必要はありません。
「未対応と書かれている件数を数えたい」と、目的から質問できます。

商品コードから商品名を取得する数式も作れる

もう少し複雑な例も試しました。
「商品マスタ」には、商品コードと商品名が登録されています。

商品コード商品名
P001ボールペン
P002ノート
P004クリアファイル
P005付箋
P007ホッチキス

別の「商品検索」シートの商品コードを使って、商品マスタから対応する商品名を自動で表示する数式をChatGPTに作ってもらいます。
条件は、

  • 商品コードが見つかったら商品名を表示
  • 見つからなければ「未登録」
  • 商品コード自体が空白なら結果も空白

としました。
するとChatGPTはXLOOKUP関数を選び、次の数式を提案しました。

=IF(A2="","",XLOOKUP(A2,商品マスタ!A:A,商品マスタ!B:B,"未登録"))

実際にExcelで試した結果がこちらです。

結果は、

商品コード商品名
P001ボールペン
P003未登録
P005付箋
P999未登録

となり、こちらも期待どおりに動作しました。
商品コードから商品名を取得するような処理でも、「XLOOKUPを使いたい」ではなく、「商品コードから対応する商品名を表示したい」と相談できます。

ChatGPTが作った数式が使えないときは追加で質問する

ここで注意したいのが、ChatGPTが提案した関数を、自分が使っているExcelでは利用できない場合があることです。
今回の検証では、商品コードから商品名を取得するためにXLOOKUPが提案されました。
ただし、古いバージョンのExcelではXLOOKUPを利用できない場合があります。
そこで同じChatGPTとの会話で、

私が使っているExcelのバージョンが古く、XLOOKUPが使えない場合はどうすればいいですか?

と追加で質問してみました。
すると今度は、VLOOKUPとIFERRORを組み合わせた次の数式が提案されました。

=IF(A2="","",IFERROR(VLOOKUP(A2,商品マスタ!A:B,2,FALSE),"未登録"))

このようにChatGPTでは、最初からすべての条件を完璧に書く必要はありません。
数式が使えなかったり、思っていた結果にならなかったりした場合は、その状況を続けて質問できます。
たとえば、

この数式を入力すると「#NAME?」と表示されます。原因を教えてください。

B2では正しく動きますが、下にコピーすると結果がおかしくなります。

Excel 2019でも使える関数に変更してください。

といった形です。
「一度質問して終わり」ではなく、Excelで試す→問題があればChatGPTに追加で相談するという使い方ができます。

ChatGPTでExcel関数を作るときの注意点

ChatGPTはExcel関数を考えるうえで便利ですが、提案された数式をそのまま信用するのではなく、自分でも結果を確認することが重要です。

古いExcelでは使えない関数もある

今回のXLOOKUPのように、Excelのバージョンによって利用できない関数があります。
使用しているExcelのバージョンがわかる場合は、最初の質問で、

Excel 2019を使っています。

Microsoft 365版のExcelを使っています。

などと伝えておくとよいでしょう。
わからない場合でも、数式が動かなければその状況をChatGPTに追加で伝えられます。

エラーが出なくても結果を確認する

Excelでエラーが表示されなかったからといって、必ずしも求めていた処理になっているとは限りません。
今回の商品コード照合では、

  • 商品マスタに存在する商品コード
  • 商品マスタに存在しない商品コード
  • 商品コードが空白の場合

を用意して、期待した結果になるか確認しました。
特に仕事で使用する数式では、いくつかのパターンを用意して結果を確認してから本番データへ使うことをおすすめします。

会社のデータを入力するときはルールを確認する

会社の売上データや顧客情報などをChatGPTに入力する場合は、会社のAI利用ルールや情報管理ルールを確認してください。
今回のように、Excelの列構成や架空の商品コードだけで相談できるケースなら、実際の業務データを入力しなくても数式を作ってもらえます。

よくある質問

ChatGPTにExcel関数の名前を指定する必要はありますか?

必ずしも必要ありません。
今回の検証でもCOUNTIF、IF、XLOOKUPなどの関数名を指定せず、「Excelで何をしたいのか」を説明しました。
その結果、ChatGPTが目的に合わせて使用する関数を選びました。
関数名がわからない場合は、無理に調べてから質問するのではなく、まずやりたいことを説明してみる方法があります。

ExcelファイルをChatGPTにアップロードする必要はありますか?

数式を相談するだけなら、必ずしもExcelファイルをアップロードする必要はありません。
今回の検証も、シート名、列の内容、やりたい処理を文章で説明して数式を作成しました。
Excelファイルを使ったデータ分析など、ChatGPTでExcelを使ってほかに何ができるのかについては、別の記事でも詳しく紹介しています。

→ChatGPTでExcelは何ができる?

ChatGPTが作ったExcelの数式が動かない場合はどうすればいいですか?

表示されたエラーや、実際の結果をChatGPTに伝えて追加で質問してみてください。
その際、

  • 使用しているExcelのバージョン
  • 入力した数式
  • 表示されたエラー
  • 本来どうなってほしいのか

を伝えると、原因を特定しやすくなります。

ChatGPTとExcelのCopilotは同じものですか?

同じものではありません。
今回紹介した方法は、通常のChatGPTにExcelでやりたいことを相談し、提案された数式をExcelへ入力する方法です。
一方、Copilot in ExcelはMicrosoftがExcel内で提供するAI機能です。
どちらが向いているかは利用環境や目的によって変わるため、今後別の記事で比較する予定です。

まとめ|関数名がわからなければ、やりたいことからChatGPTに相談しよう

Excelで関数を使いたくても、
「どの関数を使えばいいのかわからない」
というところで止まってしまうことがあります。
そんなときは、関数名を調べる前にExcelで何をしたいのかをChatGPTに日本語で説明する方法があります。

今回実際に試したところ、

やりたいことを説明する
↓
ChatGPTが関数と数式を提案する
↓
Excelに数式を入力する
↓
結果が正しいか確認する
↓
問題があれば追加で質問する

という流れで、3つのケースすべてで目的の処理を実現できました。
特に重要なのは、ChatGPTが作った数式をそのまま信用して終わりにせず、実際のExcelで期待した結果になるか確認することです。
関数名がわからなくても、「何をしたいか」がわかっていればChatGPTに相談できます。
まずは普段のExcel作業で、
「これ、毎回手作業でやっているけれど、関数でできないかな?」
と思っている作業から試してみるとよいでしょう。