Excel のテーブルでデータを検索する方法

文書番号: 324861 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、Microsoft Excel のさまざまな組み込み関数を使用して、テーブル (または特定のセル範囲) にあるデータを検索する方法について、手順を追って説明します。異なる関数を使用しても、同一の結果を得ることができます。

サンプルのワークシートを作成する

この資料では、サンプルのワークシートを使用して、Excel の組み込み関数について説明します。ここではその例として、列 A にある名前を参照して、その人物の年齢を列 C から返す処理を行います。このワークシートを作成するには、空白の Excel ワークシートに以下のデータを入力してください。

検索する値は、E2 セルに入力します。同じワークシート内の空白のセルであれば、どのセルでも式を入力できます。
元に戻す全体を表示する
ABCDE
1名前部署年齢検索する値
2Henry50128Mary
3Stan20119
4Mary10122
5Larry30129

用語の定義

この資料では、以下の用語を使用して Excel の組み込み関数を説明します。
元に戻す全体を表示する
用語定義
Table_Array検索対象テーブル全体A2:C5
Lookup_ValueTable_Array の最初の列で検索する値E2
Lookup_Array
または
Lookup_Vector
検索対象の値が含まれているセルの範囲A2:A5
Col_Index_NumTable_Array 内で、返される値が格納されている列番号3 (Table_Array の 3 番目の列)
Result_Array
または
Result_Vector
1 行または 1 列だけが含まれている範囲。Lookup_Array または Lookup_Vector と同じサイズにする必要があります。C2:C5
Range_Lookup 論理値 (TRUE または FALSE)。TRUE または省略されている場合は、近似値を含んだ検索結果を返します。FALSE の場合は、完全一致の値だけを返します。FALSE
Top_Cell基準となるセル範囲の参照を指定します。Top_Cell で参照するのは、単一のセルまたは隣接するセル範囲にする必要があります。それ以外を参照している場合、OFFSET からエラー値 #VALUE! が返されます。
Offset_Col 基準の左上隅のセルの参照先を左方向または右方向への列数単位で指定します。たとえば "5" を Offset_Col 引数に指定すると、参照の左上隅のセルは、基準の左上隅のセルから 5 列右方向を参照します。Offset_Col は、正の数を指定すると右方向を参照し、負の数を指定すると左方向を参照します。

関数

LOOKUP()

LOOKUP 関数は、単一の行または列の値を検索し、別の行または列の同じ位置にある値を返します。

LOOKUP 関数の構文を以下に示します。
=LOOKUP(Lookup_Value,Lookup_Vector,Result_Vector)

以下の式では、Mary の年齢をサンプルのワークシートから検索します。
=LOOKUP(E2,A2:A5,C2:C5)
この式では、セル E2 の値 "Mary" を使用して、"Mary" を検査範囲 (列 A) で検索します。次に、結果ベクトル (列 C) の同じ行の値が返されます。"Mary" は行 4 にあるため、LOOKUP 関数は行 4 の列 C (22) を返します。

注: LOOKUP 関数では、テーブルを並べ替えておく必要があります。
LOOKUP 関数の詳細については、以下のサポート技術情報番号をクリックしてください。
324986 Excel の LOOKUP 関数の使用方法

VLOOKUP()

VLOOKUP (縦方向 (vertical) の検索) 関数は、データが複数列に格納されている場合に使用します。この関数は、左端の列で値を検索し、同じ行の指定された列にある値を返します。VLOOKUP では、テーブルのデータが並べ替えられていなくても検索できます。以下の例では、データが並べ替えられていないテーブルを使用します。

VLOOKUP 関数の構文を以下に示します。
=VLOOKUP(Lookup_Value,Table_Array,Col_Index_Num,Range_Lookup)
以下の式では、Mary の年齢をサンプルのワークシートから検索します。
=VLOOKUP(E2,A2:C5,3,FALSE)
この式は、セル E2 の値 "Mary" を使用して、"Mary" を左端の列 (列 A) で検索します。次に、同じ行の Column_Index にある値が返されます。この例では、Column_Index として "3" (列 C) が使用されています。"Mary" は行 4 にあるため、VLOOKUP 関数は、列 C (22) の行 4 の値を返します。
VLOOKUP 関数の詳細については、以下のサポート技術情報番号をクリックしてください。
181213 VLOOKUP または HLOOKUP を使用して完全一致の検索を行う方法

INDEX() と MATCH()

INDEX と MATCH 関数を組み合わせて使用すると、LOOKUP または VLOOKUP を使用した場合と同一の結果を得ることができます。

INDEX と MATCH を組み合わせて、前出の例の LOOKUP や VLOOKUP と同じ結果を得る例を以下に示します。
=INDEX(Table_Array,MATCH(Lookup_Value,Lookup_Array,0),Col_Index_Num)

以下の式では、Mary の年齢をサンプルのワークシートから検索します。
=INDEX(A2:C5,MATCH(E2,A2:A5,0),3)
この式は、セル E2 の値 "Mary" を使用して、"Mary" を列 A で検索します。次に、同じ行の列 C にある値を選び出します。"Mary" は行 4 にあるため、この式は、行 4 の列 C (22) を返します。

注: Lookup_Array 内のセルで Lookup_Value ("Mary") に一致する値がない場合、この式からは #N/A が返されます。
INDEX 関数の詳細については、以下のサポート技術情報番号をクリックしてください。
324988 INDEX 関数を使用して、テーブル内のデータを検索する方法

OFFSET() と MATCH()

OFFSET と MATCH 関数を一緒に使用すると、前出の例で説明した関数と同一の結果を得ることができます。

OFFSET と MATCH を組み合わせて、前出の例の LOOKUP や VLOOKUP と同じ結果を得る例を以下に示します。
=OFFSET(top_cell,MATCH(Lookup_Value,Lookup_Array,0),Offset_Col)
以下の式は、Mary の年齢をサンプルのワークシートから検索するものです。
=OFFSET(A1,MATCH(E2,A2:A5,0),2)
この式は、セル E2 の値 "Mary" を使用して、"Mary" を列 A で検索します。次に、同じ行の 2 列右にある (列 C) の値を選び出します。"Mary" は列 A にあるため、この式は行 4 の列 C (22) を返します。
OFFSET 関数の詳細については、以下のサポート技術情報番号をクリックしてください。
324991 OFFSET 関数の使用方法
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。

プロパティ

文書番号: 324861 - 最終更新日: 2013年4月2日 - リビジョン: 1.0
この資料は以下の製品について記述したものです。
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
キーワード:?
kbhowtomaster kbhowto KB324861
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック