5/22/2013

Excel。VLOOKUP関数。応用編。2つの表から検索するには?


VLOOKUP関数。応用編。2つの表から検索するには?
【名前の定義】+【INDIRECT関数】+【VLOOKUP関数】

部品販売会社さんのPCコンサルをしていて、先日、見積書が困っていると相談がありまして、
複数の表から、見積書を作っているので、
いちいち確認する必要があって大変とのこと。
社外秘なので、下記に似たようなデータを作ってみました。

このケースでは、野菜と果物という別々のリストがあって、
そこから、見積書を作成するというもの。
VLOOKUP関数をしようとしても、管理番号が同じものがあるので、
一つのリストにすることが出来ません。

では、やはり自力でやらないといけないのでしょうか?

そこで、登場するのが、【名前の定義】と【INDIRECT関数】です。

今回は、【名前の定義】+【INDIRECT関数】+【VLOOKUP関数】をご紹介します。

まず、野菜と果物のリストに名前の定義を行います。
G3:I5までを範囲選択して、名前ボックスに、「野菜」と入力します。


これで、名前が設定されます。
同様に、G10:I12を範囲選択して、名前ボックスに「果物」と入力します。

それでは、いよいよ、VLOOKUP関数の登場です。

算出するC3をクリックして、VLOOKUP関数を挿入します。
まず、検索値は、B3。
次の範囲。ここで、INDIRECT関数が登場します。

参照文字列をA3。つまり野菜をクリックします。

これは、何をやっているのかというと、
先ほど名前の定義をした野菜の範囲を選択しております。
このINDIRECT関数は、指定した文字列で定義された名前の範囲を表示します。

ですので、A列のジャンルと名前の定義で設定した名前は同じでなければいけません。
「野菜≠やさい」
ということで、
INDIRECT関数と名前の定義を使うことによって、

VLOOKUP関数の範囲を替えることが出来るようになります。
あとは、列番号は2。検索方法はfalse 

で完成!

今回は2種類のリストでしたが、何種類でもOKです。