スプレッドシートのVLOOKUPでできないこと|エラー別対処法あり
本記事では、スプレッドシートのVLOOKUP関数でできないことをご紹介します。事前にできないことを知っておくことで、エラーが出た際に無駄に頭を悩ませなくてすみむはずです。
また、VLOOKUP関数でよくみるエラーとその対処法も解説していますので、ぜひ最後までご覧ください。
スプレッドシートのVLOOKUP関数でできないこと
VLOOKUP関数でできないことをみていく前に、VLOOKUP関数の使い方についておさらいしておきましょう。
VLOOKUP関数は4つの引数があり、それぞれ以下のように指定します。
VLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])
引数 | 説明 |
---|---|
検索キー | 検索する値、条件 |
範囲 | 検索する対象の範囲(範囲の1列目が検索キーを調べる列) |
番号 | 値を返す列の番号 |
並べ替え済み | [省略可]範囲の先頭列が並べ替え済みであるかどうか |
それでは、この使い方を踏まえてVLOOKUP関数でできないことをご紹介します。
①範囲の2列目以降を検索列にする
VLOOKUP関数では第2引数で検索する対象の範囲を指定しますが、その対象範囲の2列目以降を検索列にすることはできません。
検索キーを検索する列は、必ず範囲の1列目である必要があります。
②検索列より左側を参照する
検索キーに一致した行の何列目の値を取得するか指定できるのが、第3引数の「番号」です。この「番号」は必ず1以上を指定する必要があり、「0」や「-1などの負の値」を指定することはできません。
つまり、VLOOKUP関数は検索列より左側を参照することができないということです。
③複数の列・行をまとめて抽出する
3つ目のできないことは、複数の列や行をまとめて取得することです。第3引数で指定する「番号」は1つしか指定できません。
検索キーに一致する行を全て取得したい場合や、複数の列をまとめて取得したい場合はQUERY関数を使うとよいでしょう。
VLOOKUP関数のよくある3つのエラーとその対処法
続いて、VLOOKUP関数を使っているとよく遭遇するエラーとその対処法をご紹介します。
①値が見つからない#N/Aエラー
1つ目が#N/Aエラーです。#N/Aは値が見つからないという意味のエラーで、VLOOKUP関数の検索キーに一致する行がない場合に表示されます。
#N/Aエラーが表示された時の対処法は2つです。
対処法①部分一致にする
1つ目の対処法は部分一致(あいまい検索)にする方法です。
VLOOKUP関数の第1引数(検索キー)にワイルドカードを使用することで、部分一致で検索することができます。
=VLOOKUP(“*ご*”,B2:C7,2,false)
ただし、このやり方は部分一致に当てはまる行が複数ある場合に意図しない結果が返ってくる可能性もあります。
部分一致の影響度を調整することで防ぐことはできますが、何十行・何百行と膨大なデータ量の場合は見つけるのも大変なためあまりおすすめできません。
対処法②IFERROR関数と組み合わせる
2つ目の対処法がIFERROR関数と組み合わせて使う方法です。
IFERROR関数はエラーを感知する関数で、エラーでない場合は通常の結果を返し、エラーの場合は任意の文字列や空白を返すことができます。
=IFERROR(VLOOKUP(“いちご”,B2:C7,2,false),”条件に一致する値がありません”)
例えば、一致する値がない場合に「条件に一致する値がありません」という文章を表示させるようにすればエラーの原因も一目でわかりますね。
②関数のコピペで参照範囲がずれる
2つ目によくみるのが、関数のコピペによる参照エラーです。
関数が入っているセルをそのままコピペしてしまうと、VLOOKUP関数の第2引数である「範囲」がズレていきます。
対処法
この場合は、範囲を絶対参照にするとよいでしょう。
セル番号と列のそれぞれに「$」をつけることで絶対参照になり、関数をコピペしても範囲が変わることがなくなります。
=VLOOKUP(“ぶどう”,$B$2:$C$7,2,false)
③第4引数をTRUEにして正しい結果が取得できない
最後のよくあるエラーが、第4引数の「並べ替え済み」でTRUEを指定した際に起こるエラーです。
どういったときにTRUEを指定するかというと、検索キーに最も近い値を取得したいときにTRUEを指定します。
FALSE・・・完全一致で検索
TRUE・・・最も近い一致(検索キー以下)
対処法
最も近い値を取得するためには、元データを昇順に並べ替えておく必要があります。
VLOOKUP関数は、上から下に向かって垂直方向に検索していく関数です。そのため、小さい順に並んでいないと「次に大きい値」が正しく見つけられないという訳ですね。
まとめ
今回は、スプレッドシートのVLOOKUP関数とエラー別対処法をご紹介しました。
事前に知っておくことで無駄な時間を使わずにすみますし、正しい結果を取得することができます。ぜひ参考にしてください。