EXCEL

VLOOKUP 関数で 変な値 や #N/A になってしまう時に 確認 する 3つ の ポイント

今回は、 EXCEL エクセル で VLOOKUP 関数を使った時に、結果が 変な値や #N/A となってしまったときに、効率よく エラー箇所 を 確定 できる チェック する ポイント についてご紹介しようと思います。

皆さんの参考になれば嬉しいです。

それでは、順に説明します。

曖昧検索 になっていないか 第4番目 の引数は指定しているか

結構、よくする失敗です。 まずは、ここを確認してください。
VLOOKUP 関数は、引数は4つ指定できます。
4番目 は省略可能なので 指定しなくても それなり に動作するので、忘れても即座にエラーになるわけではありません。

ここを 省略したり忘れたりして、指定がないと、第4引数は TRUE を指定した動作になります。

4番目 の引数に TRUE を指定した場合は、 曖昧検索 を指定したこととなり、完全に一致するものがなくても、近い値の最大値を選んで返してくるのです。

この動作が曲者で、ハッキリとどのように動作するかを分かった上で使わないと、なんとなく、変な結果が返ってくると感じて、おかしいな~となってしまいます。

完全に一致したものがあればその行の値を返し、部分的に一致した時も、それなりな結果が返ってくるので、混乱してしまいます。

ですから、よく分からない曖昧な結果が返ってきても困るので、私は、FALSE(完全一致指定)を必ず指定することにしています。 よく理解した上で、TRUEを使おうかな。という感じです。

検索する列 に 同値 (同じ値)がないかチェックする

VLOOKUP 関数は、検索する列に 同じ値 や 同じ文字列 がある時には、最初にヒットした行を選択するようになっています。

ですから、 選ばれると思う行が、実際には選ばれない というときは、このケースが考えられます。
思う行よりも上に同じ値がないか、確認してください。

そうそう頻繁にあるわけではないのですが、たまにミスで、検索する列に 同じ値 が2つ以上存在してしまっていることがあります。

たまにしか無いからこそ、 気づくのに時間が掛かってしまいます。

この対策として、データの検索列は同じものがないことをまず確認してから、使用するというのが原則ですが、どうしても、急いだり、めんどうになったりしたときに、ついつい確認を省略すると、たまたまその時に限って重複していたりするのです。

しつこいようですが、値を検索する列には、同じ値はなく、全てがユニークな値でないと、検索がうまく動作しません。
ユニークとは、唯一無二ということです。

Akitama
Akitama

重複を見つける方法は、いろいろあると思いますが、1つの方法として、表を検索列をキーにして並べ替えてみて、同じ値が並んでいるところがないかを、上から順に探すことで、割と早く発見することができますよ。
表を壊したくない場合が多いので、並べ替えて、重複チェックをしたら、すぐに[Ctrl]+[Z]で元に戻しておくようにしています。

検索文字列 に 空白 が混じり込んで #N/A

空白は、 ぱっと見で有るか無いかを見分けるのがとても難しいです。
もし、空白があることは分かっている場合でも、全角なのか半角なのかは判別がしにくいです。
更に、全角と半角が入り交じって混在していたりすると、見ただけでは判別不可能で最悪です。

そして、空白も文字列の一部なので、空白の個数や全角半角も含めた文字列が完全に一致しないと、検索は失敗となり、エラーが返ってきます。

検索対象の列に一致するものがない場合、VLOOKUP関数は #N/A を返します。

この様な原因から、一致するものが有るはず(そう見える)なのに、 どうしても検索で一致せず #N/A が表示されるというときは、空白を探すことと、それ以外にも 次の様なケースを、順にしらみつぶしに確認していきます。

  1. 検索対象に空白が隠れているかもしれません。[ctrl]+[F]で空白(全角・半角)を検索して、不要な空白文字がないか。
  2. 数値を検索する場合に、検索文字か、検索対象のどちらかが文字列になっていないか。
    数値の10(じゅう)と数字の”10”(イチ・ゼロ)は表示は同じでも値が違います。
  3. 英字や数字、カタカナの、全角と半角が食い違っていないか。
  4. VLOOKUP関数の第二引数(範囲指定)のアドレスがずれていないか。
    数式コピーをしたときにアドレス指定がずれてしまって、一番上とか下とかが範囲に入っていないことが良くあります。

これらのチェックでほぼ 完璧 に、異常を発見できるでしょう。

#N/A まとめ

  • 思ったのと違う値が返ってくる場合は、同じ文字列が検索列に複数存在することが多いです。
    検索する文字側を、できるだけ具体的に入力して、ユニークな文字列で検索列を検索するようにしましょう。 また、検索列の同値がないように維持することをお勧めします
  • #N/A が表示されるのは、検索でヒットしなかったということ。
    不一致の原因を上記の例を元に見つけて訂正しましょう。

今回は、以上です。VLOOKUP関数は便利な反面、以上のような癖もあります。
うまく使って、その効果を100%享受しましょう。

このほかにも、VLOOKUP 関数を使った 効率化 の提案の記事をアップしています。良ければそちらも参照してみてください。

それでは、今回も有り難うございました!

コメント

タイトルとURLをコピーしました