VLOOKUP関数の意外な使い道(SWITCH関数代用)
Excel 2019で新しく追加された関数の中に,SWITCH関数があります.
VBAにもSWITCH関数がありますが,それとは別物ですよ?w
このような関数,正直いままで実装されていなかったのが不思議なんですよね.実用性も多分にありますし.
その使い方は公式曰く
=SWITCH(交換する値, 一致する値1...[2-126], 一致する値1...[2-126] がある場合に返す値, 一致する値がない場合に返す値)
‥わかりづらいですね.私風に書き直すとこうなります.
=SWITCH(値X, 値XがAだったとき, この値を返す, (以下繰り返す), いずれにも一致しない場合はこの値を返す)
‥実物で見た方が分かりやすいですね.
B2セルの値が 3 なので,それに対応する「ミク」さんが返されています.
VLOOKUP関数で,SWITCH関数の代用品を作る.
以下本題.
ところが,この関数は2019からの追加関数なんですよね.
会社・学校など所属組織がOffice 365を契約しているか,自前で Office 365 Soloを契約している人はともかく,会社で2013とかを使わされて涙を飲んでいる人は少なくないと思います.ていうか私もだ.
なので,今回はその代用品を作ります. まずは実例を
お馴染みのVLOOKUP関数ですが,このような使い方ものできるのです*1.
もう少し詳しく解説すると,肝になるのは第2引数です.
第2引数には一般にセル範囲(=値を検索する範囲)を指定しますが,たとえば次のような方法でこれを直接指定してしまうことも可能なのです.
{値1,対応する値1;値2,対応する値2;値3,対応する値3;値4,対応する値4;‥以下繰り返し}
これを第2引数に設定し,列番号(第3引数)を 2 に設定し,
最後に,値がなかったときのためにIFNA関数でエラー処理をしておけば,上記のSWITCH関数の代わりができる‥という仕掛けです.
会社等の制約で最新のOfficeを使わせてもらえない場合で,あるいは2019未満の環境を想定しなければならない場合にはぜひつかってみてください☆