Excel INDEX関数とMATCH関数を組み合わせてVLOOKUP関数より高度な検索を行う方法
Excelで検索を行うにはVLOOKUP関数が定番ですが、
実はINDEX関数&MATCH関数の方が多くの面で優れています。
この記事ではVLOOKUP関数の代わりにINDEX関数とMATCH関数の組み合わせで
検索を行う方法を紹介します。
ただし2020年1月にXLOOKUP関数が追加されています。
この関数はINDEX関数とMATCH関数の組み合わせより優れているため、XLOOKUP関数が使用可能な環境ではそちらの使用を推奨します。
検索を行う方法(数式の解説)
下記のように設定します。
=INDEX(表示項目の範囲,MATCH(検索値,検索範囲,0))
引数の解説
MATCH関数
引数 | 指定値 |
---|---|
引数1:検索値 | VLOOKUP関数の引数1と同様です。 検索する値を指定します。 |
引数2:検索範囲 | VLOOKUP関数の引数2と似ていますが 表全体ではなく検索対象となる1列のみを指定します。 |
引数3:検索の種類 | VLOOKUP関数の引数4に似ています。 省略すると罠がある点も同様です。 ここには0(完全一致)を指定します。 ここを省略してしまうと 1(あいまい検索…検索値以下で最大)となり 意図しない結果になる場合があるため、 しっかり0を指定しましょう。 |
INDEX関数
引数 | 指定値 |
---|---|
引数1:表示項目の範囲 | VLOOKUP関数での引数3に似ていますが、 列番号でなく表示項目となる1列のみを指定します。 |
引数2:行番号 | MATCH関数を指定します。 |
引数3:列番号 | 省略します。指定する場合は0を指定します。 ただし引数1が1列のみの場合、省略可能です。 省略したほうが余計な記述がなく 数式として質が高いので 引数1を1列にして省略しましょう。 |
VLOOKUP関数との比較
優れている点(メリット)
下記のような強みがあります。
- 数式を横(列方向)にコピーしたい場合に強い点
- 表示項目が検索範囲の右にある必要がない点
結果が値ではなく参照である点
数式を横(列方向)にコピーしたい場合に強い点
VLOOKUP関数で指定する列番号は横にコピーしても変わりませんが、
1列づつ動いてくれます。(動かし方は絶対参照$で調整可)
これは複数列を表示したい場合、効率と間違いの少なさで大きなメリットになります。
この例では数式はこのように設定しています。
ただしXLOOKUP関数では列番号でなくセル範囲指定になっているため
その点が改善されておりINDEX関数とMATCH関数より有効です。
検索範囲が表示項目の左にある必要がない点
VLOOKUP関数の欠点の1つは、検索値に対応する列が引数2の範囲内で、左端にあることが必須なことです。
しかしINDEX関数とMATCH関数の方法では、この制約がないため名称・名前から番号やコードの取得が容易です。
ただしXLOOKUP関数ではその点も改善されており
劣っている点(デメリット)
下記のような弱みがあります。
(一つ目は比較対象がVLOOKUP関数ではないですが)
- XLOOKUP関数が上位互換
- 数式が判りづらい点
XLOOKUP関数が上位互換
2020年1月にVLOOKUP関数の上位版のXLOOKUP関数が実装されました。
INDEX関数とMATCH関数の利点を取り込んだような関数になっているため
わざわざ関数を組み合わせて数式を複雑にしてまで使う理由が激減します。
(古いバージョンでも使える利点は残りますが)
数式が判りづらい点
VLOOKUP関数より数式が判りにくい点が弱みです。
複数の関数を組み合わせると、どうしても読みにくくなります。
自分のみが使うブックであれば影響は皆無ですが、
会社で複数人が見るようなブックの場合では
この分かりにくさが劣る点になってしまいます。
よって可能な限りVLOOKUP関数を使用し
使用することが現実的な運用になります。
Excelを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを
買い切り950円またはKindle Unlimited (読み放題) で提供中です。
Word-A4サイズ:1,400ページの情報量で
(実際のページ数はデバイスで変わります)
基本的な使い方、関数の解説(140種類)、
頻出テクニックと実用例(109種類)、
XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。