ChatGPTでXLOOKUPを作る方法|Excel関数をAIで簡単作成する手順と活用例

ChatGPT

「商品コードを入力したら商品名や単価を自動表示したい」と考えても、XLOOKUPの検索範囲や戻り範囲をどう指定すればよいのかで止まってしまうことがあります。ChatGPTを使えば、関数の構文を暗記していなくても、シート名・列・検索条件・表示したい結果を日本語で伝えてXLOOKUPのたたき台を作れます。ただし、AIが作った数式をそのまま本番データへ貼り付けるのではなく、実際の表とセル参照を照合し、少量のテストデータで結果を確認することが欠かせません。ここでは、商品マスタを例に、ChatGPTへの依頼方法から完成した数式の確認、エラー修正、実務で使える応用まで順番に解説します。

最初に完成形|商品コードから商品名をXLOOKUPで取得する

最初に、今回作るXLOOKUPの完成イメージを確認します。「商品マスタ」シートに商品情報があり、「注文入力」シートへ商品コードを入力すると商品名を自動表示するケースです。

商品マスタのサンプルデータ

A列:商品コードB列:商品名C列:カテゴリD列:単価
2P001ノートPCスタンド周辺機器3980
3P002ワイヤレスマウス周辺機器2980
4P003USB-Cハブ周辺機器5480
5P004モニターアームオフィス機器7980
6P005キーボード周辺機器6480

「注文入力」シートのB2に「P003」と入力し、C2へ対応する商品名を表示する場合は、次の数式を使用できます。

=XLOOKUP(B2,商品マスタ!$A$2:$A$6,商品マスタ!$B$2:$B$6,"未登録")

このサンプルでは検索値「P003」が商品マスタのA4にあるため、結果は「USB-Cハブ」です。

数式の部分意味
B2検索したい商品コード
商品マスタ!$A$2:$A$6商品コードを探す範囲
商品マスタ!$B$2:$B$6見つかった行から商品名を返す範囲
“未登録”商品コードが見つからない場合の表示

XLOOKUPそのものの構文、VLOOKUPとの違い、複数条件などを先に理解したい場合は、ExcelのXLOOKUP関数の使い方を初心者向けに解説した記事も参考にしてください。

ChatGPTにXLOOKUPを作らせる4ステップ

ChatGPTで正しい数式を作りやすくするコツは、「XLOOKUPを作って」とだけ依頼しないことです。ChatGPTが実際のExcel表を推測しなくて済むように、検索値、検索範囲、戻り範囲、例外処理まで具体的に伝えます。

1.Excelで最終的に何を表示したいか決める

最初に「商品コードから商品名を表示したい」「社員番号から部署名を取得したい」など、完成後の結果を一文で整理します。

今回の例なら、目的は次のとおりです。

注文入力シートに入力した商品コードを使って、商品マスタから対応する商品名を表示したい。

2.シート名とセル位置を伝える

次に、ChatGPTがセル位置を推測しなくてもよい状態にします。

  • 入力先シート:注文入力
  • 検索値:注文入力シートのB2
  • 検索先シート:商品マスタ
  • 商品コード:商品マスタのA2:A6
  • 商品名:商品マスタのB2:B6
  • 数式を入力する場所:注文入力シートのC2

3.見つからない場合の処理も指定する

実務では、商品コードの入力間違いや未登録データも発生します。そのため、「見つからない場合は未登録と表示する」などの条件も最初から伝えておくと修正が減ります。

4.ChatGPTへそのまま入力できる依頼文を作る

今回の条件なら、次のように依頼できます。

ExcelのXLOOKUP関数を作成してください。

「注文入力」シートのB2に商品コードを入力します。

「商品マスタ」シートでは、A2:A6に商品コード、B2:B6に商品名があります。

B2の商品コードを商品マスタのA2:A6から完全一致で探し、対応する商品名を「注文入力」シートのC2へ表示したいです。

商品コードが見つからない場合は「未登録」と表示してください。

数式を下方向へコピーするため、商品マスタ側の検索範囲と戻り範囲は絶対参照にしてください。

