Excelの関数機能は非常に便利ですが、数が多すぎて「どの関数を使えばいいのか」を判断するのは意外と難しいものです。
しかしネットで調べようにも、そもそもどの関数を使えばいいのかすら分からなければ、検索のしようもなくなり困った経験がある方も多いのではないでしょうか?(「Excel関数 合否判定」「Excel関数 合計 平均」のように、なんとなく関連しそうなキーワードを検索バーに羅列して、それらしい記事を一つずつ見て回るという感じだと思います)
しかし最近では、AIに“やりたいこと”をそのまま伝えるだけで、最適な関数を提案してくれる ようになっています。
本記事では、実際にAIを活用してエクセルの関数(VLOOKUP関数編)を調べる方法を紹介します。
✅この記事を読む前に
以下の記事では、AIを使った調べ方と従来の検索方法のメリットデメリットを検証しています。お時間がございましたらこちらの記事も是非読んでみてください。
✅マクロ・VBAに興味がある方へ
エクセルの関数はある程度使えこなせるけど、マクロと聞くと躊躇してしまう・・・。そんな方に向けた記事になります。
今回の目標


今回の目標は、商品名を商品コードを基に別シート「Sheet2」から引っ張ってくるというもの。
ただ商品名を引っ張ってくるだけでなく、カテゴリを商品名の後ろに括弧書きで表示させるところもポイント。
※前提としてそもそもどの関数を使うかわからない状態として調べていきます(関数名からは調べない)
直感的に質問してみる(ステップ1)
まずは難しいことを考えず、「やりたいこと」をそのままAI(Gemini)に聞いてみます。
(以下は実際のやり取りであり、内容をほぼそのままコピペしています)

エクセルの関数を教えて
商品コードをもとに商品名を別のシート(商品コードと商品名の表がある)から引っ張ってくる

商品コードをもとに別のシートから商品名を引っ張ってくるには、VLOOKUP関数を使うのが一般的です。この関数は、指定した範囲の左端の列で検索し、同じ行の指定した列にある値を返します。
VLOOKUP関数の使い方
VLOOKUP関数は以下の書式で使います。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
それぞれの引数の意味は以下の通りです。
- 検索値: 探したい値。この場合、商品コードがこれにあたります。
- 範囲: 検索の対象となる表全体。別のシートにある、商品コードと商品名の表を指定します。
- 列番号: 範囲の左端から数えて、返したい値が入っている列の番号。商品コードの列が1番目、商品名の列が2番目なので、2を指定します。
- 検索方法:
TRUE
(近似一致)かFALSE
(完全一致)を指定します。商品コードを正確に見つけたいので、FALSE
を指定します。
具体的な入力例
たとえば、シート1のA2セルに商品コードがあり、別のシート(ここでは「商品マスタ」シートとします)に商品コードと商品名の表があるとします。
商品マスタシートの表がA列からB列にあり、データがA2からB100まである場合、商品名を引っ張ってきたいセルに以下の式を入力します。
=VLOOKUP(A2, 商品マスタ!A2:B100, 2, FALSE)
この式をコピーして他のセルに貼り付ける場合は、範囲を絶対参照($)にしておくのがおすすめです。
=VLOOKUP(A2, 商品マスタ!$A$2:$B$100, 2, FALSE)
結果の検証
お目当ての関数は「VLOOKUP」ではないか?とのこと。
具体的に使えそうな式:=VLOOKUP(A2, 商品マスタ!$A$2:$B$100, 2, FALSE)
早速上記の式を自分の環境に合わせて実際に使ってみます。
・検索値(Sheet1の商品コード):A2 → E3
・範囲(Sheet2の表全体):商品マスタ!$A$2:$B$100 → Sheet2!A1:C5
・列番号(範囲の左端から何番目に商品名があるか):2 → 2
・検索方法(同じ商品コードを探したいから完全一致のみ):FALSE → FALSE

