皆さんエクセルは普段使っていますか?
VLOOKUP関数って何?
なぜかN/Aになっちゃうときがある
本題はこちら。
vlookup関数を使うと、N/A(計算できませんでした、的な値)になってしまう時があるんです。その時のハマりパターンを一つ書いておきます。
VLOOKUP関数のサーチは左→右の順
VLOOKUP関数の式は以下のようになっています。
=VLOOKUP(検索値,範囲, 列番号,検索方法の指定)
ここで気にしなくてはいけないのが、
検索する値の列が、取り出したい値の列よりも左にないといけないんです。
例えばこの例。
商品表に旧IDを割り振りたい。けれど、今は新しいIDしか商品表にない。なので、新旧のID対応表から新IDをキーにして旧IDを取り出して表示したい。という例です。
この時、この式を書くことでうまく目的のデータが取れます。
=VLOOKUP(C5, $H$4:$I$9, 2, FALSE)
しかし、新旧ID対応表がこうなっていた場合(旧IDと新IDの列が逆)
上記の式だと取れません。
=VLOOKUP(C5, $F$4:$G$9, 1, FALSE)
にしたらいいんじゃね?と思いがちですがこれは罠です。
結局このような場合は、新ID(検索値)が旧ID(表示したい値)より左に来るように票を変形する必要があります。正確には、検索値が範囲の一番左の列に来るようにしなければなりません。式には範囲としか書いていないので誤解しがちですが、実際には範囲とキーとなる列(一番左の列)を両方一度に指定しているのです。なので、検索したい値の入っている列が一番左に来るように範囲を指定してください。
VLOOKUP関数は便利
VLOOKUP関数はとても便利です。大学時代のアルバイトでは、VLOOKUP関数を使って顧客リストから顧客の情報を引っ張ってきて、帳票印刷ができるようにしたことがあります。
もし参考になりましたら幸いです!