技術とか戦略とか

SIerで証券レガシーシステムを8年いじってからSESに転職した普通の文系SEによる技術ブログ。

Excel:VLOOKUP関数と代替関数の使い方まとめ

表題の通り、VLOOKUP関数とその代替関数の使い方のまとめました。
 
通常は、VLOOKUP関数(第四引数FALSE)で事足ります。
記述量も少なく関数の内容もわかりやすいので、とりあえず検索したい時はVLOOKUP関数(第四引数FALSE)で良いと思います。
 
しかし、高速化する必要がある場合や左側の項目を検索する場合、行と列を同時に検索する場合は、他の方法で検索する必要があります。
一番汎用性が高いのはINDEX関数とMATCH関数の合わせ技です。これも合わせて使えるようにしておくと良いでしょう。
 
関数の詳しい仕様についてはこの記事では触れませんので、気になる方は各自Web検索等して調べてみて下さい。
 
---------------------------
 
f:id:akira2kun:20191001221405j:plain
 
---------------------------
 
以下、コピペ用です。
セル指定は適宜変更して下さい。
 
・キー項目が昇順・降順ではない場合の検索
VLOOKUP(B13,$B$3:$D$7,3,FALSE)
INDEX($D$3:$D$7,MATCH(B18,$B$3:$B$7,0))
 
・キー項目が昇順の場合の高速検索
IF(VLOOKUP(B19,$C$3:$C$7,1,TRUE)=B19,VLOOKUP(B19,$C$3:$D$7,2,TRUE),NA())
IF(LOOKUP(B25,$C$3:$C$7)=B25,LOOKUP(B25,$C$3:$C$7,$D$3:$D$7),NA())
INDEX($D$3:$D$7,MATCH(B28,$C$3:$C$7,1))
 
・キー項目が右側に存在する場合の検索
IF(LOOKUP(B35,$C$3:$C$7)=B35,LOOKUP(B35,$C$3:$C$7,$B$3:$B$7),NA())
INDEX($B$3:$B$7,MATCH(B38,$C$3:$C$7,1))
 
・列検索と行検索を同時に行う場合の検索
INDEX($B$2:$D$7,MATCH(C47,$B$2:$B$7,0),MATCH(B47,$B$2:$D$2,0))