エクセルでの関数の使い方: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と商品名を検索しています。
商品カテゴリ | 果物 | 野菜 | 乳製品 |
---|---|---|---|
商品ID | 1 | 2 | 3 |
商品名 | リンゴ | トマト | チーズ |
例えば、商品カテゴリ「果物」の商品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でのデータ検索や整理が効率的に行えます。ぜひ、実際の作業で活用してみてください。
コメント