2/02/2019

Excel。VLOOKUP関数やHLOOKUP関数はダメで、LOOKUP関数を使用する場合

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関数単独で作っていきましょう。
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)

ということで、検索値や検査値の右側に抽出したいデータがあるかないかで、使い分けがあると覚えおくといいかもしれませんね。