Excel。これは便利。VLOOKUP関数の列番号にIFS関数をつかってみた。
<VLOOKUP+IFS関数>
次の表があります。
A4:D8に店舗別の販売表があります。
この表から、A2に店舗名を入力したら、B2にB1の見出しの売上データを表示したいわけです。
5月売上と固定していれば、次のような数式をB2に設定します。
=VLOOKUP(A2,A5:D8,3,FALSE)
確かに、5月売上の中野店の販売金額を表引きすることができます。
ただ、VLOOKUP関数の3番目の引数の列番号を「3」と固定してしまうと、4月売上や6月売上の列から表引きすることができません。
B1の見出しを変更したら、それに合わせて、列番号を変更するのは面倒です。]
どうにか、表引きすることはできないものでしょうか。
そこで、列番号にIF関数などの条件分岐する関数をつかってみたらどうなるのでしょうか。
今回は、4月売上・5月売上・6月売上を3列ありますから、IFS関数をつかって、VLOOKUP関数を修正してみます。
=VLOOKUP(A2,A5:D8,IFS(B1="4月売上",2,B1="5月売上",3,TRUE,4),FALSE)
では、B1の見出しを6月売上で、A2の店舗名を渋谷に変更してみます。
3639と正しく表引きされていることが確認できます。
では、設定したVLOOKUP関数を確認しておきましょう。
=VLOOKUP(A2,A5:D8,IFS(B1="4月売上",2,B1="5月売上",3,TRUE,4),FALSE)
最初の引数は、検索値。
店舗名で表引きをしますので、A2です。
2番目の引数は、範囲。
表なので、A5:D8。見出し行は不要です。
そして、3番目の引数、列番号。
ここは2番目の引数で設定した範囲の左から何列目のデータを表引きするのかという数値を設定します。
4月売上から6月売上まで自由に選択したいわけなので、列番号は2~4となるわけです。
ここで条件分岐ということで、IFS関数をつかってみました。
IFS(B1="4月売上",2,B1="5月売上",3,TRUE,4)
4月売上ならば、2。
5月売上ならば、3
それ以外は、4
と条件分岐するようにしました。
VLOOKUP関数の最後の引数は、完全一致なので、FALSEです。
これで、複数の見出し列に対応した自由度の高い表引きをすることができました。