INDIRECT関数とVLOOKUP関数(検索と行列関数)2013関数技 33回

どんなに参照先が多くても大丈夫!INDIRECT関数とVLOOKUP関数で参照先を振り分ける

VLOOKUP関数で、複数のリストを参照してデータを表示したい場合はどうすればいいのかというテーマで解説します。
商品IDを種類別やタイプ別に分けているけれど、入力する表自体が同じなら、リストを振り分ける必要がでてきます。
そのような時に、商品のタイプ別リストをINDIRECT関数を使ってその名前で振り分けることができます。 INDIRECT関数は、どちらかというと文系の方に好まれる関数だと思います。
セルの指定をA1とかB1とかではなく、文字列で間接的に指定してやることができるからです。
INDIRECT 関数
書式
=INDIRECT(参照文字列,参照形式)
(サンプルファイルは、こちらから 2013関数技33回サンプルデータ

VLOOKUP関数で価格表を参照するとき

オーダーバッグのサイズを入力すると金額が表示される表があります。 LLと入れると、75,800円です。

C3セルには、VLOOKUP関数を使った式が入力されています。
サイズに対応する数値を入力すると、対応する価格が表示されます。
=VLOOKUP(B3,A9:B12,2)

バックの種類が1種類だけで、大きさだけで価格が変わる場合はこれでいいですね。

複数の商品の価格表をINDIRECT関数で使い分ける

しかし、商品のタイプは他にもある場合、
どうやって、商品ごとに検索する範囲を切り替えればいいのでしょう。
もちろん、INDIRECT 関数ですね。
INDIRECT 関数なら、商品名でセル範囲を間接的に指定することができるからです。

範囲を文字列で振り分けるようにすれば、いいんです。

VLOOKUP関数の数式に、A9:B12と入力されている範囲を INDIRECT関数で置き換えます。
式は、ネスト(入れ子)ですが、とってもシンプル。
=VLOOKUP(B3,INDIRECT(A3),2,0)
商品の名前で指定するのですから、予め、事前準備としてそれぞれの価格表を名前として定義しておきます。
そうすれば、商品タイプが増えても、元の式を変更する必要がないのです。
例では、参照するデータ表を3つ登録していますが、5つだろうが、10個だろうが、元の式はそのままで参照OKです。
スポンサーリンク
スポンサーリンク