Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

ExcelでVLOOKUPの代わりにINDEX-MATCHを使うべき理由と具体的な使い方

Excelを日常的に使っている方なら、VLOOKUP関数はすでにお馴染みでしょう。VLOOKUPは、同じ行内の一致するテキストをもとに、別のセルから値を検索して取得できる非常に便利な関数です。

まだVLOOKUPに慣れていないという方は、まず基本的な使い方を解説した入門記事を確認しておくと理解がスムーズになります。

ExcelでVLOOKUPの代わりにINDEX-MATCHを使うべき理由と具体的な使い方

しかし、VLOOKUPは強力な反面、参照元の表の構造に制約があるという大きな弱点を抱えています。本記事では、VLOOKUPでは対応できないケースを具体例とともに紹介し、その問題を解決できるINDEX-MATCH関数の使い方を詳しく解説します。

INDEX-MATCHの実例:車のデータベースでIDを取得する

以下のサンプルスプレッドシートには、車のオーナー名と車種名の一覧があります。この例では、複数のオーナーが所有する車種名(Car Model)をもとに、対応する車両ID(Car ID)を取得することを目標とします。

ExcelでVLOOKUPの代わりにINDEX-MATCHを使うべき理由と具体的な使い方

一方、別のシート「CarType」には、ID車種名カラーの3列からなるシンプルな車データベースが用意されています。

ExcelでVLOOKUPの代わりにINDEX-MATCHを使うべき理由と具体的な使い方

VLOOKUPでは対応できない理由

VLOOKUPが機能するためには、取得したいデータが検索対象の列より右側にある必要があります。つまり、今回のように「車種名」をキーに照合する場合、VLOOKUPで取得できるのは右隣にある「カラー」だけです。「ID」の列は車種名列の左側にあるため、取得できません。

VLOOKUPの仕様上、検索値は必ず範囲の先頭列に存在し、取得したい列はその右側になければならないのです。今回の例では、この条件がどちらも満たされていません。

INDEX-MATCHなら制約を回避できる

幸いなことに、INDEX-MATCHを使えばこの問題を簡単に解決できます。実際には、それぞれ単体でも動作する2つの関数——INDEX関数MATCH関数——を組み合わせたものです。

ExcelでVLOOKUPの代わりにINDEX-MATCHを使うべき理由と具体的な使い方

本記事では、VLOOKUPと同じ処理を実現することに焦点を当て、この2つの関数の組み合わせ方を解説します。

ExcelでVLOOKUPの代わりにINDEX-MATCHを使うべき理由と具体的な使い方

一見すると数式が長く、少し難しそうに感じるかもしれません。しかし、何度か使っていくうちに自然と構文を覚えられるようになります。

実際の数式

=INDEX(CarType!$A$2:$A$5,MATCH(B4,CarType!$B$2:$B$5,0))

数式の各部分の解説

=INDEX( —— 「=」はセルに入力する数式の開始を示し、INDEXは使用する関数の前半部分です。

CarType!$A$2:$A$5 —— 取得したいデータが含まれる「CarType」シートの列範囲です。この例では、各車種に対応するIDを指します。

MATCH( —— 使用する関数の後半部分です。

B4 —— 検索テキスト(車種名)が入力されているセルです。

CarType!$B$2:$B$5 —— 検索テキストと照合するデータが含まれる「CarType」シートの列範囲です。

0)) —— 検索テキストが照合先の列(CarType!$B$2:$B$5)の値と完全一致する場合のみ結果を返すよう指定します。完全一致が見つからない場合は #N/A が返されます。

注意: 関数の末尾に閉じ括弧が2つ続く「))」が必要であること、引数同士をカンマで区切ることを忘れないようにしましょう。

INDEX-MATCHを選ぶべき3つのメリット

筆者自身も現在はVLOOKUPからINDEX-MATCHへ移行しました。VLOOKUP以上の柔軟性を持っているからです。主なメリットは以下の3点です。

1. 計算速度が速い

大量のデータを扱う場合、多数のVLOOKUP関数が含まれていると計算に時間がかかることがあります。これらをすべてINDEX-MATCHに置き換えると、ブック全体の再計算速度が明らかに向上します。

2. 列数を数える必要がない

VLOOKUPでは、検索キーがC列にあり、取得したいデータがAQ列にあるような場合、2つの列の間に何列あるかを数えて列番号を指定する必要がありました。

INDEX-MATCHなら、取得したい列(AQ列)と照合したい列(C列)を直接指定するだけでよいため、列の挿入や削除にも強く、メンテナンス性も格段に向上します。

3. 上級者に見える

VLOOKUPは今や広く知られていますが、INDEX-MATCHを組み合わせて使える人はそれほど多くありません。やや長い数式になる分、「複雑で高度なExcel関数を扱える専門家」という印象を与えることができるでしょう。ぜひ活用してみてください!

  1. ExcelでネストされたVLOOKUP関数を使う方法(3つの活用シーン)

    VLOOKUP関数は、Microsoft Excelの中でも最も強力で柔軟性が高く、実用性の高い関数の一つです。対応する値を検索して、完全一致または近似一致の値を取得することができます。しかし、単一のVLOOKUPだけでは目的を達成できない場合もあります。そんなときは、複数のVLOOKUPを組み合わせることで解決できます。この記事では、ExcelでネストされたVLOOKUP(入れ子構造のVLOOKUP)を実装する方法をご紹介します。 ワークブックのダウンロード 練習用の無料Excelワークブックはこちらからダウンロードできます。 ExcelにおけるVLOOKUPとは VLOOKUPは「Ve

  2. Excelのデータの入力規則でカスタムVLOOKUP数式を活用する2つの実践テクニック

    Excelの「データの入力規則」機能を使うと、入力できるデータの範囲を制限したり、ドロップダウンリストを作成して作業時間を大幅に短縮したりできます。VLOOKUP関数では検索値を指定する必要がありますが、データの入力規則と組み合わせることで、より直感的かつ効率的にデータを検索できるようになります。この記事では、Excelのデータの入力規則でカスタムVLOOKUP数式を活用する2つの便利な方法を、具体的な手順とともに詳しく解説します。無料のExcelテンプレートをダウンロードして、ぜひ実際に練習してみてください。Excelのデータの入力規則でカスタムVLOOKUP数式を使う2つの方法まず、今回使