エクセルでの関数の使い方:VLOOKUP, HLOOKUP, INDEX, MATCH の基本と応用

エクセルでの関数の使い方:VLOOKUP, HLOOKUP, INDEX, MATCH の基本と応用

Microsoft Excelでは、データの検索や整理に役立つ関数が多数用意されています。この記事では、VLOOKUP, HLOOKUP, INDEX, MATCH の4つの関数の基本的な使い方と応用方法を解説します。

1. VLOOKUP関数の基本

VLOOKUP関数は、指定した値に基づいて、表の中から関連するデータを検索するための関数です。

=VLOOKUP(検索値, 範囲, 列番号, 検索方法)

この関数では、「検索値」を指定し、「範囲」内で該当する値が見つかったら、指定した「列番号」のデータを返します。「検索方法」で検索の種類を指定できます。

VLOOKUP関数の例(検索方法=FALSE)

以下に、VLOOKUP関数を使った検索のサンプルを示します。この表では、商品IDを元に、商品名と価格を検索しています。

商品ID商品名価格
1リンゴ100
2バナナ200
3ぶどう300
4みかん150

例えば、商品ID「3」の商品名と価格を検索する場合、以下のようなVLOOKUP関数を使用します。

=VLOOKUP(3, A2:C5, 2, FALSE)
=VLOOKUP(3, A2:C5, 3, FALSE)

1つ目の関数は、商品ID「3」の商品名(ぶどう)を返します。2つ目の関数は、商品ID「3」の価格(300)を返します。

VLOOKUP関数の例(検索方法=TRUE)

以下に、VLOOKUP関数を使った検索のサンプルを示します。この表では、商品IDを元に、商品名と価格を検索しています。検索方法が「TRUE」の場合、完全一致ではなく最も近い値を検索します。

なお「TRUE」は「省略」でも可とします。

商品ID商品名価格
1リンゴ100
3バナナ200
5ぶどう300
7みかん150

例えば、商品ID「4」の最も近い商品名と価格を検索する場合、以下のようなVLOOKUP関数を使用します。

=VLOOKUP(4, A2:C5, 2, TRUE)
=VLOOKUP(4, A2:C5, 3, TRUE)

1つ目の関数は、商品ID「4」に最も近い商品名(ぶどう)を返します。2つ目の関数は、商品ID「4」に最も近い価格(300)を返します。

注意:VLOOKUP関数で検索方法を「TRUE」に設定する場合、検索範囲の最初の列(この例では商品ID)が昇順に並んでいる必要があります。そうでない場合、正確な結果が得られないことがあります。

2. HLOOKUP関数の基本

HLOOKUP関数は、VLOOKUP関数と同様にデータを検索する関数ですが、横方向のデータを検索します。

=HLOOKUP(検索値, 範囲, 行番号, 検索方法)

VLOOKUP関数と同様、「検索値」を指定し、「範囲」内で該当する値が見つかったら、指定した「行番号」のデータを返します。「検索方法」で検索の種類を指定できます。

HLOOKUP関数の例

以下に、HLOOKUP関数を使った検索のサンプルを示します。この表では、商品カテゴリを元に、商品IDと商品名を検索しています。

商品カテゴリ果物野菜乳製品
商品ID123
商品名リンゴトマトチーズ

例えば、商品カテゴリ「果物」の商品IDと商品名を検索する場合、以下のようなHLOOKUP関数を使用します。

=HLOOKUP("果物", B1:D3, 2, FALSE)
=HLOOKUP("果物", B1:D3, 3, FALSE)

1つ目の関数は、商品カテゴリ「果物」の商品ID(1)を返します。2つ目の関数は、商品カテゴリ「果物」の商品名(リンゴ)を返します。

3. INDEX関数の基本

INDEX関数は、指定した範囲内のセルの値を取得するための関数です。

=INDEX(範囲, 行番号, 列番号)

この関数では、「範囲」内のセルから、「行番号」と「列番号」に該当するセルの値を返します。

INDEX関数の例

以下に、INDEX関数を使った検索のサンプルを示します。この表では、行番号と列番号を指定して、商品名を検索しています。

商品ID商品名価格
1リンゴ100
2バナナ200
3ぶどう300
4みかん150

例えば、3アイテム目の商品名(ぶどう)を検索する場合、以下のようなINDEX関数を使用します。

=INDEX(A2:C5, 3, 2)

この関数は、3行目と2列目にあるセルの値(ぶどう)を返します。

4. MATCH関数の基本

MATCH関数は、指定した値が範囲内で最初に現れる位置を返す関数です。

=MATCH(検索値, 検索範囲, 照合の種類)

この関数では、「検索値」を指定し、「検索範囲」内で該当する値が見つかった位置(行番号または列番号)を返します。「照合の種類」で検索の種類を指定できますが、わかりやすくここでは「完全一致の0」のみのパターンを解説します(詳しくは「MATCH関数の照合の種類について」の記事)。

MATCH関数の例

以下に、MATCH関数を使った検索のサンプルを示します。この表では、特定の商品名がリスト内の何行目にあるかを検索しています。

商品名
リンゴ
バナナ
ぶどう
みかん

例えば、商品名「ぶどう」がリスト内の何行目にあるかを検索する場合、以下のようなMATCH関数を使用します。

=MATCH("ぶどう", A2:A5, 0)

この関数は、商品名「ぶどう」がリスト内の3行目にあることを返します。

5. VLOOKUPとINDEX-MATCHの違いと応用

VLOOKUP関数とINDEX-MATCH関数の組み合わせはどちらも検索に使用されますが、それぞれに特徴と利点があります。

5.1 VLOOKUPの利点と制限

VLOOKUPはシンプルで使いやすいため、初心者にとって理解しやすいです。ただし、VLOOKUPにはいくつかの制限があります。

  • 左から右にしか検索できません。
  • 列番号が変更されると、関数が正しく機能しなくなることがあります。

5.2 INDEX-MATCHの利点

INDEX-MATCHの組み合わせは、VLOOKUPよりも柔軟性があります。

  • 左右どちらの方向でも検索が可能。
  • 列や行の位置が変更されても、関数が正しく機能します。
  • 範囲が縮小された場合でも、正確に検索できます。

5.3 INDEX-MATCHの応用例

INDEX-MATCH関数の組み合わせを使用して、二つのリスト間でデータを検索する例を紹介します。

=INDEX(範囲1, MATCH(検索値, 範囲2, 0))

この例では、「範囲1」からデータを取得し、「範囲2」内で「検索値」と一致する位置を探します。そして、一致した位置を基に「範囲1」のデータを返します。

以下に、INDEX-MATCHを組み合わせた検索の応用例を示します。この表では、商品IDを元に価格を検索しています。

商品ID商品名価格
10リンゴ100
20バナナ200
30ぶどう300
40みかん150

例えば、商品ID「30」の価格を検索する場合、以下のようなINDEX-MATCH関数を使用します。

=INDEX(C2:C5, MATCH(30, A2:A5, 0))

この関数は、商品ID「30」に対応する価格(300)を返します。MATCH関数で商品ID「30」がリスト内の3行目にあることがわかり、INDEX関数で3行目の価格列の値(300)を取得しています。

6. まとめ

この記事では、VLOOKUP, HLOOKUP, INDEX, MATCHの基本的な使い方と応用方法を解説しました。これらの関数を使いこなすことで、Excelでのデータ検索や整理が効率的に行えます。ぜひ、実際の作業で活用してみてください。

コメント