Excelによるデータ編集を多用する現場において
VLOOKUP関数を魔法の杖のように使うところも多いと思いますが、
個人的にはINDEX関数とMATCH関数の組み合わせが汎用的で好みです。
VLOOKUP vs INDEX+MATCH
=VLOOKUP(検索する値, 検索範囲, 検索範囲における列番号, 0)
*0=完全一致
VLOOKUPの弱点は、検索範囲の左端列(1番目)を基準にしなければいけない点です。
データベース的な表であれば必ず左端にキーがあるとは限りません。
そこで、
=INDEX(表示する列範囲, MATCH(検索する値, 検索先の列範囲, 0))
*0=完全一致
INDEXとMATCHを組み合わせれば、何番目を検索し何番目を表示するか自由に指定できます。
(参考)
VLOOKUPの限界
VLOOKUPよりINDEX・MATCHを使おう!
おまけ:テーブル機能
表を「テーブル」に変換しておくとデータの操作が便利になります。
また、関数での参照も楽に/見やすくなります。
- 「挿入」->「テーブル」で範囲指定
*フォーカスしているセルを含む表の範囲がデフォルト選択状態
*先頭行を見出しとするかも選べます - 「デザイン」->「テーブル名」で名前をつけておく
こうしておくと、例えば
=INDEX(商品テーブル[商品名],MATCH(売上テーブル[商品ID],商品テーブル[商品ID],0))
のようにカラム名で書けるので、関数式自体の視認性も上がります。
(参考)
Excelテーブルについて
新関数 XLOOKUP(2019/09/03追記)
本記事の内容を一つの関数で満たすものが実装されるそうです。
Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継
便利になりそうですね。