Excel。VLOOKUP関数で条件によって検索する列を変えるにはどうしたらいいの
<VLOOKUP+IF関数>
VLOOKUP関数は、INDIRECT関数と名前の定義を組み合わせることで、別々の表(範囲)から検索値を抽出することはできます。
では、表(範囲)の中で条件によって抽出対象になる列を変えることはできるのでしょうか。
次の表で説明します。
A2に商品名を入力したら、B2にD1:F5の表(範囲)から、単価かセールの数値を表示したいわけです。
B1には、入力規則のリストをつかって、「単価」と「セール」を切り替えるようにしています。
B1が単価なら、B2には、E列の単価の数値を抽出し、B1がセールならB2にはF列のセールの数値を抽出したいわけです。
そこで、B2に設定するVLOOKUP関数は次のようにします。
=VLOOKUP(A2,$D$2:$F$5,IF(B1="単価",2,3),FALSE)
これで、B1を切り替えると、該当する列からデータを抽出することができます。
VLOOKUP関数のポイントは、3番目の引数の列番号です。
この列番号を、単価なら「2」、セールなら「3」としたいわけですから、IF関数をつかって列番号を変えることができます。
これによって、B1の値と連動して、抽出範囲を切り替えることができるようになります。