【Excel】VLOOKUP関数の使い方をわかりやすく解説|使用例からエラー対策まで

スポンサードリンク
Excel
VLOOKUPが必要な場面

上図のように右の商品コードが左の一覧に存在するのかを確認したいとき、
あるいは商品コードに対応した商品名を抽出したいと思う場面があるかと思います。
そんなときに使えるのがVLOOKUP関数です。

この記事では、VLOOKUP関数の使い方や使用例をわかりやすく解説し、エラー対策も紹介いたします。

-著者情報-
名前:Utatane
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします

※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。

実演パソコンのスペック(ソフトやバージョンによっては、表示や結果が異なる場合があります)

  • OS:Windows11 Home 64bit
  • Excel:Microsoft Office Home and Business 2021
スポンサードリンク

【Excel】VLOOKUP関数の使い方

VLOOKUPとは、Excel内の特定の列を検索することができる関数です。
指定の値と一致するセルを確認したり、隣の列の値を抽出したりすることができます。

基本構文(引数・返り値)

VLOOKUP関数の基本構文は以下の通りです。

▼VLOOKUP関数
=VLOOKUP(検索ワード, 検索範囲, 返す値の列番号, 検索方法)

引数に「検索ワード」「検索範囲」「返す値の列番号」「検索方法」を指定します。

  • 検索ワード:検索する値。文字列を直接入力するか、セルや数式・関数などで指定。
  • 検索範囲:検索ワードを検索するセル範囲を指定。「A:D」など、一列単位でもOK。
  • 返す値の列番号:数値を直接入力するか、セルや数式・関数などで指定
  • 検索方法:0(またはFALSE)なら完全一致、1(またはTRUE)なら近似一致
    近似一致は仕組みが難しいため、基本的に完全一致を使うのが無難

検索範囲から検索ワードを検索し、見つかったら返す値の列番号に応じた値が返り値となります。

文章で説明してもピンと来ないと思いますので、具体例を見ていきましょう。

指定のワードを検索

VLOOKUPで指定のワードを検索1

上図のようなデータがあります。
A0003という商品コードがA~B列の一覧に存在するのかを検索してみましょう。

E2セルに下記の通り入力します。

=VLOOKUP("A0003", A:B, 1, 0)

検索ワードを文字列で指定する場合は、「”(ダブルクォーテーション)」で囲う必要があります。

検索ワードを文字列ではなく、下記のようにセル参照で指定することもできます。

=VLOOKUP(D2, A:B, 1, 0)

この場合も結果は同じです。
また、検索ワードをセルを参照で指定する場合は、「”」で囲う必要はありません。

結果は下図のとおりです。

VLOOKUPで指定のワードを検索2

商品コード「A0003」は商品一覧に存在するため、検索ワードがそのまま返り値として返され、表示されました。

では一覧に無い「A0009」で試してみましょう。

VLOOKUPで指定のワードを検索3

「A0009」は一覧に無いため、エラーが返ってきました。
検索結果が見つからなかった場合は、「#N/A」と表示されることを覚えておきましょう。

【数値と文字列の違いに注意】

VLOOKUP関数で不一致となるケース(数値と文字列)1

上図を見てみると、あきらかにコード「2」が一覧に存在するはずなのにエラーが出てしまっています。
これは型違い(数値と文字列)による不一致と判定されたためのエラーです。
よく見ると右側の検索ワードの「2」は左上に三角印があるため文字列なのに対し、一覧の商品コードは数値です。

数値・文字列を統一させるか、「VALUE関数(数値に変換)」などを使って対処しましょう。

VLOOKUP関数で不一致となるケース(数値と文字列)2

検索ワードに対応した項目を抽出

前項では商品コードそのものを検索しましたが、今度は商品コードに対応した商品を抽出してみましょう。
元データは前項と同じです。

VLOOKUP関数で検索ワードに対応した項目を抽出1

では、E2に下記の通り入力してみましょう。

=VLOOKUP("A0003". A:B, 2, 0)
または
=VLOOKUP(D2. A:B, 2, 0)

前項と比べて、返す値の列番号が1→2に変わっただけです。
結果を見てみましょう。

VLOOKUP関数で検索ワードに対応した項目を抽出2

「A0003」に対応した商品「せんべい」が返され、セルに表示されました。
これは、返す値の列番号を「2」にしたため、2番目であるB列の値が返されたということです。

返す値の列番号を「3」にすると3列目であるC列の値が返されるのですが、
今回は検索範囲をA~B列で指定しているため、範囲を超えたC列は返されず、エラーとなります。

VLOOKUP関数で検索ワードに対応した項目を抽出3

別シート・別ブックをまたいで使用する

VLOOKUP関数は別シートや別ブックをまたいで使用することができます。
下図は検索範囲に別シートのA~B列を指定した例です。

