VLOOKUPのトラブルシューティング | よくあるエラーと解決法

VLOOKUP関数は、Excelでよく使用される関数の一つです。この関数を使用することで、特定の値を持つ行から他の情報を引き出すことができます。

しかし、正しく使用しないとエラーが発生することがあります。エラーの多くは、検索値と範囲の表示形式が一致していないことが主な原因です。

この記事では、VLOOKUP関数における一般的なエラー事例とその解決方法について説明します。

目次

VLOOKUP関数の簡単な説明

=VLOOKUP(検索値,範囲,列番号,[検索方法])

説明
  • 検索値:検索を行うための値です。
  • 範囲:検索を行う対象となる表や範囲を指定します。この範囲は、検索値が含まれる列が含まれている必要があります。
  • 列番号:検索結果を取得したい列が、範囲内で何列目にあるかを指定します。1から始まる列番号です。
  • 検索方法 (オプション):精密な検索を行う場合、FALSEまたは0を指定します。近似検索を行う場合はTRUEまたは1を指定します。通常は省略されることがあります。

参考:VLOOKUP関数の基本

文字と数値の違いによるエラー

表示形式の違いによるエラーで、私が良く遭遇するエラーです。

エラー例

エクセルブックに2つのシートがある例です。

  • 入力シート:VLOOKUP関数を設定するシート
  • コード表:検索を行う対象となる表や範囲のシート

入力シート:VLOOKUP関数を設定するシートです。C列にVLOOKUP関数を設定します。検索値はB列のコードです。

コード表:範囲の対象になるコード表です。

VLOOKUP関数を入力した後、エラーになった例です。ぱっと見ではなぜエラーになるかわからないことがありますが、これは単純です。

  • 入力シートのコード:数字
  • コード表のコード:文字列

解決方法:検索値と範囲の表示形式を一致させる

検索側で数値を使いたい場合、範囲の文字列を数値に変換するか、または逆に検索値を文字列に変換することが考えられます。

Vlookup関数のエラー、数値にしてもエラー

この例は、範囲の文字列を数値に変換する場合です。コード表の項目「コード」をセルの書式設定で「数値」にします。しかしこれではエラーのまま。

Vlookup関数のエラー、数値にしてもエラーの場合、Enterキー

数値に変換した後、数字を選択しEnterキーを押すと問題が解決します。ただし、コード表に多くのコードがある場合は手間がかかります。


コード表外で、Value関数を使って変換し、その数字をコード表の対応するセルに貼り付けると、手軽に解決できます。

=VALUE(文字列)

上記の場合は、セルD2に「=VALUE(D2)」と入力し、D4まで式をコピーします。ただし、この例のコード表はテーブル設定をしているため、「=VALUE(商品コード[@コード])」と表示されます。

参考:文字列を数値に変換・数値を文字列に変換

半角と全角の違いによるエラー


「半角文字」と「全角文字」の違いによるエラーは、しばしば質問されます。

ここでは説明は単純な例ですが、VLOOKUP関数にIF関数がネストされ、ANDやORが使われていると、何が原因かすぐにわからないかもしれません。

エラー例

エクセルブックに2つのシートがある例です。

  • 入力シート:VLOOKUP関数を設定するシート
  • 料金表:検索を行う対象となる表や範囲のシート

入力シート:VLOOKUP関数を設定するシートです。C列にVLOOKUP関数を設定します。検索値はB列のコードです。

両k院表:範囲の対象になるコード表です。

  • 入力シートのコード:半角
  • 料金表のコード:全角

解決法

数字のエラーと同じ方法で、どちらかのシートのコードを変換します。

参考:全角文字と半角文字の変換

目次