Excel。VLOOKUP関数やHLOOKUP関数はダメで、LOOKUP関数を使用する場合
<VLOOKUP関数・HLOOKUP関数・LOOKUP関数>
現場ではあまり、発生しないかもしれませんが、MOS(マイクロソフトオフィススペシャリスト)のExcel 2016 Expertの出題範囲でLOOKUP関数がありまして、受験したい方から、『なんでVLOOKUP関数ではダメで、LOOKUP関数でないといけないのか?』というご質問をよく受けることがありますので、今回は、LOOKUP関数になるケースを確認してみましょう。次の表があります。
【VLOOKUP関数のおさらい】
F2に、E2の商品コードを検索して、商品名をA1:C4のリストを使って抽出する場合には、VLOOKUP関数を使うことは結構お馴染みですよね。最初は、おさらいということで、F2にVLOOKUP関数で抽出してみます。
なお、今回は、話がブレないようにするために、IF+VLOOKUP関数ではなくて、VLOOKUP関数単独で作っていきましょう。
検索値は、E2。検索するキーになる場所で、コンビニとかのPOSレジでバーコードを読む処理と同じですね。
範囲は、商品リスト全体ですので、A2:C4。
見出し行は不要ですね。
あと今回は、オートフィルを使って数式をコピーする必要がないので、絶対参照も設定しません。
列番号は、範囲で選択したリストの中で、抽出したいデータは商品名なので2列目ということで、2と入力します。
検索方法は、完全一致なので、FALSE。
または、0(ゼロ)と入力して、OKボタンをクリックします。
F2の数式は、=VLOOKUP(E2,A2:C4,2,FALSE)
商品名は、商品コードと合致するペンと表示されました。
では、LOOKUP関数ではできるのでしょうか?
【LOOKUP関数でも抽出できる】
F2をクリックして、LOOKUP関数ダイアログボックスを表示しますが、引数の選択ダイアログボックスが表示されるため、手入力で作成すると効率化いい関数なので、慣れてきたら手入力でおこなうといいでしょう。
今回のケースは、検索値,検索範囲,対応範囲の3つの引数を選んで、OKボタンをクリックします。
検索値はE2。
検査範囲には、A2:A4。検索値がある列を選択します。
対応範囲には、B2:B4。抽出したいものがある列を選択します。
OKボタンをクリックして確認してみましょう。
先程のVLOOKUP関数と同じ結果で抽出することができました。
ここからが本題。VLOOKUP関数がダメなケースを確認してみましょう。
【VLOOKUP関数が使えない!】
使うのは次の表。変わっているのは、A列とB列が入れ替わっていますね。実はここがポイント。
では、F7をクリックして、VLOOKUP関数で抽出してみましょう。
検索値には、E7。
範囲には、A7:C9
列番号は1。商品名は1列目にあるので、1。
検索方法は、FALSE
これで、OKボタンをクリックします。
残念ながら、#N/Aというエラーが表示されてしまいました。
原因は、商品コードのような検索範囲の左端の列や上端の行にキーとなるデータがないと抽出することがVLOOKUP関数やHLOOKUP関数では出来ないのです。
今回は検索のキーとなる商品コードがB列にあり、抽出したい商品名がA列。
つまり、検索のキーの左側にあるために抽出することができませんでした。
このようなケースでは、LOOKUP関数を使わないと抽出することができません。
最後のLOOKUP関数では算出できるのかを確認しておきましょう。
【LOOKUP関数なら大丈夫】
F7をクリックして、LOOKUP関数を作っていきましょう。検査値には、E7。
検査範囲には、B7:B9
対応範囲には、A7:A9
では、OKボタンをクリックしましょう。
きちんと、商品名を抽出することができましたね。
なお、F7の数式は、
=LOOKUP(E7,B7:B9,A7:A9)
ということで、検索値や検査値の右側に抽出したいデータがあるかないかで、使い分けがあると覚えおくといいかもしれませんね。