エクセル関数辞典 エクセル関数辞典

VLOOKUP関数の使い方|基本構文から応用まで解説

VLOOKUP 検索 参照 Excel関数
広告スペース (article-top)

VLOOKUP関数は、Excelで最もよく使われる関数のひとつです。表の中から特定の値を検索し、対応するデータを取得する場面で活躍します。商品コードから商品名を引き当てたり、社員番号から部署名を取得したりと、実務で欠かせない関数です。

この記事では、VLOOKUP関数の基本的な使い方から、実務で役立つ応用テクニックまでを丁寧に解説します。

VLOOKUP関数の基本構文

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

引数の説明

引数説明必須/任意
検索値検索したい値。セル参照や直接入力が可能必須
範囲検索対象のセル範囲。検索値は範囲の左端列に含まれる必要がある必須
列番号範囲の左端から数えて何列目の値を返すかを指定する数値必須
検索の型FALSEで完全一致、TRUEまたは省略で近似一致任意

検索の型は、実務ではほとんどの場合FALSEを指定します。完全一致検索を行うことで、意図しないデータが返されるミスを防げます。

実践例1:商品コードから商品名を取得する

最も基本的な使い方です。商品マスタから商品コードに対応する商品名を取得します。

商品マスタ(A1:C5)が以下のように設定されているとします。

商品コード商品名単価
A001ノートPC89000
A002マウス2500
A003キーボード5800
A004モニター35000

セルE2に商品コード「A002」が入力されている場合、以下の数式で商品名を取得できます。

=VLOOKUP(E2, A1:C5, 2, FALSE)

この数式は、E2の値(A002)をA列から検索し、見つかった行の2列目(商品名)を返します。結果は「マウス」になります。

実践例2:単価を取得して金額を計算する

VLOOKUP関数の結果を計算に利用する例です。商品コードから単価を取得し、数量と掛け合わせて金額を算出します。

=VLOOKUP(E2, A1:C5, 3, FALSE) * F2

この数式では、列番号を3に変更して単価列の値を取得し、F2セルの数量と掛け合わせています。商品コードを入力するだけで自動的に金額が計算されるため、入力ミスの削減につながります。

実践例3:別シートのデータを参照する

実務では、マスタデータが別シートに保存されていることが一般的です。シート名を指定してVLOOKUPを使う方法を解説します。

=VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE)

「商品マスタ」シートのA列からC列を範囲として指定しています。列全体を指定することで、データが追加されても数式を修正する必要がありません。

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

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

実践例4:IFERROR関数と組み合わせてエラーを処理する

VLOOKUPで検索値が見つからない場合、#N/Aエラーが表示されます。これを防ぐために、IFERROR関数と組み合わせます。

=IFERROR(VLOOKUP(E2, A1:C5, 2, FALSE), "該当なし")

検索値が見つかった場合は通常通り結果を返し、見つからない場合は「該当なし」と表示します。エラー表示を防ぐことで、見た目がすっきりし、他の数式への影響も回避できます。

実践例5:ワイルドカードを使った部分一致検索

検索値にワイルドカード(*や?)を使うことで、部分一致検索が可能です。

=VLOOKUP("*PC*", A1:C5, 2, FALSE)

この数式は、商品名に「PC」を含むデータを検索します。アスタリスク(*)は任意の文字列を表します。

セル参照と組み合わせる場合は、以下のように記述します。

=VLOOKUP("*" & E2 & "*", A1:C5, 2, FALSE)

よくあるエラーと対処法

#N/Aエラー

最も多いエラーです。原因と対処法は以下の通りです。

  • 検索値が範囲に存在しない: データの入力ミスや、全角・半角の違いを確認する
  • 検索範囲の左端列に検索値がない: VLOOKUPは必ず範囲の左端列を検索するため、範囲の指定を見直す
  • 検索の型の指定ミス: FALSEを指定し忘れていると近似一致になり、意図しない結果になる

#REFエラー

列番号が範囲の列数を超えている場合に発生します。たとえば、3列の範囲に対して列番号4を指定するとエラーになります。範囲と列番号の整合性を確認してください。

数値と文字列の不一致

検索値が数値なのに検索対象が文字列(またはその逆)の場合、一致しません。VALUE関数やTEXT関数で型を揃えてから検索してください。

VLOOKUP関数の制限事項

VLOOKUP関数には以下の制限があります。

  • 左方向への検索ができない: 検索値は必ず範囲の左端列にある必要がある。左側のデータを取得したい場合はINDEX+MATCH関数やXLOOKUP関数を使用する
  • 複数条件での検索ができない: 複数の条件で検索したい場合は、作業列を作成するか、INDEX+MATCH関数を使用する
  • 列の挿入・削除に弱い: 列番号を数値で指定するため、列の追加や削除で結果がずれることがある。MATCH関数と組み合わせることで回避可能

Google スプレッドシートでの互換性

VLOOKUP関数はGoogle スプレッドシートでもほぼ同じ構文で使用できます。基本的な動作や引数は同一ですので、Excelで覚えた使い方がそのまま活かせます。ただし、Google スプレッドシートでは配列を返す拡張機能が追加されており、一部の動作が異なる場合があります。

まとめ

VLOOKUP関数は、検索値をもとにデータを取得する基本的な関数です。以下のポイントを押さえておきましょう。

  • 検索の型は基本的にFALSEを指定する
  • IFERROR関数と組み合わせてエラーを処理する
  • 別シート参照ではシート名と範囲の指定方法に注意する
  • 左方向への検索が必要な場合はXLOOKUPやINDEX+MATCHを検討する

VLOOKUPは非常に便利ですが、制限も理解した上で使いこなすことが大切です。より柔軟な検索が必要な場合は、XLOOKUP関数やINDEX+MATCH関数の記事もあわせてご覧ください。

広告スペース (article-bottom)

あわせて読みたい