概要
この資料では、Microsoft Excel のさまざまな組み込み関数を使用して、テーブル (またはセル範囲) 内のデータを検索する方法について、順を追って説明します。 異なる数式を使用すると、同じ結果が得られます。
サンプル ワークシートを作成する
この記事では、サンプル ワークシートを使用して、Excel の組み込み関数を示します。 列 A から名前を参照し、列 C からその人の年齢を返す例について考えます。このワークシートを作成するには、空の Excel ワークシートに次のデータを入力します。
セル E2 に検索する値を入力します。 同じワークシート内の任意の空白セルに数式を入力できます。
| A | B | C | D | E | ||
|---|---|---|---|---|---|---|
| 1 | Name | Dept | 年齢 | 値の検索 | ||
| 2 | Henry | 501 | 28 | メアリー | ||
| 3 | Stan | 201 | 19 | |||
| 4 | メアリー | 101 | 22 | |||
| 5 | Larry | 301 | 29 |
用語の定義
この記事では、Excel の組み込み関数について次の用語を使用します。
| 用語 | 定義 | 使用例 |
|---|---|---|
| テーブル配列 | ルックアップ テーブル全体 | A2:C5 |
| Lookup_Value | Table_Array の最初の列にある値。 | E2 |
| Lookup_Array -または- Lookup_Vector |
検索可能な値を含むセルの範囲。 | A2:A5 |
| Col_Index_Num | 一致する値が返される対象の Table_Array の列番号。 | 3 (Table_Array の 3 列目) |
| Result_Array -または- Result_Vector |
行または列が 1 つだけを含む範囲。 Lookup_Array または Lookup_Vector と同じサイズである必要があります。 | C2:C5 |
| Range_Lookup | 論理値 (TRUE または FALSE)。 TRUE を指定するか省略した場合、近似値が返されます。 FALSE の場合、完全一致が検索されます。 | FALSE |
| Top_cell | これは、オフセットの基準となる参照です。 Top_Cell は、セルまたは隣接するセルの範囲を参照する必要があります。 それ以外の場合は、OFFSET は #VALUE! を返します。 エラー値。 | |
| Offset_Col | これは、結果の左上のセルで参照する左または右の列の数です。 たとえば、Offset_Col引数として "5" を指定すると、参照の左上のセルが参照の右にある 5 列になります。 Offset_Colには、正 (開始参照の右側) または負 (開始参照の左側) を指定できます。 |
関数
LOOKUP()
LOOKUP 関数は、単一の行または列から値を見つけ、それを別の行または列の同じ位置にある値と照合します。
LOOKUP 数式の構文例を次に示します。
=LOOKUP(Lookup_Value,Lookup_Vector,Result_Vector)
次の数式では、サンプル ワークシートでメアリーの年齢が求められます。
=LOOKUP(E2,A2:A5,C2:C5)
この数式では、セル E2 の値 "Mary" が使用され、ルックアップ ベクトル (列 A) で "Mary" が検索されます。 数式は結果ベクトルの同じ行 (列 C) の値と一致します。 "Mary" は行 4 にあるため、LOOKUP は行 C の行 4 の値を返します (22)。
注:LOOKUP 関数では、テーブルを並べ替える必要があります。
LOOKUP 関数の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
VLOOKUP()
VLOOKUP または垂直ルックアップ関数は、データが列に一覧表示されている場合に使用されます。 この関数は、左端の列の値を検索し、同じ行の指定された列のデータと照合します。 VLOOKUP を使用すると、並べ替えられたテーブルまたは並べ替えられていないテーブルのデータを検索できます。 次の例では、並べ替えられていないデータを含むテーブルを使用します。
VLOOKUP 数式の構文例を次に示します。
=VLOOKUP(Lookup_Value,Table_Array,Col_Index_Num,Range_Lookup)
次の数式では、サンプル ワークシートでメアリーの年齢が求められます。
=VLOOKUP(E2,A2:C5,3,FALSE)
この数式では、セル E2 の値 "Mary" が使用され、左端の列 (列 A) で "Mary" が検索されます。 数式は、Column_Index の同じ行の値と一致させます。 この例では、Column_Index (列 C) として "3" を使用します。 "Mary" は行 4 にあるため、 VLOOKUP は行 C の行 4 の値を返します (22)。
VLOOKUP 関数の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
VLOOKUP または HLOOKUP を使用して完全一致を検索する方法
INDEX() と MATCH()
INDEX 関数と MATCH 関数を併用すると、 LOOKUP または VLOOKUP を使用する場合と同じ結果が得られます。
前の例の LOOKUP および VLOOKUP と同じ結果を生成するように、INDEX と MATCH を組み合わせた構文の例を次に示します。
=INDEX(Table_Array,MATCH(Lookup_Value,Lookup_Array,0),Col_Index_Num)
次の数式では、サンプル ワークシートでメアリーの年齢が求められます。
=INDEX(A2:C5,MATCH(E2,A2:A5,0),3)
この数式では、セル E2 の値 "Mary" が使用され、列 A に "Mary" が示されます。その後、列 C の同じ行の値と一致します。"Mary" は行 4 にあるため、数式は行 4 の値を列 C (22) に返します。
注: Lookup_Array内のどのセルもLookup_Value ("Mary") に一致しない場合、この数式は #N/A を返します。
INDEX 関数の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
OFFSET() と MATCH()
OFFSET 関数と MATCH 関数を一緒に使用すると、前の例の関数と同じ結果が得られます。
OFFSET と MATCH を組み合わせて、LOOKUP や VLOOKUP と同じ結果を生成する構文例を次に示します。
=OFFSET(top_cell,MATCH(Lookup_Value,Lookup_Array,0),Offset_Col)
次の数式により、サンプル ワークシートでのメアリーの年齢が求められます。
=OFFSET(A1,MATCH(E2,A2:A5,0),2)
この数式では、セル E2 の値 "Mary" が使用され、列 A に "Mary" が示されます。この数式は、同じ行 (ただし右に 2 列) にある値と一致させます。 "Mary" は列 A にあるため、数式は行 4 の値を列 C (22) に返します。
OFFSET 関数の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。