1 つの行または列を検索し、2 番目の行または列内の同じ位置から値を検索する必要がある場合は、 ルックアップ関数と参照関数の 1 つである LOOKUP を使用します。
たとえば、自動車の部品の部品番号がわかっていても価格がわからないとします。 LOOKUP 関数を使うと、セル H1 に自動車の部品番号を入力したときに、価格を返してセル H2 に表示することができます。
LOOKUP 関数は 1 つの行や列を検索するために使います。 上の例では、列 D で価格を検索します。
ヒント
使用しているバージョンに応じて、新しい検索関数の 1 つを検討してください。
- VLOOKUP を使用して 1 つの行または列を検索するか、複数の行と列 (テーブルなど) を検索します。 これは、LOOKUP の機能強化版です。 VLOOKUP の使用方法については、このビデオをご覧ください。
- Microsoft 365 を使用している場合は、 XLOOKUP を使用します。高速であるだけでなく、任意の方向 (上、下、左、右) で検索することもできます。
LOOKUP には、ベクトル形式と配列形式の 2 種類の使い方があります。
-
ベクトル形式: この形式の LOOKUP を使用して、1 つの行または 1 つの列で値を検索します。 ベクトル形式の LOOKUP 関数を使用するのは、検索する値が含まれた範囲を指定する場合です。 たとえば、列 A の行 6 までの範囲で値を検索する場合などです。
-
配列形式: 配列フォームの代わりに VLOOKUP または HLOOKUP を使用することを強くお勧めします。
VLOOKUP の使用に関するこのビデオをご覧ください。 配列形式は、他のスプレッドシート プログラムとの互換性を維持するために提供されていますが、機能が制限されています。
配列は、検索対象の行と列の値の集まりです (表に似ています)。 たとえば、列 A と B を行 6 までの範囲で検索する場合などです。 LOOKUP は最も近い位置で一致する値を返します。 配列形式を使用するには、データが並べ替えられている必要があります。
ベクトル形式
ベクトル形式の LOOKUP 関数は、1 行または 1 列のみのセル範囲 (ベクトル) で値を検索し、値が見つかると、範囲の次の行または列の同じ位置にある値を返します。
書式
LOOKUP(検査値, 検査範囲, [対応範囲])
LOOKUP 関数のベクトル形式の書式には、次の引数があります。
lookup_value 必須。 LOOKUP が最初のベクトルで検索する値。 Lookup_value には、数値、テキスト、論理値、または値を参照する名前または参照を指定できます。
lookup_vector 必須。 1 行または 1 列のみの範囲を指定します。 lookup_vectorの値には、テキスト、数値、または論理値を指定できます。
重要
lookup_vectorの値は、...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE の昇順に配置する必要があります。それ以外の場合、LOOKUP は正しい値を返さない可能性があります。 英字の大文字と小文字は区別されません。
result_vector オプション。 1 つの行または列のみを含む範囲。 result_vector引数は、lookup_vectorと同じサイズにする必要があります。 同じサイズにする必要があります。
説明
- LOOKUP 関数でlookup_valueが見つからない場合、関数はlookup_value以下のlookup_vectorの最大値と一致します。
- lookup_valueがlookup_vectorの最小値よりも小さい場合、LOOKUP は #N/A エラー値を返します。
ベクターの例
使用している Excel のワークシートでこれらの例を使って、LOOKUP 関数の機能を学ぶことができます。 最初の例では、最終的に次のようなスプレッドシートになります。
次の表のデータをコピーし、新しい Excel ワークシートに貼り付けます。
列 A にコピーするデータ 列 B にコピーするデータ 頻度 色 4.14 赤 4.19 橙 5.17 黄 5.77 緑 6.39 青 次に、次の表の LOOKUP 式をワークシートの列 D にコピーします。
列 D にコピーする式 式の内容 表示される結果 =LOOKUP(4.19, A2:A6, B2:B6) A 列で 4.19 を検索し、B 列の同じ行にある値を返します。 橙 =LOOKUP(5.75, A2:A6, B2:B6) A 列で 5.75 を検索し、次に小さい値 (5.17) を一致する値として見つけて、B 列の同じ行にある値を返します。 黄 =LOOKUP(7.66, A2:A6, B2:B6) A 列で 7.66 を検索し、次に小さい値 (6.39) を一致する値として見つけて、B 列の同じ行にある値を返します。 青 =LOOKUP(0, A2:A6, B2:B6) A 列で 0 を検索し、0 が列 A の最小値 (4.14) より小さいため、エラーを返します。 #N/A これらの式で結果を表示するには、Excel ワークシートで対象の式を選択して、F2 キーを押してから Enter キーを押さなければならない場合があります。 必要に応じて、列幅を調整してすべてのデータを表示してください。
配列形式
ヒント
配列形式の代わりに VLOOKUP または HLOOKUP を使用することを強くお勧めします。 VLOOKUP に関するこのビデオを参照してください。例を示します。 LOOKUP の配列形式は、他のスプレッドシート プログラムとの互換性のために提供されますが、その機能は制限されています。
LOOKUP の配列形式は、指定した値の配列の最初の行または列を検索し、配列の最後の行または列の同じ位置から値を返します。 この形式の LOOKUP 関数を使用するのは、検索する値が配列の最初の行または列にある場合です。
構文
LOOKUP(検査値, 配列)
LOOKUP 関数の配列形式書式には、次の引数があります。
lookup_value 必須。 LOOKUP で配列内で検索する値を指定します。 lookup_value引数には、数値、テキスト、論理値、または値を参照する名前または参照を指定できます。
- LOOKUP でlookup_valueの値が見つからない場合は、lookup_value以下の配列の最大値が使用されます。
- lookup_valueの値が(配列の次元に応じて) 最初の行または列の最小値よりも小さい場合、LOOKUP は #N/A エラー値を返します。
配列 必須。 検査値と比較する文字列、数値、または論理値を含むセル範囲を指定します。
配列形式の LOOKUP 関数は HLOOKUP 関数と VLOOKUP 関数によく似ています。 違いは、 HLOOKUP は最初の行で lookup_value の値を検索し、 VLOOKUP は最初の列を検索し、 LOOKUP は配列の次元に従って検索します。配列が高さ (行より多い列) より広い領域をカバーしている場合、 LOOKUP は最初の行の lookup_value の値を検索します。
正方形 (行数と列数が等しい) または縦長の (列数より行数が多い) 配列の場合は、LOOKUP では、先頭列で検査値が検索されます。
HLOOKUP 関数と VLOOKUP 関数では、検索対象となる行番号または列番号を指定できますが、LOOKUP 関数では、最終行または最終列の値が検索対象として自動的に選択されます。
重要
配列内の値は、...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE の昇順に配置する必要があります。それ以外の場合、 LOOKUP は正しい値を返さない可能性があります。 英字の大文字と小文字は区別されません。