概要
この詳細な記事では、Microsoft Excel のさまざまな組み込み関数を使用して、テーブル (またはセル範囲) 内のデータを検索する方法について説明します。 さまざまな数式を使用して同じ結果を取得できます。
サンプル ワークシートを作成する
この記事では、Excel の組み込み関数を示すためにサンプル ワークシートを使用します。 列 A から名前を参照し、列 C からそのユーザーの年齢を返す例を考えてみましょう。このワークシートを作成するには、空白の Excel ワークシートに次のデータを入力します。
検索する値をセル E2 に入力します。 同じワークシート内の任意の空白セルに数式を入力できます。
A |
B |
C |
D |
E |
||
1 |
Name |
Dept |
年齢 |
値の検索 |
||
2 |
Henry |
501 |
28 |
メアリー |
||
3 |
スタン |
201 |
19 |
|||
4 |
メアリー |
101 |
22 |
|||
5 |
ラリー |
301 |
29 |
用語定義
この記事では、次の用語を使用して、Excel の組み込み関数について説明します。
用語 |
定義 |
例 |
Table 配列 |
ルックアップ テーブル全体 |
A2:C5 |
Lookup_Value |
Table_Arrayの最初の列にある値。 |
E2 |
Lookup_Array -or- Lookup_Vector |
可能な参照値を含むセルの範囲。 |
A2:A5 |
Col_Index_Num |
一致する値Table_Arrayの列番号を返す必要があります。 |
3 (Table_Array の 3 番目の列) |
Result_Array -or- 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 関数は、1 つの行または列の値を検索し、別の行または列内の同じ位置にある値と一致します。
LOOKUP 式の構文の例を次に示します。=LOOKUP(Lookup_Value,Lookup_Vector,Result_Vector)
次の数式は、サンプル ワークシート内の Mary の年齢を示しています。
=LOOKUP(E2,A2:A5,C2:C5)
数式では、セル E2 の値 "Mary" を使用し、ルックアップ ベクター (列 A) で "Mary" を検索します。 数式は、結果ベクトル (列 C) 内の同じ行の値と一致します。 "Mary" は行 4 にあるため、LOOKUP は列 C (22) の行 4 の値を返します。
手記:LOOKUP 関数では、テーブルを並べ替える必要があります。LOOKUP 関数の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。
VLOOKUP()
VLOOKUP 関数または垂直参照関数は、データが列に一覧表示されるときに使用されます。 この関数は、左端の列の値を検索し、同じ行の指定された列のデータと一致します。 VLOOKUP を使用して、並べ替えられたテーブルまたは並べ替えされていないテーブル内のデータを検索できます。 次の例では、並べ替えされていないデータを含むテーブルを使用します。
VLOOKUP 数式構文の例を次に示します。=VLOOKUP(Lookup_Value,Table_Array,Col_Index_Num,Range_Lookup)
次の数式は、サンプル ワークシート内の Mary の年齢を示しています。
=VLOOKUP(E2,A2:C5,3,FALSE)
数式では、セル E2 の値 "Mary" を使用し、左端の列 (列 A) で "Mary" を検索します。 数式は、Column_Index内の同じ行の値と一致します。 この例では、Column_Index (列 C) として "3" を使用します。 "Mary" は行 4 にあるため、VLOOKUP は列 C (22) の行 4 から値を返します。
VLOOKUP 関数の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。
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" を使用し、列 A で "Mary" を検索します。次に、列 C の同じ行の値と一致します。"Mary" は行 4 にあるため、数式は列 C (22) の行 4 の値を返します。
メモ: Lookup_Value ("Mary") と一致Lookup_Arrayセルがない場合、この数式は #N/A を返します。
INDEX 関数の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。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" を使用し、列 A で "Mary" を検索します。数式は、同じ行の値と一致しますが、右側の 2 つの列 (列 C) と一致します。 "Mary" は列 A にあるため、数式は列 C (22) の行 4 の値を返します。
OFFSET 関数の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。