VLOOKUPの使い方|初心者向けに基本からエラー対策までわかりやすく解説
Excelで名簿、商品一覧、売上表、在庫表などを扱っていると、別の表から必要な情報を自動で取り出したい場面があります。
たとえば、次のような作業です。
- 商品コードを入力すると、商品名や単価を自動表示したい
- 社員番号を入力すると、氏名や部署を表示したい
- 顧客IDをもとに住所や電話番号を取り出したい
- 売上表の商品コードから商品マスタの単価を参照したい
このようなときに便利なのが、ExcelのVLOOKUP関数です。
VLOOKUPを使えるようになると、手作業でデータを探す必要が減り、入力ミスや確認作業を大きく減らせます。
この記事では、VLOOKUPの基本的な使い方、具体例、よくあるエラー、便利な活用方法まで、初心者にもわかりやすく解説します。
VLOOKUPとは
VLOOKUPとは、Excelで縦方向の表から指定した値を探し、同じ行にある別の列の値を取り出す関数です。
たとえば、商品コードをもとに商品名を探す場合、VLOOKUPを使うと次のようなことができます。
| 商品コード | 商品名 | 単価 |
|---|---|---|
| A001 | ノート | 120 |
| A002 | ペン | 80 |
| A003 | ファイル | 250 |
この表から、商品コード「A002」に対応する商品名「ペン」や単価「80」を取り出せます。
VLOOKUPの「V」は、Verticalの略で、縦方向という意味です。
つまり、VLOOKUPは縦に並んだ一覧表から情報を検索する関数です。
VLOOKUPでできること
VLOOKUPを使うと、次のような作業を自動化できます。
| やりたいこと | 例 |
|---|---|
| コードから名称を表示する | 商品コードから商品名を表示 |
| IDから情報を取得する | 社員番号から氏名・部署を表示 |
| 単価を自動入力する | 商品コードから単価を表示 |
| 区分から分類名を表示する | 区分コードから分類名を表示 |
| 点数から評価を判定する | 点数に応じて評価を表示 |
特に、マスタ表と呼ばれる一覧表から情報を引っ張ってくる作業に向いています。
VLOOKUPの基本構文
VLOOKUP関数の基本形は次のとおりです。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
それぞれの意味は以下のとおりです。
| 引数 | 意味 | 例 |
|---|---|---|
| 検索値 | 探したい値 | 商品コード、社員番号など |
| 範囲 | 検索する表の範囲 | 商品マスタ表 |
| 列番号 | 取り出したい列が範囲内の何列目か | 2列目、3列目など |
| 検索方法 | 完全一致か近似一致か | FALSEまたはTRUE |
初心者の場合、まずは次の形を覚えれば十分です。
=VLOOKUP(探したい値, 探す表, 取り出す列番号, FALSE)
最後の FALSE は、完全一致で探すという意味です。
商品コードや社員番号のように、ぴったり同じ値を探したい場合は、基本的に FALSE を使います。
VLOOKUPの基本例
ここでは、商品コードから商品名を表示する例で説明します。
- 商品マスタ表
- 1. 検索値
- 2. 範囲
- 3. 列番号
- 4. 検索方法
- 商品マスタ
- 売上入力表
- 悪い例
- 良い例
- 別シート参照の例
- 1. #N/Aエラー
- 原因
- 解決方法
- 2. #REF!エラー
- 原因
- 解決方法
- 3. #VALUE!エラー
- 原因
- 解決方法
- 空白にする場合
- 「該当なし」と表示する場合
- IFERRORを使うメリット
- 評価表の例
- 近似一致を使うときの注意点
- 1. 左側の列は検索できない
- 解決方法
- 2. 列を追加すると列番号がずれることがある
- 対策
- 3. 検索値の重複に注意する
- 対策
- 1. 商品コードから商品名を表示する
- 2. 商品コードから単価を表示する
- 3. 社員番号から氏名を表示する
- 4. 顧客IDから住所を表示する
- 5. 点数から評価を判定する
- 1. マスタ表を整える
- 2. 検索範囲は絶対参照にする
- 3. 完全一致はFALSEを使う
- 4. エラー対策にはIFERRORを使う
- 5. データ形式を統一する
- 主な違い
- 商品名を表示する
- 単価を表示する
- エラー時に空白を表示する
- 点数から評価を表示する
商品マスタ表
まず、以下のような商品マスタがあるとします。
| A列 | B列 | C列 |
|---|---|---|
| 商品コード | 商品名 | 単価 |
| A001 | ノート | 120 |
| A002 | ペン | 80 |
| A003 | ファイル | 250 |
| A004 | 消しゴム | 60 |
別の表で、商品コードを入力したら商品名を自動表示したいとします。
| E列 | F列 |
|---|---|
| 商品コード | 商品名 |
| A002 |
このとき、F2セルに次の数式を入力します。
=VLOOKUP(E2,A:C,2,FALSE)
すると、E2セルの「A002」をA列から探し、同じ行の2列目、つまりB列の商品名「ペン」を表示します。
VLOOKUPの引数を詳しく解説
1. 検索値
検索値とは、探したい値のことです。
例:
=VLOOKUP(E2,A:C,2,FALSE)
この場合、検索値は E2 です。
E2セルに入力されている商品コードを、指定した範囲の左端列から探します。
検索値の例
- 商品コード
- 社員番号
- 顧客ID
- 郵便番号
- 部署コード
- 管理番号
ポイントは、検索値は検索範囲の一番左の列にある必要があることです。
2. 範囲
範囲とは、検索に使う表全体のことです。
例:
=VLOOKUP(E2,A:C,2,FALSE)
この場合、範囲は A:C です。
A列からC列までを検索対象とし、左端のA列から検索値を探します。
範囲指定の例
| 指定方法 | 内容 |
|---|---|
| A:C | A列からC列全体 |
| A1:C100 | A1からC100まで |
| 商品マスタ!A:C | 別シートの商品マスタのA列からC列 |
| $A$1:$C$100 | 固定された範囲 |
VLOOKUPでは、範囲の一番左の列で検索します。
そのため、検索したいコードやIDは、指定範囲の左端に置く必要があります。
3. 列番号
列番号とは、指定した範囲の中で、何列目の値を取り出すかを指定する数字です。
例:
=VLOOKUP(E2,A:C,2,FALSE)
この場合、範囲はA列からC列です。
| 範囲内の列番号 | 実際の列 | 内容 |
|---|---|---|
| 1 | A列 | 商品コード |
| 2 | B列 | 商品名 |
| 3 | C列 | 単価 |
商品名を取り出したい場合は2列目なので、列番号は 2 です。
単価を取り出したい場合は3列目なので、列番号は 3 です。
単価を表示する場合
=VLOOKUP(E2,A:C,3,FALSE)
これで、商品コードに対応する単価を表示できます。
4. 検索方法
検索方法には、主に次の2種類があります。
| 指定 | 意味 | 用途 |
|---|---|---|
| FALSE | 完全一致 | 商品コード、社員番号、ID検索など |
| TRUE | 近似一致 | 点数判定、料金表、ランク判定など |
通常の業務では、ほとんどの場合 FALSE を使います。
完全一致の例
=VLOOKUP(E2,A:C,2,FALSE)
E2の値と完全に一致するものだけを探します。
近似一致の例
=VLOOKUP(E2,A:C,2,TRUE)
近似一致では、検索値以下で最も近い値を探します。
ただし、表を昇順に並べておく必要があります。
初心者の方は、まず VLOOKUPの最後はFALSE と覚えておくと安心です。
VLOOKUPで商品名と単価を自動表示する例
次のような商品マスタがあるとします。
商品マスタ
| A列 | B列 | C列 |
|---|---|---|
| 商品コード | 商品名 | 単価 |
| A001 | ノート | 120 |
| A002 | ペン | 80 |
| A003 | ファイル | 250 |
| A004 | 消しゴム | 60 |
売上入力表
| E列 | F列 | G列 | H列 |
|---|---|---|---|
| 商品コード | 商品名 | 単価 | 数量 |
| A001 | 10 | ||
| A003 | 5 |
F2セルに商品名を表示するには、次の数式を入力します。
=VLOOKUP(E2,$A$2:$C$5,2,FALSE)
G2セルに単価を表示するには、次の数式を入力します。
=VLOOKUP(E2,$A$2:$C$5,3,FALSE)
これで、商品コードを入力するだけで、商品名と単価が自動表示されます。
絶対参照を使うのがポイント
VLOOKUPを下方向にコピーするときは、検索範囲を固定するために絶対参照を使うのが重要です。
悪い例
=VLOOKUP(E2,A2:C5,2,FALSE)
このまま下にコピーすると、範囲がずれてしまうことがあります。
良い例
=VLOOKUP(E2,$A$2:$C$5,2,FALSE)
$を付けることで、範囲が固定されます。
| 記号 | 意味 |
|---|---|
| A2:C5 | コピーすると範囲が動く |
| $A$2:$C$5 | コピーしても範囲が固定される |
絶対参照にする方法
数式内で範囲を選択したあと、キーボードの F4キー を押すと、$A$2:$C$5 のように絶対参照にできます。
別シートの表を参照するVLOOKUP
実務では、商品マスタや社員マスタを別シートに置いていることが多いです。
たとえば、商品マスタが「商品マスタ」シートにある場合は、次のように指定します。
=VLOOKUP(A2,商品マスタ!$A$2:$C$100,2,FALSE)
この数式は、A2セルの商品コードを「商品マスタ」シートのA2:C100から探し、2列目の商品名を表示します。
別シート参照の例
| 内容 | 数式例 |
|---|---|
| 商品名を表示 | =VLOOKUP(A2,商品マスタ!$A$2:$C$100,2,FALSE) |
| 単価を表示 | =VLOOKUP(A2,商品マスタ!$A$2:$C$100,3,FALSE) |
| 部署名を表示 | =VLOOKUP(A2,社員マスタ!$A$2:$D$100,4,FALSE) |
シート名にスペースが含まれる場合は、シート名をシングルクォーテーションで囲みます。
例:
=VLOOKUP(A2,'商品 マスタ'!$A$2:$C$100,2,FALSE)
VLOOKUPでよくあるエラーと原因
VLOOKUPを使っていると、エラーが表示されることがあります。
代表的なエラーと原因を確認しておきましょう。
1. #N/Aエラー
VLOOKUPで最も多いのが #N/A エラーです。
原因
#N/A は、検索値が見つからないときに表示されます。
よくある原因
- 検索値が表の中に存在しない
- 入力ミスがある
- 余分なスペースが入っている
- 全角・半角が違う
- 数値と文字列が混在している
- 検索範囲の左端列に検索値がない
解決方法
まず、検索値とマスタ表の値が完全に一致しているか確認しましょう。
チェックポイント
| 確認項目 | 例 |
|---|---|
| 入力ミス | A001とA010を間違えていないか |
| スペース | 「A001 」のような空白がないか |
| 全角・半角 | A001とA001が混在していないか |
| 文字列・数値 | 001と”001″が混在していないか |
2. #REF!エラー
#REF! は、参照先が正しくないときに表示されます。
原因
VLOOKUPでは、列番号が指定範囲を超えていると #REF! エラーになります。
例
=VLOOKUP(E2,A:C,4,FALSE)
この数式では、範囲はA列からC列までの3列です。
しかし、列番号に4を指定しているため、4列目が存在せずエラーになります。
解決方法
指定範囲と列番号を確認しましょう。
| 範囲 | 指定できる列番号 |
|---|---|
| A:C | 1から3 |
| A:D | 1から4 |
| B:F | 1から5 |
3. #VALUE!エラー
#VALUE! は、数式の指定内容に問題がある場合に表示されます。
原因
主な原因は、列番号に不適切な値を指定していることです。
例
- 列番号が0になっている
- 列番号に文字を入れている
- 引数の指定が不足している
解決方法
列番号には、1以上の数値を指定します。
悪い例:
=VLOOKUP(E2,A:C,0,FALSE)
良い例:
=VLOOKUP(E2,A:C,2,FALSE)
#N/Aを表示させない方法
VLOOKUPで検索値が見つからない場合、通常は #N/A と表示されます。
見た目を整えたい場合は、IFERROR関数と組み合わせると便利です。
空白にする場合
=IFERROR(VLOOKUP(E2,$A$2:$C$5,2,FALSE),"")
この数式では、VLOOKUPでエラーが出た場合に空白を表示します。
「該当なし」と表示する場合
=IFERROR(VLOOKUP(E2,$A$2:$C$5,2,FALSE),"該当なし")
これにより、エラー表示の代わりにわかりやすい文字を表示できます。
IFERRORを使うメリット
- 表が見やすくなる
- エラー表示を隠せる
- 印刷時に見栄えが良い
- 未入力時のエラーを防げる
VLOOKUPで近似一致を使う例
通常は FALSE の完全一致を使いますが、点数や金額に応じてランクを判定したい場合は TRUE の近似一致が便利です。
評価表の例
| A列 | B列 |
|---|---|
| 0 | D |
| 60 | C |
| 70 | B |
| 80 | A |
| 90 | S |
点数がE2セルに入っている場合、評価を表示する数式は次のとおりです。
=VLOOKUP(E2,$A$2:$B$6,2,TRUE)
たとえば、E2が85点なら、80以上90未満なので「A」と表示されます。
近似一致を使うときの注意点
近似一致を使う場合、検索範囲の左端列は昇順に並べる必要があります。
悪い例:
| 点数 | 評価 |
|---|---|
| 80 | A |
| 0 | D |
| 90 | S |
| 60 | C |
良い例:
| 点数 | 評価 |
|---|---|
| 0 | D |
| 60 | C |
| 70 | B |
| 80 | A |
| 90 | S |
昇順になっていないと、正しい結果が返らないことがあります。
VLOOKUPの注意点
VLOOKUPは便利ですが、いくつか注意点があります。
1. 左側の列は検索できない
VLOOKUPは、指定範囲の一番左の列で検索し、右側の列から値を取り出します。
そのため、検索列より左側にあるデータは取り出せません。
例
| A列 | B列 |
|---|---|
| 商品名 | 商品コード |
| ノート | A001 |
| ペン | A002 |
この表で商品コードから商品名を取り出したい場合、商品コードが右側にあるため、VLOOKUPでは扱いにくくなります。
解決方法
- 商品コードを左端に移動する
- XLOOKUP関数を使う
- INDEX関数とMATCH関数を組み合わせる
初心者の場合は、まず検索したい列を一番左に配置するのがおすすめです。
2. 列を追加すると列番号がずれることがある
VLOOKUPでは、取り出す列を「2列目」「3列目」のように番号で指定します。
そのため、途中に列を追加・削除すると、意図しない列を参照してしまうことがあります。
対策
- 表の構成をなるべく変更しない
- 列を追加したらVLOOKUPの列番号を確認する
- テーブル機能やXLOOKUPを検討する
3. 検索値の重複に注意する
VLOOKUPは、検索値が複数ある場合、最初に見つかった行の値を返します。
例
| 商品コード | 商品名 | 単価 |
|---|---|---|
| A001 | ノート | 120 |
| A001 | ノート特価 | 100 |
この場合、商品コード「A001」で検索すると、最初に見つかった「ノート」が返されます。
対策
商品コードや社員番号など、検索に使う列は重複しないように管理しましょう。
VLOOKUPを使う場面の具体例
1. 商品コードから商品名を表示する
売上入力表で、商品コードを入力すると商品名を自動表示できます。
=VLOOKUP(A2,商品マスタ!$A$2:$C$100,2,FALSE)
商品名の手入力が不要になり、入力ミスを防げます。
2. 商品コードから単価を表示する
商品コードをもとに、商品マスタから単価を取り出します。
=VLOOKUP(A2,商品マスタ!$A$2:$C$100,3,FALSE)
売上金額を計算する表でよく使われます。
3. 社員番号から氏名を表示する
社員番号を入力すると、社員マスタから氏名を表示できます。
=VLOOKUP(A2,社員マスタ!$A$2:$D$100,2,FALSE)
人事資料、勤怠管理、研修管理などで便利です。
4. 顧客IDから住所を表示する
顧客IDをもとに、顧客マスタから住所や電話番号を取得できます。
=VLOOKUP(A2,顧客マスタ!$A$2:$E$100,4,FALSE)
請求書や発送リストの作成に役立ちます。
5. 点数から評価を判定する
点数に応じて評価を表示する場合は、近似一致を使います。
=VLOOKUP(A2,$E$2:$F$6,2,TRUE)
評価基準表を作っておけば、点数を入力するだけで自動判定できます。
VLOOKUPを使いやすくするコツ
1. マスタ表を整える
VLOOKUPを正しく使うには、参照元となるマスタ表を整えることが大切です。
良いマスタ表の条件
- 検索キーが一番左にある
- 検索キーに重複がない
- 空白行がない
- 見出しがわかりやすい
- データ形式が統一されている
商品コードや社員番号など、検索に使う列は特に丁寧に管理しましょう。
2. 検索範囲は絶対参照にする
VLOOKUPをコピーして使う場合は、検索範囲を絶対参照にします。
例:
=VLOOKUP(A2,$E$2:$G$100,2,FALSE)
範囲を固定しておくことで、下の行へコピーしても参照範囲がずれません。
3. 完全一致はFALSEを使う
商品コード、社員番号、顧客IDなどを探す場合は、基本的に FALSE を使いましょう。
例:
=VLOOKUP(A2,$E$2:$G$100,2,FALSE)
FALSEを省略すると、意図しない結果になることがあります。
初心者のうちは、必ず最後に FALSE を入れるのがおすすめです。
4. エラー対策にはIFERRORを使う
検索値が未入力のときや、該当データがないときにエラーを表示したくない場合は、IFERRORを使います。
例:
=IFERROR(VLOOKUP(A2,$E$2:$G$100,2,FALSE),"")
空白を表示することで、見た目がすっきりします。
5. データ形式を統一する
VLOOKUPでは、検索値と検索列のデータ形式が一致していないと、見つからない場合があります。
よくある例
| 見た目 | 実際の形式 |
|---|---|
| 001 | 文字列 |
| 1 | 数値 |
| A001 | 文字列 |
| A001 | 全角文字 |
検索値とマスタ表の値は、同じ形式にそろえましょう。
VLOOKUPがうまく動かないときのチェックリスト
VLOOKUPでエラーが出る、正しい値が表示されない場合は、次の項目を確認しましょう。
| 確認項目 | 対処法 |
|---|---|
| 検索値は表に存在するか | マスタ表を確認する |
| 検索列は範囲の一番左にあるか | 範囲を見直す |
| 列番号は正しいか | 範囲内の何列目か確認する |
| 検索方法はFALSEになっているか | 完全一致ならFALSEを指定する |
| 余分なスペースがないか | TRIM関数などで削除する |
| 全角・半角が一致しているか | 表記を統一する |
| 数値と文字列が混在していないか | データ形式を統一する |
| 範囲がずれていないか | 絶対参照にする |
| 重複データがないか | 検索キーを確認する |
VLOOKUPとXLOOKUPの違い
最近のExcelでは、VLOOKUPより便利なXLOOKUP関数も使えます。
ただし、職場や学校ではまだVLOOKUPを使っているファイルも多いため、VLOOKUPを覚えておく価値は十分にあります。
主な違い
| 項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 検索方向 | 基本的に右方向 | 左右どちらも可能 |
| 列指定 | 列番号で指定 | 返す範囲を直接指定 |
| エラー時の表示 | IFERRORと組み合わせる | 関数内で指定可能 |
| 古いExcelで使えるか | 使える | 使えない場合がある |
| 初心者向け | 基本として覚えやすい | 慣れると便利 |
古いExcelや共有ファイルではVLOOKUPが使われていることが多いため、まずはVLOOKUPを理解しておくと安心です。
VLOOKUPの基本パターンまとめ
商品名を表示する
=VLOOKUP(A2,商品マスタ!$A$2:$C$100,2,FALSE)
単価を表示する
=VLOOKUP(A2,商品マスタ!$A$2:$C$100,3,FALSE)
エラー時に空白を表示する
=IFERROR(VLOOKUP(A2,商品マスタ!$A$2:$C$100,2,FALSE),"")
点数から評価を表示する
=VLOOKUP(A2,$E$2:$F$6,2,TRUE)
まとめ
VLOOKUPは、Excelで別の表から情報を取り出すときに非常に便利な関数です。
基本形は次のとおりです。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
特に、初心者の方は次のポイントを押さえておきましょう。
| ポイント | 内容 |
|---|---|
| 検索値 | 探したい値 |
| 範囲 | 検索する表 |
| 列番号 | 取り出したい列の番号 |
| 検索方法 | 通常はFALSE |
| 範囲固定 | コピーするなら絶対参照 |
| エラー対策 | IFERRORを使う |
VLOOKUPを使うと、商品コードから商品名を表示したり、社員番号から氏名を表示したり、マスタ表から必要な情報を自動で取得できます。
最初は少し難しく感じるかもしれませんが、基本の形を覚えれば多くの場面で応用できます。
まずは、次の形を覚えて実際に使ってみましょう。
=VLOOKUP(A2,$E$2:$G$100,2,FALSE)
VLOOKUPを使いこなせるようになると、Excelでの検索作業や入力作業が大幅に効率化できます。

コメント