完成したExcel関数を1つ提示し、各引数の意味も説明してください。説明していない列やシートは追加しないでください。

この条件に対応する完成形は次のとおりです。

=XLOOKUP(B2,商品マスタ!$A$2:$A$6,商品マスタ!$B$2:$B$6,"未登録")

ポイントは、「どの関数を使うか」よりも「どのセルをどこから探し、何を表示するか」を具体化することです。XLOOKUP以外のIF、SUMIFS、COUNTIFSなども同じ考え方で依頼できます。関数全般の依頼方法は、ChatGPTでExcel関数を作る方法で詳しく解説しています。

ChatGPTの回答精度を上げる5つの情報

短い質問でも数式は生成できますが、実際のExcelへそのまま当てはめられる数式を作るには、次の5項目を伝えると整理しやすくなります。

伝える情報依頼例
検索値B2の商品コードを検索する
検索範囲商品マスタのA2:A100から探す
戻り範囲商品マスタのD2:D100の単価を返す
例外処理見つからない場合は空白にする
利用環境XLOOKUPを利用できるExcel環境で使用する

悪い依頼と改善した依頼の違い

次のような依頼だけでは、ChatGPT側で列構成を推測する必要があります。

商品コードから単価を表示するXLOOKUPを作ってください。

これを次のように変えると、必要なセル参照が明確になります。

B2の商品コードを「商品マスタ」シートのA2:A100から検索し、同じ行のD2:D100にある単価を返すXLOOKUPを作ってください。見つからない場合は空白にしてください。数式を下方向へコピーするため、商品マスタ側の範囲は絶対参照にしてください。

対応する数式は次の形になります。

=XLOOKUP(B2,商品マスタ!$A$2:$A$100,商品マスタ!$D$2:$D$100,"")

数式を下へコピーする場合、検索値のB2は相対参照のままにし、固定したいマスタ範囲には$を付けます。「コピーしたときにどこを固定するか」までChatGPTへ伝えると、参照ずれを防ぎやすくなります。

ChatGPTで作れるXLOOKUPの実務例

基本形を理解したら、実際の業務条件を日本語で追加していきます。ここでは、利用頻度の高い例を取り上げます。

商品コードから単価を取得する

B2の商品コードから商品マスタの単価を取得する場合は、戻り範囲をD列へ変更します。

=XLOOKUP(B2,商品マスタ!$A$2:$A$6,商品マスタ!$D$2:$D$6,"未登録")

B2が「P003」であれば、このサンプルデータでは「5480」が返ります。

ChatGPTには「商品名ではなくD列の単価を返してください」と追加するだけでも修正できます。最初から質問を作り直す必要はありません。

商品コードが空欄なら何も表示しない

入力前の行に「未登録」と大量表示されるのを避けたい場合は、IF関数と組み合わせられます。

=IF(B2="","",XLOOKUP(B2,商品マスタ!$A$2:$A$6,商品マスタ!$B$2:$B$6,"未登録"))

この数式では、B2が空欄なら空白を返し、商品コードが入力された場合だけXLOOKUPを実行します。

ChatGPTへは「B2が空欄の場合はXLOOKUPを実行せず、何も表示しないようにしてください」と伝えれば条件を追加できます。

同じ商品コードが複数ある履歴から最後のデータを取得する

価格履歴や更新履歴では、同じ商品コードが複数行に登場することがあります。データが古いものから新しいものへ下方向に追加されている場合は、XLOOKUPの検索モードを「-1」にして末尾から検索できます。

たとえば「価格履歴」シートのA列に商品コード、C列に価格があり、B2の商品コードに対応する最後の価格を取得する場合は次の形です。

=XLOOKUP(B2,価格履歴!$A$2:$A$100,価格履歴!$C$2:$C$100,"該当なし",0,-1)

最後の「-1」が末尾から先頭方向へ検索する指定です。Microsoft公式でも、検索モード「-1」は末尾から逆方向へ検索する設定として案内されています。

ただし、この方法で「最新価格」を取得できるのは、価格履歴が古い順から新しい順に追加されている場合です。行順と日付順が一致していない表では、単純に最後の一致を取得しても最新データとは限りません。

