VLOOKUP関数とMATCH関数の違いは何か

スプレッドシートのVLOOKUPのいろんな使い方

VLOOKUPとは

VLOOKUPは、ExcelGoogleスプレッドシートなどの表計算ソフトで使用される関数であり、検索条件に基づいて表の中の値を取得することができます。Vはvertical(垂直)、LOOKUPは検索することを意味しています。つまり、垂直方向の範囲内で値を検索することができます。

基本的に、VLOOKUP関数は以下の構文を持っています。

=VLOOKUP(検索条件、範囲、列番号、[完全一致],[範囲選択])
  • 検索条件:検索したいキーの値を指定します。
  • 範囲:検索対象となる範囲で、キーの値が最初に含まれる列を指定します。
  • 列番号:検索結果として取得したい列の位置を、範囲内で数えて指定します。
  • 完全一致(省略可):真偽値(TRUE/FALSE)を指定します。省略した場合、FALSEになります。TRUEにした場合、検索条件と完全一致する値を検索します。
  • 範囲選択(省略可):真偽値(TRUE/FALSE)を指定します。省略した場合FALSEになります。TRUEにした場合、範囲が昇順にソートされていることを前提として、検索条件が範囲内に存在しない場合、近い値を返します。

VLOOKUP関数は非常に強力で、多くの場合使用されます。以下は、VLOOKUP関数の特定の使用方法です。

使用方法1:1列の値をVLOOKUPで検索する

一般的に、VLOOKUP関数は1列の値を検索するために使用されます。たとえば、以下のような営業データの場合、製品名を検索して、対応する価格を取得することができます。

製品名 価格
商品A 1000円
商品B 2000円
商品C 3000円
商品D 4000円
商品E 5000円

以下のように、製品名がBの場合、価格を参照するためにVLOOKUP関数を使用できます。

=VLOOKUP("商品B", A1:B6, 2, FALSE)

VLOOKUP関数の第1引数である"商品B"は検索キーであり、A1:B6は検索範囲です。2は、価格情報が2列目にあることを表します。また、最後の引数であるFALSEは完全一致を表します。

使用方法2:別のシートからデータを参照する

VLOOKUP関数では、他のシートやファイルからデータを参照することができます。たとえば、営業データがSheet1にあり、価格情報がSheet2にある場合、以下のようにVLOOKUP関数を使用できます。

=VLOOKUP("商品B", Sheet2!A1:B6, 2, FALSE)

Sheet2!A1:B6は検索範囲を指定しています。Sheet2はシートの名前であり、A1:B6はSheet2で検索する範囲です。

使用方法3:VLOOKUPとIFERRORを組み合わせてエラーを回避する

VLOOKUP関数は、検索条件が範囲外にある場合、#N/Aエラーを返します。この場合、VLOOKUP関数を使用しているセル全体がエラーになってしまいます。この問題を回避するために、IFERROR関数と組み合わせると良いでしょう。

以下は、検索条件が存在しない場合に空白を表示する方法です。

=IFERROR(VLOOKUP("商品F", A1:B6, 2, FALSE), "")

この場合、IFERROR関数がVLOOKUP関数の結果をチェックし、#N/Aエラーが返された場合には空白を返します。

使用方法4:VLOOKUPとMATCHを組み合わせることで、複数列のデータを取得する

場合によっては、複数列の値を検索する必要がある場合があります。この場合、VLOOKUP関数では対応できません。しかし、MATCH関数を組み合わせることで、複数列の値を取得することができます。

以下は、製品名を検索して、対応する価格と在庫数を取得する方法です。

製品名 価格 在庫数
商品A 1000円 10個
商品B 2000円 20個
商品C 3000円 30個
商品D 4000円 40個
商品E 5000円 50個
=INDEX(B2:C6, MATCH("商品B", A2:A6, 0), 1)

上記例では、検索条件が"商品B"で、価格と在庫数の2つの列を取得する必要がある場合です。INDEX関数とMATCH関数を組み合わせて、価格と在庫数を取得します。MATCH関数は、検索値が存在する場所を検索し、その場所を返します。ここでは、価格と在庫数がB2:C6の範囲にあるので、INDEX関数を使用して、それらの列を指定しています。

VLOOKUPとMATCH関数の違い

VLOOKUP関数とMATCH関数は似ていますが、異なる使い方があります。VLOOKUP関数は垂直方向の範囲内での検索に適している一方、MATCH関数は横方向の範囲内での検索に適しています。

VLOOKUP関数は、検索値を先頭から順に検索し、最初に一致した値を返します。このため、検索範囲がソートされている必要があります。逆に、MATCH関数は、検索値が範囲内にあるかどうかを把握し、その場所を返します。このため、検索範囲がソートされている必要はありません。

例えば、以下のような商品データの場合、

商品名 価格 在庫数
商品A 1000 10
商品B 2000 20
商品C 3000 30
商品D 4000 40

VLOOKUP関数を使用して、商品Cの価格を検索する場合、

=VLOOKUP("商品C", A2:C5, 2, FALSE)

MATCH関数を使用して、商品Cの価格を検索する場合、

=INDEX(B2:B5, MATCH("商品C", A2:A5, 0))

VLOOKUP関数は、価格が3列目にあることを想定しており、C列に価格情報があることを前提としています。MATCH関数は、A列に商品名があり、B列に価格があることを前提としています。

簡単に言うと、VLOOKUP関数は垂直方向で単一のカラムからデータを取得するときに使用し、MATCH関数は横方向で複数のカラムからデータを取得するときに使用することが適しています。

まとめ

VLOOKUP関数は、ExcelGoogleスプレッドシートなどの表計算ソフトで使用される強力な関数であり、検索条件に基づいて表の中の値を取得することができます。VLOOKUP関数は非常に汎用的であり、データ分析やファイナンスなどの分野で広く使用されています。

また、MATCH関数は、VLOOKUP関数と同様にデータの検索に使用することができますが、横方向のデータ検索にはVLOOKUPよりMATCHの方が適しています。

これらの関数を理解し、適切に活用することで、より高度なデータ分析やビジネス上の判断を支援することができます。しかし、データが集積されているシステムへのアクセスやデータ処理自体が自動化されているビッグデータ等での使用については、ビジネス上の課題や目的にふさわしい処理方法を検討し、最適な手法選択が望まれます。