• 公開日:

ExcelのVLOOKUP関数でエラーになる原因について

この記事では、ExcelのVLOOKUP関数でエラーになる原因についてご紹介しています。

VLOOKUP関数を使う際、エラーが表示されることが度々あります。関数が正しく機能している場合は問題ありませんが、操作ミスなどで正しく結果が取得できていないこともあります。

以下では、表示されるエラーごとに分けてエラーが発生する原因と対処法についてご紹介しています。

ExcelのVLOOKUP関数でエラーになる原因について

以下では、VLOOKUP関数でエラーになる原因と対処法をよく発生するエラーごとにご紹介しています。

日付は一致しているのにエラーになる場合

日付の見た目が同じでも、表示形式によってエラーが返されることがあります。

表示形式が違うのでエラーになる

E3セルに入力した「=VLOOKUP(D2,A2:B6,2,FALSE)」では、D2セルに入力した日付を検索値としています。

検索値(例:D2セル)の表示形式は「日付」ですが、検索範囲のA2セルからA6セルの日付は「文字列」で設定されています。

「文字列」の場合は、表示形式を変更しても前の表示形式を維持してしまうことがあります。日付を入力する際は「文字列」として入力しないように注意しましょう。

以下では、エラーの対処法をご説明します。

作業用の列を挿入する

まず、作業用の列を挿入します。

A列を選択します。②ホームタブ、③挿入④シートの列を挿入の順に選択します。

関数を入力する

挿入した列のA2セルに「=DATEVALUE(B2)」を入力します。

オートフィルする

A2セルに結果が表示されました。

A2セルのフィルハンドルをドラッグして数式をコピーします。

コピーする

A2セルからA6セルを「Ctrl+C」でコピーします。

値で貼り付ける

B2セルを選択します。②ホームタブ、③貼り付け、④値の貼り付けで値の順に選択します。

値を貼り付けた時点でF2セルに結果が表示されていますが、日付が「数値」のままでは分かりづらいので日付形式に変換していきます。

日付形式にする

B2セルからB6セルを選択します。②ホームタブ、③下矢印、④「短い日付形式」の順に選択します。

日付を選択する際、「短い表示形式」と「長い表示形式」のどちらでも構いません。他の日付形式を選択したい場合は、「セルの書式設定」の日付から任意の表示形式を選択してください。

結果が表示された

表示形式を統一することで、F2セルに結果を表示することができました。

作業用の列が不要の場合は削除してください。

文字列は一致しているのにエラーになる場合

検索値と検索範囲の表示形式などによっても完全に一致していないと判断されると#N/Aエラーが表示されます。

数値や文字列、また日付のセル表示が一致しているように見えても、見た目には分かりづらい余計な記号などが入っていることでエラーになる場合があるので、セルの入力値を確認しましょう。

詳しい原因と対処法は、以下の記事でご紹介しています。

ExcelのVLOOKUP関数で文字列はあるのにエラーになる

#N/Aエラーになる場合

N/A(ノー・アサイン)エラーは、検索値が検索範囲に存在しない場合に表示されるVLOOKUP関数でよく発生するエラーの1つです。

本当にデータが存在しない場合は正常に検索できていますが、セル参照の範囲を間違えている場合は、正しい結果が取得できていないため注意が必要です。

詳しい原因と対処法は、以下の記事でご紹介しています。

ExcelのVLOOKUP関数で#N/A(無効な値)エラーの解決法

#REF!エラーになる場合

#REF!(リファレンス)エラーは、不要な列を移動または削除する際に参照範囲がズレて、数式内の参照セルが無効になってしまう場合などに表示されます。

シートのレイアウトを整えたりする際は、VLOOKUP関数の引数を確かめることをおすすめします。

詳しい原因と対処法は、以下の記事でご紹介しています。

ExcelのVLOOKUP関数で#REF!エラーの解決方法

#NAME?エラーになる場合

関数名を間違えた場合は#NAME?(ネーム)エラーが返されます。

数式を間違えてエラーになった

上記の表では、E2セルに入力したVLOOKUP関数のスペルを間違えているため#NAME?エラーが返されています。

正しくは「VLOOKUP」ですが、「VLOOOKUP」となっていることが原因です。

以下で、数式を修正していきます。

正しい数式を入力する

E3セルに「=VLOOKUP(D2,A2:B6,2,FALSE)」を入力し、Enterを押します。

結果が返された

数式を修正することでE2セルに結果を表示することができました。

#VALUE!エラーになる場合

#VALUE!(ヴァリュー)エラーは、第3引数に指定する列番号が小数点以下の場合や、検索値が上限の文字数を超えている場合にエラーが返されます。

列番号が小数点以下でエラーになる場合

列番号が1以下でエラーになっている

上記の表では、E2セルに入力したVLOOKUP関数の列番号が1以下になっているため、#VALUE!エラーが返されています。

以下で、数式を修正していきます。

列番号を修正した関数を入力する

E3セルに「=VLOOKUP(D2,A1:B5,2,FALSE)」を入力し、Enterを押します。

正しい結果が取得できた

正しい番号を入力することで結果が取得できました。

同様に、負の数(例:-1)も#VALUE!エラーが返されます。

ただし、列番号が1以上で小数を含む数値(例:2.7)の場合は小数点以下が切り捨てになるため、列番号は2として結果を取得することができます。

検索値の文字数が上限を超えてエラーになる場合

検索値が255字以上でエラーになる

上記の表では、E2セルに「=VLOOKUP(D2,A1:B5,2,FALSE)」が入力されています。

「検索値」D2セルと「検索範囲」のA1セルは値が完全一致していますが、検索値が上限文字数の「255字」を超えているため、#VALUE!エラーが返されています。

「検索値の文字数」の256は「=LEN(D2)」で取得しています。

LEN関数は引数に指定したセル内に入力した文字列の文字数を返します。書式は「LEN(文字列)」です。

以下で、エラーを解消する方法をご紹介します。

文字数を減らす

D2セルを選択し、②数式バーから文字数が255字以下になるように文字列をBackSpaceで削除します。

#N/Aエラーが返された

E2セルに#N/Aエラーが返されました。

#N/Aエラーは主にデータが存在しない場合に表示されるエラーです。A1セルの値は「a」が256字になっているため、検索値とは一致していません。

検索値の上限文字数が255字以内のため、値を完全一致させるには必然的に検索範囲も255字以内にする必要があります。

A1セルも255字にする

A1セルを選択し、②数式バーから文字数が255字以下になるように文字列をBackSpaceで削除します。

今回は、検索値に合わせるため255字なるように文字数を削除しています。

正しい結果が取得できた

検索値と検索範囲の値が完全一致したため、E3セルに結果を表示することができました。