おお!これはもう8割方できたといってもいいのではないでしょうか?
1つエラー表示(#N/A)がありますが、そもそも商品コード(PRD_500)が表に無かったわけですからこれは正しいですね。
ただ、商品名の後ろに括弧書きでカテゴリ名を入れる部分はまだ実装できていません。(そもそもAIに指示をしていなかった・・・)
指示の仕方次第ではもっとアップデートできそうなので、続けて指示を与えてみましょう。
カテゴリ名の実装、セル指定、エラー表示改善(ステップ2)
カテゴリ名の実装に加えて、エラー表示や具体的なセルを指定することで、よりオリジナルの式を作ってもらいましょう。

表示したい商品名はG3~G8
検索したい商品コードはE3~E8にあり、「Sheet2」というシート名のA列に商品コード、B列に商品名、C列にはカテゴリ(文具や電子機器のような)「Sheet2」の表の範囲はA1からC5
表示したい商品名には、商品名だけでなく、後ろに括弧書きでカテゴリ名を入れてほしい
例:ノート(文具)
みたいな感じ
また、探している商品コードが存在しない場合はエラー表示ではなく「一致する商品コードが無い」と表示させて

お任せください。ご要望のExcel関数を作成します。
ご希望の表示を実現するには、VLOOKUP関数とIFERROR関数、そして文字列を結合するための**&**(アンパサンド)を組み合わせる必要があります。
VLOOKUPとIFERROR、&を組み合わせた関数
G3セルに以下の関数を入力し、G8セルまでコピーしてください。
=IFERROR(VLOOKUP(E3, Sheet2!$A$1:$C$5, 2, FALSE) & "(" & VLOOKUP(E3, Sheet2!$A$1:$C$5, 3, FALSE) & ")", "一致する商品コードが無い")
関数の解説
この関数は、以下の3つのステップで動作します。
- VLOOKUPで商品名とカテゴリ名を取得
VLOOKUP(E3, Sheet2!$A$1:$C$5, 2, FALSE)
:E3セルにある商品コードを「Sheet2」のA1からC5の範囲で探し、2列目(商品名)を返します。VLOOKUP(E3, Sheet2!$A$1:$C$5, 3, FALSE)
:同様に、3列目(カテゴリ)を返します。
- &で文字列を結合
&
(アンパサンド)を使って、取得した商品名とカテゴリ名を「(」と「)」で結合します。これにより「商品名(カテゴリ)」という形式になります。
- IFERRORでエラー表示を制御
IFERROR(〜, "一致する商品コードが無い")
:VLOOKUPで商品コードが見つからない場合、通常は#N/A
というエラーが表示されます。この関数は、エラーが発生した場合に、指定した「一致する商品コードが無い」というテキストを表示するように制御します。
この関数をG3セルに入力してG8まで適用することで、ご希望の表示形式で商品名とカテゴリ名が表示されます。
私の指示が非常に拙いですが、これはあえてGeminiの読解力を試してあげています💦
では本当にこれで上手くいくのか検証していきたいと思います。
結果の検証
今回はセルまで指定したので、回答してくれた=IFERROR(VLOOKUP(E3, Sheet2!$A$1:$C$5, 2, FALSE) & "(" & VLOOKUP(E3, Sheet2!$A$1:$C$5, 3, FALSE) & ")", "一致する商品コードが無い")
この式を試しにそのままコピペして使ってみることにします。

お見事!
カテゴリの括弧書き表示も、エラー表示のテキスト置き換えも完璧に実装されています。そして具体的なセルを予め伝えたことで、そのままコピペして使えるという状態にまでしてくれました!
まとめ
今回はAIだけを使ってExcelの関数を調べるための手順を一例を通じて紹介しました。AIを利用する上で、最も重要なのは「プロンプト」と呼ばれるもので、これはAIに実行させるための指示書のようなものです。AIはネット上に存在するあらゆる情報を記憶、蓄積しており、人間の指示(プロンプト)をもとに回答を導き出します。どれだけ優秀な部下を持とうと、あなたの指示が間違っていれば、間違ったことを完璧に返してきます。
つまり、AIを使いこなすカギは、指示の仕方にあります。
とはいえ、別に身構える必要はありません。画像生成などの比較的高度なAIでなければ、今回示した通り、直感的な人間会話レベルの文を日本語でそのまま打ち込めばOKです。
あまり難しく考えず、あなたに超優秀なプログラマーの部下でもできたと思って、気軽に利用してみてはいかかがでしょうか。
コメント