Excel。VLOOKUP関数で、手早く別々の表から抽出するには、どうしたらいい
<VLOOKUP+INDIRECT関数・名前の定義>
リストから該当するデータを抽出することができる、VLOOKUP関数。
このリストの選択先が複数ある場合、どのようにしたら、手早く抽出することができるのでしょうか。
C2の数式は、
=VLOOKUP(B2,INDIRECT(A2),2,FALSE)
どのような仕組みなのか説明していきます。
A2に、「校庭」「体育館」を入力します。会場番号を入力すると、「校庭」の3番である「陸上」が抽出されるという仕組みです。
この数式を作る場合には、事前に引数の範囲に該当するところに、名前の定義を使って「名前」を設定します。
A5:B7には、「校庭」という名前を設定してあります。
D5:E7には、「体育館」という名前を設定してあります。
あとは、VLOOKUP関数を設定していきます。
最初の引数の検索値には、「B2」を設定します。
2つ目の引数の範囲ですが、ここが2か所あるわけです。
そこで、名前の定義を指定してあげれば、その範囲の検索値からデータを抽出してくれるわけですが、検索する範囲を変更するたびに、数式を変更するのは大変です。
そこで、INDIRECT関数をつかうことで、範囲に、名前の定義で設定した名前を指定することができます。
なので2つ目の引数は、「INDIRECT(A2)」と設定します。
これで、A2に、「校庭」と入力されれば、名前の定義で設定した「校庭」の範囲を選んでくれます。
3つ目の引数の列番号には、「2」。
2つ目の引数で選択した範囲の左から2列目に、抽出したい列がありますので、「2」と設定するわけですね。
最後の引数の検索方法は、「FALSE」。
完全一致で抽出しますので、「FALSE」または、「0」と設定します。
Excelでは、FALSE=0なので、「0」と設定しても大丈夫です。
これで、A2の値を校庭・体育館と切り替えれば、それぞれの範囲から該当するデータを抽出することができます。
このように、VLOOKUP関数は、アイディアを追加することで、様々なビジネスシーンでさらに使えるようになりますので、色々試してみるといいかもしれませんね。
なお、あとプラスするとしたら、A列に入力規則のリストをつかうと、「校庭」「体育館」を選択して選ぶことができますので、おすすめの機能ですね。