2つの条件が一致する行を検索する

「商品コード」と「支店」のように2条件で行を特定したい場合も、ChatGPTへ条件を文章で伝えることで数式を組み立てられます。

たとえば、「価格表」シートのA列が商品コード、B列が支店、D列が単価で、H2の商品コードとI2の支店が両方一致する単価を取得する場合は次のような式になります。

=XLOOKUP(1,(価格表!$A$2:$A$100=H2)*(価格表!$B$2:$B$100=I2),価格表!$D$2:$D$100,"未登録")

初心者の場合は、この式だけを受け取るのではなく、「なぜ1を検索しているのか」「掛け算部分が何を意味しているのか」までChatGPTへ説明させると修正しやすくなります。

ChatGPTが作ったXLOOKUPが動かないときの質問方法

数式が動かなかった場合は「エラーになります。直してください」だけではなく、実際の数式、表示された結果、列の意味をまとめて伝えます。

次のXLOOKUPが期待どおりに動きません。

=XLOOKUP(B2,商品マスタ!$A$2:$A$100,商品マスタ!$B$2:$B$80,”未登録”)

B2:検索する商品コード

商品マスタA列:商品コード

商品マスタB列:商品名

検索範囲と戻り範囲を確認し、問題があれば修正してください。修正した箇所も説明してください。

この例では検索範囲がA2:A100、戻り範囲がB2:B80となっており、範囲の大きさがそろっていません。次のように修正できます。

=XLOOKUP(B2,商品マスタ!$A$2:$A$100,商品マスタ!$B$2:$B$100,"未登録")

#N/Aになる場合

「見つからない場合」の引数を指定していないXLOOKUPでは、検索値が見つからないと#N/Aが表示されることがあります。次の点を確認してください。

  • 検索値がマスタに本当に存在するか
  • 商品コードの前後に不要な空白がないか
  • 文字列の「001」と数値の「1」を混同していないか
  • 全角と半角が混在していないか
  • 検索範囲が正しい列になっているか

エラーを隠す前に、検索値とマスタ側の値が一致しているかを確認することが大切です。

#NAME?になる場合はExcelのバージョンも確認する

関数名や数式の入力ミスに加えて、使用しているExcelがXLOOKUPに対応しているかも確認します。Microsoftの公式サポートには、Excel 2016およびExcel 2019ではXLOOKUPを使用できない旨の注記があります。利用環境が不明な場合は、Microsoft公式のXLOOKUP関数サポートで最新情報を確認してください。

古いExcelとの互換性が必要な場合は、ChatGPTへ次のように依頼できます。

このExcelではXLOOKUPを使用できません。同じ結果になるように、VLOOKUPまたはINDEXとMATCHを使った式へ変更してください。

XLOOKUPとVLOOKUPのどちらを採用するか迷う場合は、VLOOKUPとXLOOKUPの違いと使い分けも確認してください。XLOOKUPが使えない環境向けの依頼方法は、ChatGPTでVLOOKUPを作る方法も参考になります。

AIが作った数式は3段階で確認する

ChatGPTが自然な説明と一緒に数式を返すと、そのまま正しいように見えることがあります。しかし、ChatGPTが実際の社内Excelの列配置やデータ品質まで把握しているとは限りません。

1.セル参照を実際の表と照合する

最初に、検索値・検索範囲・戻り範囲が実際のExcelと一致しているか確認します。

  • 検索値のセルは正しいか
  • 商品コードを検索する列は正しいか
  • 返したい商品名や単価の列は正しいか
  • 検索範囲と戻り範囲の行数がそろっているか
  • 必要な範囲に絶対参照が付いているか

2.少量のテストデータで検算する

いきなり数千行の本番データで確認するのではなく、正解を目視できる商品コードで試します。

今回のサンプルであれば、B2へ「P003」を入力して「USB-Cハブ」が表示されれば基本検索を確認できます。さらに、存在しない「P999」を入力して「未登録」になることも確認します。

3.境界値と該当なしを確認する