別シートをまたいでVLOOKUP関数を使用

やり方は検索範囲指定のときにシート名(今回は「Sheet2」)+「!」を入力するか、
下部のシートタブをクリックしてから検索範囲を指定します。

「!」までがシート名ですよという目印です。

別ブックを参照する場合もほぼ同じです。
(別ブックを選択 → シートタブを選択 → 検索範囲を選択)

別ブックをまたいでVLOOKUP関数を使用

[]内が別ブックのファイル名ですよという目印です。

別ブックの検索範囲を指定した場合は、自動的に絶対参照になります。
参照については下記記事をご参考ください。

複数の値を一括で検索

ここまでなら、Excelの検索機能で代用できるのでは?と思うかもしれません。
その通りです。
しかしながら、VLOOKUP関数の魅力はここからです。

下図のように複数の値を検索したい場合があったとします。

複数の値を一括で検索1

検索機能で1つ1つ確認するのは大変です。
では、E2セルを下へコピーしてみましょう。

複数の値を一括で検索2

他の値も結果が表示されました。

複数の値を一括で検索3

このように、複数の値も一瞬で検索できるのが、VLOOKUP関数の魅力です。

スポンサードリンク

VLOOKUP使用時によくあるエラー

#N/A

VLOOKUP関数を使用したセルに「#N/A」が表示された場合は、検索ワードが見つからなかったことを示しています。明らかに存在しているのにエラーが出る場合は、数値と文字列などの型違いが原因かもしれません。
VALUE関数を使うなどして、型を一致させましょう。

目に見えないスペースが入っていて検索ワードと一致しないと判断されている場合もあります。
検索ワードや一覧データのセル内をよく調べてみましょう。

検索ワードが見つからなくてもいいから、エラーを表示させたくない場合は、IFERROR関数を使うことで実現できます。

VLOOKUP関数で#N/Aエラーとなるケース

IFERROR関数は、結果がエラーだった場合の処置を指定できます。
今回は、セルに「見つかりません」と表示させてみました。

#REF!

VLOOKUP関数を使用したセルに「#REF!」が表示された場合は、検索範囲を超える列の値を返そうとしたことが原因です。
例えば「検索範囲」が「A:B」で「返す値の列番号」が「3」なら検索範囲をオーバーしています。
「検索範囲」と「返す値の列番号」をよく確認してみましょう。

スポンサードリンク

VLOOKUP使用時の注意点

左端からしか検索できない

検索ワードを探す列は、検索範囲の一番左側で指定する必要があります。
例えばB列の中から検索ワードを探したいのに、範囲をA~C列にしてしまうと、見つけることができません。

列の追加・削除に弱い

途中で検索範囲内に列が追加されたり削除されたりすると、抽出項目がズレてしまいます。
これにより、全く違う項目が抽出されたり、エラーが起こる場合があります。

一応XLOOKUP関数で対処は可能ですが、検索範囲の列は追加・削除しないようにしましょう。

重複する値は一番上のものが返される

重複する値はVLOOKUP関数で一番上のものが返される

上図のように検索する値が複数存在する場合は、一番上のものが返されます。
重複する項目がある場合は、予期せぬ間違いが起こる場合がありますので注意しましょう。

今回の場合は、「商品」と「サイズ」を「&(アンド)」で結合した列を新たに作ることで解決します。

重複する値がある場合の対処法1

VLOOKUP関数の「検索ワード」も同様に「&」で「せんべい大」を指定してください。

重複する値がある場合の対処法2
スポンサードリンク

HLOOKUP・XLOOKUPとの違い

よく似た関数に「HLOOKUP」「XLOOKUP」があります。
VLOOKUPとこれらの違いについて解説いたします。

HLOOKUP

「HLOOKUP」は、「VLOOKUP」の行と列が入れ替わった関数だと思ってください。
VLOOKUPは、1列目の上から検索が始まり、見つかったら2列目の値などを返すのに対し、
HLOOKUPは、1行目の左から検索が始まり、見つかったら2行目の値などを返します。

HLOOKUP関数の使用例

上図のような、行と列が逆のデータに対して検索を行う場合に有効です。

XLOOKUP

「VLOOKUP」は「検索範囲」と「返す値の列番号」を指定するのに対し、
「XLOOKUP」「検索範囲(1列)」と「返す値の範囲(1列)」を指定します。
例えば、「検索範囲」をA列、「返す値の範囲」をC列という具合に指定することができます。
これにより、返す値の列番号を数えたりしなくていい上に、列の追加や削除を行っても問題ありません。

XLOOKUP関数の使用例
スポンサードリンク

最後に

ExcelのVLOOKUP関数について解説いたしました。

当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

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