1 つの行または列から、他の行または列の同じ場所にある値を見つけるときは、検索/行列関数 の 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 が最初のベクトルで検索する値。 検査値には、数値、文字列、論理値、または値を参照する名前やセル参照を指定できます。
-
検査範囲 必ず指定します。 1 行または 1 列のみの範囲を指定します。 検査範囲には、文字列、数値、または論理値を指定できます。
: lookup_vector の値は、...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE の昇順に配置する必要があります。それ以外の場合、LOOKUP は正しい値を返さない可能性があります。 英字の大文字と小文字は区別されません。
-
result_vector 省略可能です。 1 つの行または列のみを含む範囲。 result_vector引数は、lookup_vectorと同じサイズにする必要があります。 同じサイズにする必要があります。
説明
-
LOOKUP では、検査値が見つからない場合、検査範囲内で検査値以下の最大値が、一致する値として使用されます。
-
検査値 が検査範囲に含まれる最小値よりも小さい場合は、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 で配列内で検索する値を指定します。 検査値には、数値、文字列、論理値、または値を参照する名前やセル参照を指定できます。
-
LOOKUP では、検査値が見つからない場合、配列内で検査値以下の最大値が、一致する値として使用されます。
-
検査値 が、(配列の次元に応じて) 先頭行または先頭列に含まれる最小値よりも小さい場合は、LOOKUP では、エラー値 #N/A が返されます。
-
-
配列 必ず指定します。 検査値と比較する文字列、数値、または論理値を含むセル範囲を指定します。
配列形式の LOOKUP 関数は HLOOKUP 関数と VLOOKUP 関数によく似ています。 ただし、HLOOKUP 関数が検査値を先頭行で、VLOOKUP 関数が先頭列でそれぞれ検索するのに対して、LOOKUP は指定された配列の次元に応じて先頭行または先頭列で検索します。
-
横長の (行数より列数が多い) 配列の場合は、LOOKUP では、先頭行で検査値が検索されます。
-
正方形 (行数と列数が等しい) または縦長の (列数より行数が多い) 配列の場合は、LOOKUP では、先頭列で検査値が検索されます。
-
HLOOKUP 関数と VLOOKUP 関数では、検索対象となる行番号または列番号を指定できますが、LOOKUP 関数では、最終行または最終列の値が検索対象として自動的に選択されます。
: 配列内の値は、...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE の昇順に配置する必要があります。それ以外の場合、 LOOKUP は正しい値を返さない可能性があります。 英字の大文字と小文字は区別されません。
-