正常なデータだけではなく、次のケースも確認します。

  • 検索セルが空欄
  • マスタに存在しないコード
  • 同じコードが重複している
  • 数字と文字列が混在している
  • 数式を下方向へコピーした後

ChatGPTへ業務データを入力するときの注意点

XLOOKUPを作るだけであれば、顧客名や社員名、実際の売上金額などをそのまま入力する必要はありません。列名と数行の匿名化したサンプルだけでも、数式の相談はできます。

たとえば顧客管理表なら、実在する氏名を使わず次のように置き換えます。

  • 顧客コード:C001
  • 顧客名:顧客A
  • 担当者:担当者A
  • 商品名:商品A

会社のExcelを扱う場合は、所属組織のAI利用ルールや情報セキュリティ規程を確認し、関数作成に不要な個人情報・顧客情報・社外秘情報を入力しない運用にします。

ChatGPTに任せる部分と人が確認する部分を分ける

ChatGPTはXLOOKUPの作成を速くする補助役として使うと扱いやすくなります。

作業ChatGPT人が確認
XLOOKUPの構文作成依頼しやすいセル参照を照合する
複数条件への変更依頼しやすい業務条件と一致するか確認する
エラー原因の候補整理依頼しやすい実際のExcelで原因を切り分ける
マスタデータの正しさ判断材料が不足しやすい元データを確認する
最終結果の正誤断定させない正解データと検算する

関数名を覚えることより、「何を検索して、どこから何を返したいのか」を説明できる状態を作ることが重要です。条件を整理してChatGPTへ渡し、最後はExcelで検算するという役割分担にすると、AIを使いながらXLOOKUPの仕組みも理解できます。

よくある質問

ChatGPTで作ったXLOOKUPはそのままExcelへ貼り付けられますか?

数式のセル参照と実際の表が一致していれば貼り付けられます。ただし、ChatGPTの回答を無確認で本番データへ使用せず、検索値、検索範囲、戻り範囲、期待される結果をテスト用データで確認してください。

ChatGPTにはExcelファイル全体を渡す必要がありますか?

単純なXLOOKUP作成なら、ファイル全体を渡さなくてもシート名、列名、セル位置、数行のサンプルを文章で伝えられます。業務データを扱う場合は、必要な情報だけに絞る方法を優先してください。

XLOOKUPを知らなくてもChatGPTに作ってもらえますか?

可能です。「B2の商品コードを商品マスタから探して商品名を表示したい」のように、最終的に何をしたいかを説明できます。ChatGPTへ適した関数を提案するよう依頼し、提案された式をExcelで確認してください。

商品コードが見つからないときに空白を表示できますか?

できます。XLOOKUPの「見つからない場合」に空文字を指定します。

=XLOOKUP(B2,商品マスタ!$A$2:$A$100,商品マスタ!$B$2:$B$100,"")

XLOOKUPが使えないExcelではどうすればよいですか?

利用環境に応じてVLOOKUPやINDEXとMATCHの組み合わせなどを検討します。ChatGPTへ使用しているExcelの環境を伝え、「XLOOKUPを使わず同じ結果になる式に変更してください」と依頼すると整理しやすくなります。

関連記事

まとめ

  • ChatGPTへ検索値、検索範囲、戻り範囲、例外処理を具体的に伝えると、実際の表に合わせたXLOOKUPを作りやすくなる
  • 商品コードから商品名を取得する基本形は、XLOOKUPの検索範囲と戻り範囲を実際のマスタ表に合わせることが重要
  • 空欄処理、未登録時の表示、末尾からの検索、複数条件なども日本語で条件を追加して修正できる
  • 数式が動かない場合は、使用した式、表示された結果、列の意味をまとめてChatGPTへ伝える
  • AIの回答をそのまま本番で使わず、セル参照、テストデータ、該当なしや重複データまで人が確認する

まずは数行の商品マスタを作り、商品コードから商品名を返す基本のXLOOKUPをChatGPTへ依頼してみてください。期待した結果が得られたことを確認してから、単価取得や空欄処理、複数条件など、自分の業務に必要な条件を一つずつ追加していく方法が安全です。

タイトルとURLをコピーしました