ExcelのVLOOKUP関数の使い方|引数・エラー対処・INDEX+MATCHとの使い分けまで

スポンサーリンク

「VLOOKUP関数を使いたいけど、引数の意味がわからない」「#N/Aエラーが出て困っている」という声はよく聞きます。VLOOKUPはExcel関数の中でもトップクラスの検索数を誇る人気関数です。ただ、引数が4つあるぶん最初はとっつきにくいですよね。

この記事では、VLOOKUPの基本的な書き方からエラーの直し方まで解説します。さらにINDEX+MATCHやXLOOKUPとの使い分けも紹介するので、読み終えるころには「VLOOKUPで困ることはほぼない」状態になれるはずです。

この記事は次のような人におすすめ
– 表からデータを自動的に検索・取得したい人
– VLOOKUPのエラーが出て原因がわからない人
– INDEX+MATCHやXLOOKUPとの違いを知りたい人

VLOOKUP関数とは?

読み方と基本的な役割

VLOOKUPは「ブイルックアップ」と読みます。Vertical(垂直)+ Lookup(検索)が名前の由来です。

やっていることはシンプルです。「この値を探して、同じ行にある別の列の値を持ってきて」という指示を出す関数です。

たとえば社員番号を入力したら名前や部署を自動で表示する。商品コードから価格を引っ張ってくる。こうした「表からデータを探す」作業を一発で片付けてくれます。

VLOOKUP関数が向いている場面

VLOOKUPが活躍するのは、次のような場面です。

  • マスタ表から情報を取得するとき(商品コード → 商品名など)
  • 別シートのデータを参照したいとき
  • 請求書や見積書でコードから自動入力したいとき

「検索したい値が表の一番左にある」ならVLOOKUPの出番です。Excel 2007以前を含む全バージョンで使えるので、共有ファイルでも安心して使えます。

VLOOKUP関数の書き方(構文と引数)

基本構文

VLOOKUPの構文はこちらです。

=VLOOKUP(検索値, 範囲, 列番号, [検索の型])

引数は4つあります。最後の「検索の型」だけ省略できます。

引数の説明

引数必須/省略可意味指定例
検索値必須探したい値。セル参照が一般的A2
範囲必須検索対象の表。最左列に検索値を含むことB2:E100
列番号必須範囲の左端から数えて何列目を返すか(1以上の整数)3
検索の型省略可FALSE = 完全一致 / TRUE = 近似一致FALSE

ポイントは「範囲の左端列」で検索が行われることです。検索したい値が左端にない場合は、範囲の取り方を見直してください。

検索の型(FALSE / TRUE)の使い分け

ここがVLOOKUPで一番つまずきやすい部分です。

FALSE(完全一致) は、検索値とぴったり一致するものだけを探します。実務の9割はこちらです。一致しなければ#N/Aエラーが返ります。

=VLOOKUP(A2, マスタ!A:D, 3, FALSE)

TRUE(近似一致) は、検索値以下で最も大きい値を返します。料金表やランク判定で使います。ただし検索列の昇順ソートが必須です。

=VLOOKUP(A2, 料金表!A:B, 2, TRUE)

NOTE

検索の型を省略するとデフォルトはTRUEになります。ここが最大の落とし穴です。「なんか変な値が返る」の原因は、たいていこの省略です。迷ったらFALSEを明示してください。

VLOOKUP関数の基本的な使い方

同じシート内でデータを検索する

商品コードから商品名を取得する例で見てみましょう。

B列〜D列に商品マスタがあるとします。B列が商品コード、C列が商品名、D列が価格です。

G2に入力したコードから商品名を取得するにはこう書きます。

=VLOOKUP(G2, B2:D100, 2, FALSE)

各引数の意味は次のとおりです。

  • G2:検索値(入力した商品コード)
  • B2:D100:範囲(商品マスタ全体)
  • 2:範囲の左から2列目(商品名)を返す
  • FALSE:完全一致で検索

別シートのデータを参照する

実務では検索先が別シートにあることがほとんどです。シート名のあとに「!」をつけて範囲を指定します。

=VLOOKUP(A2, マスタ!A:D, 3, FALSE)

シート名に空白が含まれる場合は、シングルクォーテーションで囲みます。

=VLOOKUP(A2, '商品 マスタ'!A:D, 3, FALSE)

別ブックのデータを参照する場合は、ブック名を角括弧で囲みます。

=VLOOKUP(A2, [顧客マスタ.xlsx]顧客情報!A:D, 4, FALSE)

絶対参照のポイント(F4キー)

VLOOKUPを下方向にコピーすると、範囲がズレることがあります。範囲は絶対参照で固定しましょう。

セル参照を選択した状態でF4キーを押すと「$」がつきます。

=VLOOKUP(A2, $B$2:$D$100, 2, FALSE)

検索値のA2は相対参照のまま、範囲だけ固定するのが正しい使い方です。

VLOOKUP関数の実務活用パターン

IFERROR関数と組み合わせてエラーを回避する

VLOOKUPは検索値が見つからないと#N/Aエラーを返します。資料の見栄えが悪いですし、後続の計算にも影響します。

IFERROR関数で囲めば、エラー時に任意の値を表示できます。

