LoginSignup
13
25

More than 3 years have passed since last update.

[Excel]VLOOKUPよりINDEX+MATCH

Last updated at Posted at 2017-09-12

Excelによるデータ編集を多用する現場において
VLOOKUP関数を魔法の杖のように使うところも多いと思いますが、
個人的にはINDEX関数とMATCH関数の組み合わせが汎用的で好みです。

VLOOKUP vs INDEX+MATCH

=VLOOKUP(検索する値, 検索範囲, 検索範囲における列番号, 0)

*0=完全一致

VLOOKUPの弱点は、検索範囲の左端列(1番目)を基準にしなければいけない点です。
データベース的な表であれば必ず左端にキーがあるとは限りません。

そこで、

=INDEX(表示する列範囲, MATCH(検索する値, 検索先の列範囲, 0))

*0=完全一致

INDEXとMATCHを組み合わせれば、何番目を検索し何番目を表示するか自由に指定できます。

(参考)
VLOOKUPの限界
VLOOKUPよりINDEX・MATCHを使おう!

おまけ:テーブル機能

表を「テーブル」に変換しておくとデータの操作が便利になります。
また、関数での参照も楽に/見やすくなります。

  1. 「挿入」->「テーブル」で範囲指定
    *フォーカスしているセルを含む表の範囲がデフォルト選択状態
    *先頭行を見出しとするかも選べます
  2. 「デザイン」->「テーブル名」で名前をつけておく

こうしておくと、例えば

=INDEX(商品テーブル[商品名],MATCH(売上テーブル[商品ID],商品テーブル[商品ID],0))

のようにカラム名で書けるので、関数式自体の視認性も上がります。

(参考)
Excelテーブルについて

新関数 XLOOKUP(2019/09/03追記)

本記事の内容を一つの関数で満たすものが実装されるそうです。
Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継
便利になりそうですね。

13
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
25