Excel(エクセル)で条件により複数の表を参照するVlookup関数の作り方/Indirect関数との組み合わせ方

paper IT

VlookUp関数を使う時、前提条件によって参照する表を変えたい場合があります。
指定する表に名前をつけておき、式内で条件に組み込めばいいのですが、Indirect関数を噛ませないとエラーになってしまいます。

Advertisements

複数の表を参照するVlookup関数

ind1
とある劇団では、子供の入場料金を大幅に値下げすることにしました。
ind2
入場者があるたびに席、大人/子供をプルダウンで入力していき、
ind3
このふたつのデータから、自動で料金が算出されるようにしたいと思います。
ind4
この場合、使用するのはVlookUp関数です。関数について詳しくはリンク先の記事で解説しています。
ind5
参照先を指定する必要があるので、大人の表には「大人」、
ind6
子供の表には「子供」と、それぞれ名前をつけます。
ind7
これでE列に指定した「大人」または「子供」がそのまま表の名前として指定できます。
しかし=VlookUp(D1,E1),2,FALSE)のように記述すると、
ind8
これはエラーになります。参照範囲に「E1」と書くと、「E1」という表を探そうとしてしまうためです。
ind9
なので、範囲であることを認識させるためにIndirect関数を挟みます。
=VlookUp(D1,Indirect(E1),2,FALSE)となります。
ind10
式をオートフィルで下に伸ばせば、条件によって複数の表を使い分けるVlookUp関数のできあがりです。
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント