株式会社renue
AI導入・DXの悩みをプロに相談してみませんか?
AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。 renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。
VLOOKUPとは?何ができる関数?
VLOOKUP(ブイルックアップ)は、Excelで「表の中から特定の値を検索し、対応するデータを取り出す」関数です。
例えば以下のような場面で使います。
- 商品コードから商品名や価格を自動表示する
- 社員番号から氏名や部署名を取得する
- 顧客IDから連絡先を検索する
VLOOKUPのVは「Vertical(垂直)」の略。表を縦方向に検索するという意味です。
VLOOKUPの基本構文
=VLOOKUP(検索値, 範囲, 列番号, [検索の型])
| 引数 | 意味 | 具体例 |
|---|---|---|
| 検索値 | 何を探すか | 商品コード「A001」 |
| 範囲 | どの表から探すか | 商品マスタの範囲(A2:D100) |
| 列番号 | 見つけた行の何列目を返すか | 3(3列目=価格) |
| 検索の型 | 完全一致か近似一致か | FALSE(完全一致)※ほぼこれ |
【実践】VLOOKUPの基本的な使い方
例:商品コードから商品名を取得する
以下のような商品マスタ(A列〜C列)があるとします。
| A列:商品コード | B列:商品名 | C列:価格 |
|---|---|---|
| A001 | ノートPC | 120,000 |
| A002 | マウス | 3,500 |
| A003 | キーボード | 8,000 |
E2セルに商品コード「A002」を入力し、F2セルに以下の数式を入れます。
=VLOOKUP(E2, A2:C4, 2, FALSE)
結果:「マウス」が表示されます。
数式の読み方
E2:検索値(E2セルの「A002」を探す)A2:C4:この範囲の中から探す2:見つけた行の2列目(商品名)を返すFALSE:完全一致で検索
検索の型——FALSEとTRUEの違い
| 値 | 意味 | 使用場面 |
|---|---|---|
| FALSE(または0) | 完全一致 | 商品コード・社員番号など、一字一句一致するものを探す。実務のほぼ100%はこちら |
| TRUE(または1) | 近似一致 | 成績ランク表など、「○点以上→A」のような範囲検索に使う |
迷ったらFALSEを使いましょう。TRUEは特殊な用途に限られ、初心者が使うと意図しない結果になりやすいです。
VLOOKUPでよくあるエラーと対処法
#N/Aエラー
最も多いエラー。「検索値が見つからない」という意味です。
| 原因 | 対処法 |
|---|---|
| 検索値のスペルミス・全角半角の違い | TRIM関数で余分なスペースを除去。全角半角を統一 |
| 検索値が範囲の1列目にない | 範囲の1列目に検索値が含まれるよう範囲を修正 |
| 検索値のデータ型が違う(文字列 vs 数値) | VALUE関数で数値に変換、またはTEXT関数で文字列に統一 |
#N/Aエラーを非表示にしたい場合はIFERROR関数で囲みます。
=IFERROR(VLOOKUP(E2, A2:C4, 2, FALSE), "該当なし")
#REFエラー
列番号が範囲の列数を超えている場合に発生します。例えば、3列しかない範囲で列番号に「4」を指定するとエラーになります。
#VALUE!エラー
列番号に数値以外(文字列など)を指定した場合に発生します。
VLOOKUPの応用テクニック
応用1:別シートのデータを検索する
=VLOOKUP(A2, Sheet2!A:D, 3, FALSE)
「Sheet2」シートのA列〜D列を検索範囲に指定できます。
応用2:ワイルドカードであいまい検索
=VLOOKUP("*ノート*", A2:C100, 2, FALSE)
「*」は任意の文字列を表すワイルドカード。「ノート」を含む商品名を検索できます。
応用3:複数条件で検索する
VLOOKUPは本来1つの検索値しか使えませんが、検索値を結合することで複数条件を実現できます。
=VLOOKUP(A2&B2, 検索範囲, 列番号, FALSE)
検索範囲の1列目にも同様に結合した値を用意しておく必要があります。
応用4:列番号をMATCH関数で自動化する
=VLOOKUP(E2, A2:D100, MATCH("価格", A1:D1, 0), FALSE)
MATCH関数で「価格」列の位置を自動取得。列の並び替えに強い数式になります。
VLOOKUPとXLOOKUPの違い
Excel 2021 / Microsoft 365以降では、VLOOKUPの進化版であるXLOOKUPが使えます。
| 機能 | VLOOKUP | XLOOKUP |
|---|---|---|
| 検索方向 | 右方向のみ | 左右どちらも可 |
| 検索列の位置 | 範囲の1列目のみ | 任意の列 |
| 列番号の指定 | 数値で指定(列を追加すると崩れる) | 戻り値の範囲を直接指定 |
| 見つからない場合 | #N/A(IFERRORで対処) | 第4引数で代替値を指定可能 |
| デフォルトの検索型 | TRUE(近似一致) | 完全一致 |
| 対応バージョン | 全バージョン | Excel 2021 / 365以降 |
XLOOKUPの基本構文
=XLOOKUP(検索値, 検索範囲, 戻り値範囲, [見つからない場合], [一致モード], [検索モード])
同じ処理の比較
■ VLOOKUP =VLOOKUP(E2, A2:C100, 2, FALSE) ■ XLOOKUP(同じ結果) =XLOOKUP(E2, A2:A100, B2:B100)
XLOOKUPのほうがシンプルで、列番号を数える必要がありません。新しいExcelを使っているならXLOOKUPを推奨しますが、他の人と共有するファイルではVLOOKUPのほうが互換性が高いです。
VLOOKUPを使う際の注意点
注意点1:検索値は必ず範囲の1列目に
VLOOKUPは範囲の1列目(左端)しか検索できません。検索したい列が左端にない場合は、列を並び替えるか、XLOOKUPまたはINDEX+MATCH関数を使いましょう。
注意点2:範囲は絶対参照で固定する
数式をコピーする場合、範囲がずれないようF4キーで絶対参照($A$2:$C$100)にしましょう。
注意点3:大量データでは処理が重くなる
数万行を超えるデータでVLOOKUPを多用すると、ファイルが重くなります。INDEX+MATCH関数のほうが処理速度に優れることがあります。
よくある質問
Q. VLOOKUPで左側の列を検索できますか?
VLOOKUPでは不可能です。XLOOKUP、またはINDEX+MATCH関数を使いましょう。
Q. VLOOKUPで複数の結果を返せますか?
VLOOKUPは最初に見つかった1件のみ返します。複数の結果を返すには、FILTER関数(Excel 365)を使います。
Q. VLOOKUPとHLOOKUPの違いは?
VLOOKUPは縦方向(Vertical)に検索、HLOOKUPは横方向(Horizontal)に検索します。通常の表はVLOOKUPで対応できます。
まとめ
- VLOOKUPは「表から値を検索して取り出す」Excel最頻出の関数
- 構文は=VLOOKUP(検索値, 範囲, 列番号, FALSE)。FALSEは完全一致
- #N/Aエラーは検索値の不一致が原因。IFERRORで非表示にできる
- 範囲は絶対参照($付き)で固定すること
- Excel 365を使っているならXLOOKUPへの移行がおすすめ
VLOOKUPを使いこなせると、Excel作業の効率が劇的に上がります。本記事の例を参考に、実務で使ってみてください。

