• 公開日:

スプレッドシートのVLOOKUP関数で値が見つからない場合

Google スプレッドシートのVLOOKUP関数で値が見つからない場合の原因と対処法をご紹介します。

関数を入力したときに、うまく結果が表示されないとストレスが溜まりますよね。原因とそれぞれの対処法をお伝えしますので、お困りの方はぜひ参考にしてみてください。

スプレッドシートのVLOOKUP関数で値が見つからない場合

スプレッドシートのVLOOKUP関数で、値が見つからない場合は、多くの場合、下記の5つの理由が考えられます。

それぞれ、簡単に対処できる内容ですので、記事をよく読んで、トライしてみてください。

検索の型「完全一致」を指定している場合に一致するものがない

VLOOKUP関数を入力した際、完全一致(FALSE または 0)を指定している場合、検索値と完全に一致しているものが範囲にない場合、以下のように「#N/A」というエラーが表示されます。

完全一致

上記の例では、指定している「商品名」である「いちご」が、範囲内の「商品名」セル内に一致しているものがなく、エラーが表示されています。

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

「検索の型」で、「FALSE」または「0」を入力し、完全一致検索をして、エラーが出た場合、指定したものと完全に一致するものがあるかどうかをしっかりと確認してみてください。

今回の場合は、検索値を「リンゴ」「メロン」「みかん」「もも」のいずれかを指定することで正しく検索することができます。

検索範囲の一番左側が検索値の列になっていない

VLOOKUP関数は、検索値の値が範囲の最も左の列でないとエラーが表示されます。

検索値の値が範囲の最も左の列でない

範囲の左端に、検索値の列が表示されているか確認してみてください。

表示されていない場合は、検索値の列が左端になるようにコピー、挿入の操作を行ってください。

絶対参照にしておらず範囲がずれる

絶対参照にしなければ、関数を別のセルにオートフィルを使ってコピーする際に、参照する範囲がずれてしまいます。それが原因となり、うまく計算できず、正しい結果が表示されないということが起こります。

絶対参照

上記のように、同じ検索値でも上は「りんご」で正しく表示されているのに、下は「#N/A」というエラーになってしまっています。

こうした場合は、範囲指定の際、以下のように「$」記号で括って、絶対参照にしましょう。こうすることによって、オートフィルでコピーした際にも、範囲がずれることはありません。

=VLOOKUP(A2,$D$2:$E$5,2,TRUE)

検索の型「TRUE」を指定している場合にデータが昇順になっていない

VLOOKUP関数を入力した際、検索の型を「TRUE」 または 「1」と記述した場合、「検索値と近い値を検索する」という指示になります。

TRUE

「TRUE」または「1」を用いる場合、参照する範囲を昇順に並べておかないとうまくいかない場合があります。上記の場合、本来「みかん」というデータが抽出されるはずが、「もも」というデータが抽出されてしまっています。

そのため、左端の「商品コード」列を基準に、昇順に並べ替えてから、再度関数を入力してみてください。