=IFERROR(VLOOKUP(A2, マスタ!$A:$D, 3, FALSE), "該当なし")

実務では「該当なし」や空文字「””」を指定するケースが多いです。

近似一致(TRUE)で価格帯・ランク判定する

売上金額からランクを判定する場面では、近似一致が便利です。

たとえば、ランク表が次のようになっているとします。

下限金額ランク
0C
100000B
300000A
500000S

この表をF2:G5に置いたとします。B2の売上金額に対してランクを返すにはこう書きます。

=VLOOKUP(B2, $F$2:$G$5, 2, TRUE)

B2が250,000なら「B」が返ります。250,000以下の最大値は100,000なので、その行のランクが選ばれるわけです。

近似一致を使うときは、下限金額を必ず昇順で並べてください。

ワイルドカードで部分一致検索する

検索の型をFALSEにしたまま、ワイルドカードで部分一致検索ができます。

=VLOOKUP("*東京*", A2:C100, 2, FALSE)

「*」は任意の文字列、「?」は任意の1文字にマッチします。「東京」を含む最初のデータを探したいときに使えます。

セル参照を使う場合は「&」で連結します。

=VLOOKUP("*"&E2&"*", A2:C100, 2, FALSE)

複数条件で検索する(補助列の活用)

VLOOKUPは検索値をひとつしか指定できません。「部署」と「役職」の2条件で検索したい場合は、補助列を作りましょう。

補助列に2つの値を「&」で連結した値を入れます。

=A2&"-"&B2

VLOOKUPの検索値も同じように連結します。

=VLOOKUP(E2&"-"&F2, 補助列を含む範囲, 列番号, FALSE)

補助列を増やしたくない場合は、INDEX関数MATCH関数の組み合わせも検討してください。

よくあるエラーと対処法

#N/Aエラー

「検索値が見つからない」という意味のエラーです。主な原因は次の4つです。

原因確認ポイント対処法
値が存在しないマスタ側に該当データがあるかデータを追加するか、IFERRORで対処
データ型の不一致数値と文字列が混在していないかVALUE関数で統一
余分なスペース見えない空白が入っていないかTRIM関数で除去
範囲がズレている絶対参照をつけ忘れていないかF4キーで$を付与

#REF!エラー

列番号が範囲の列数を超えているときに出ます。

たとえば範囲がA:Cの3列なのに、列番号に4を指定した場合です。列を削除した直後にも起こりやすいエラーです。範囲と列番号の対応を見直してください。

間違った値が返る

エラーにはならないのに、期待と違う値が返る。これが一番やっかいなケースです。

最も多い原因は「検索の型を省略してTRUEになっているのに、データが昇順ソートされていない」パターンです。FALSEを明示すれば解決します。

もうひとつは範囲の最左列が検索対象と一致していないケースです。範囲の開始列を確認してみてください。

VLOOKUPの弱点と代替関数の使い分け

VLOOKUPは便利ですが、万能ではありません。弱点を知っておくと、場面に応じた関数選びがスムーズになります。

VLOOKUPの3つの制約

  1. 左方向に検索できない: 範囲の最左列でしか検索できません。検索値の左側にある列の値は取得できません
  2. 列番号がハードコード: 列の挿入や削除で番号がズレて壊れます
  3. 最初の一致しか返さない: 重複データがあっても、最初に見つかった1件だけが返ります

VLOOKUP / INDEX+MATCH / XLOOKUP 比較表

特徴VLOOKUPINDEX+MATCHXLOOKUP
左方向検索不可可能可能
列追加への耐性弱い(番号ズレ)強い強い
エラー時の既定値IFERROR必要IFERROR必要引数で指定可
デフォルトの一致方式近似一致(TRUE)完全一致(0指定)完全一致
必要なExcelバージョン全バージョン全バージョン2021以降 / 365
数式の読みやすさシンプルやや複雑シンプル

どの関数を選べばいい?

判断基準はシンプルです。

  • Excel 2021 / 365を使っているXLOOKUP関数を第一候補に。VLOOKUPの弱点をすべて解消しています
  • 古いバージョンとの互換性が必要 → VLOOKUPで足りるならVLOOKUP。左方向検索が必要ならINDEX関数 + MATCH関数
  • シンプルな右方向検索だけ → VLOOKUPで十分です

VLOOKUPは「古い関数」と言われることもありますが、多くの場面で今も問題なく使えます。無理に乗り換える必要はありません。

まとめ

VLOOKUPのポイントを振り返ります。

  • 構文は =VLOOKUP(検索値, 範囲, 列番号, 検索の型) の4引数
  • 検索の型は省略せずFALSEを明示するのが安全
  • 範囲の絶対参照とIFERRORの組み合わせは実務の必須テクニック
  • #N/Aエラーは「データ型の不一致」や「余分なスペース」を疑う
  • 左方向検索や列追加への耐性が必要ならXLOOKUPやINDEX+MATCHを検討

まずは基本の完全一致検索をマスターしましょう。そこからIFERRORやワイルドカードのテクニックを組み合わせてみてください。

関連記事

エラー値についてのまとめ記事

関数でエラーが発生した際に表示されるエラーの種類と対処方法は、以下の記事でまとめています。

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