Excel の組み込み関数を使用して、テーブルまたはセル範囲内のデータを検索する

適用先
Excel for Microsoft 365

概要

この資料では、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 サポート技術情報) をクリックしてください。
 

Excel で LOOKUP 関数を使用する方法

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 と同じ結果を生成するように、INDEXMATCH を組み合わせた構文の例を次に示します。

    =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 サポート技術情報) をクリックしてください。

INDEX 関数を使用してテーブル内のデータを検索する方法

OFFSET() と MATCH()

OFFSET 関数と MATCH 関数を一緒に使用すると、前の例の関数と同じ結果が得られます。

OFFSET と MATCH を組み合わせて、LOOKUPVLOOKUP と同じ結果を生成する構文例を次に示します。

    =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 サポート技術情報) をクリックしてください。
 

OFFSET 関数の使用方法