エクセルLOOKUP関数の使い方を、分かりやすく説明しています。エクセルLOOKUP関数の書式には、ベクトル形式と配列形式の2つがあります。LOOKUP関数は、VLOOKUP関数と似ていますが、検索方法が違います。LOOKUPは、1行または1列からなるセルの範囲で値を検索、または、配列の最初の行または列で値を検索します。VLOOKUP関数は、検索する関数でよく知られていますが、LOOKUP関数はどうでしょう。LOOKUP関数の検索方法を、ぜひ覚えましょう。
目次
LOOKUP関数
エクセルLOOKUP関数の使い方は、ベクトル形式と配列形式の2種類あります。指定した値を1行または1列からなるセルの範囲、または配列から見つける時に使います。使用頻度はベクトル形式が高いです。
LOOKUP関数、ベクトル形式とは
ベクトル形式のLOOKUP関数は、1行または1列からなるセルの範囲で値を検索し、同じ位置の値を返します。この形式のLOOKUP関数は、検索する値が含まれる範囲を指定する時に使います。正確な値を得るためにはこの検査範囲を、昇順で並び替えておく必要があります。
検査値が見つからない場合は、検査範囲の中で検査値以下の最大値が返されます。検査範囲の最小値よりも検査値 が小さい場合は、エラー値#N/A が返されます。
ベクトル形式の書式と引数
LOOKUP ((検査値, 検査範囲, 対応範囲)
検査値 | 検索する値を指定します。検査値には数値、文字列、論理値が指定できます。または名前やセル参照でも指定できます。 |
検査範囲 | 検索する範囲を1行または1列で指定します。昇順で並び替えておく必要があります。 |
対応範囲 | 検索の対象となる範囲を指定します。1行または1列で範囲を指定し、検査範囲と同じサイズにします。 |
ベクトル形式の使用例
受注№「125」を検索し、その該当する金額を返す式です。
E2 =LOOKUP(D2,A2:A6,B2:B6)
結果は「26,000」になります。
A列の受注№「125」を検索し、検索範囲は「A2:A6」です。対応範囲「B2:B6」を指定することによって、受注№の「125」の金額「26,000」を返します。
列Aからセルまたは数値を指定して金額を返すこともできます。
=LOOKUP(A3,A2:A6,B2:B6)
=LOOKUP(125,A2:A6,B2:B6)
LOOKUP関数、配列形式とは
配列形式のLOOKUP関数は、配列の最初の行または列で値を検索し、配列の最終行または最終列の同じ位置にある値を返します。この形式のLOOKUP関数は、配列の先頭行または先頭列に検索する値がある場合に使用します。配列形式の場合、先頭行または先頭列で昇順で並び替えておく必要があります。
検査値が見つからない場合は、配列の先頭行または先頭列に含まれている検査値以下の最大値が返されます。検査値が配列の先頭行または先頭列に含まれている最小値よりも小さい場合は、エラー値#N/A が返されます。
配列形式の書式と引数
LOOKUP (検査値,配列)
検査値 | 検索する値を指定します。検査値には数値、文字列、論理値が指定できます。または名前、セル参照でも指定できます。 |
配列 | 検査値と比較するセル範囲を指定します。配列の最初の行、列から検査値を探します。 |
配列形式の使用例
受注№「502」を検索し、その該当する金額を返す式をF2に入力します。
F2 =LOOKUP(E2,$A$2:$B$6)
結果は「9,500」になります。
受注№「502」を検索し、その該当する単価を返す式をG2に入力します。
G2 =LOOKUP(E2,$A$2:$C$6)
結果は「385」になります。
F2とG2の式を下にコピーする場合は、配列を絶対値にします。
VLOOKUP関数
エクセルVLOOKUP関数は、指定した範囲の左端の列で数値や文字列などを検索し、指定した列と同じ行にある値を返します。LOOKUP関数と同じ、検索/行列関数になります。
VLOOKUP関数の書式と引数
=VLOOKUP(検索値, 範囲, 列番号,[ 検索の型])
検索値 | 検策する値を指定します。 |
範囲 | 検索する範囲を指定します。その場合、検索する列を範囲の一番左にします。検索の型にTRUEを指定、または省略した場合は、正確な値を返すために範囲の左端の列を昇順で並び替えておく必要があります。 |
列番号 | 範囲の先頭列から数えた、列番号を指定します。指定した列番号の列の値が返されます。 |
検索の型 | FALSEまたは”0”を指定すると、一致する値のみ返されます。一致する値が見つからない場合は、エラー値#N/A が返されます。TLUEまたは”1”を指定すると完全一致の値、または近似値が返されます。省略した場合もTRUEになります。完全一致の値が見つからないと、検索値未満の最大値が返されます。 |
VLOOKUP関数の使用例
F2に、商品№「 10035」の「金額」を返す式を入力します。
F2 =VLOOKUP(E2,$A$2:$C$6,2,FALSE)
結果は「5,000」になります。
G2に、商品№「 10035」の「単価」を返す式を入力します。
G2 =VLOOKUP(E2,$A$2:$C$6,3,FALSE)
結果は「100」になります。
式をコピーする場合は、範囲を「$A$2:$C$6」と、絶対値にします。
VLOOKUP関数は、コピーして使うことが多いです。必ず式の範囲は絶対値にしましょう。
VLOOKUP関数とLOOKUP関数との違い
エクセルVLOOKUP関数は、LOOKUP関数を強化した関数です。配列形式のLOOKUP関数は、VLOOKUP関数とよく似ています。VLOOKUP関数は検査値を指定した範囲の最初の列で検索しますが、LOOKUUP関数は指定された配列の次元よって指定された値を先頭行または先頭列で探します。
VLOOKUP関数は、列番号で検索対象を指定しますが、配列形式のLOOKUP関数は、自動的に配列の最終行または最終列が検索対象となります。
配列形式の場合はVLOOKUP関数を使うことがお勧めです。LOOKUP関数は、旧バージョンとの互換性を維持するために提供されていますが、機能が制限されています。VLOOKUP関数は、LOOKUP関数のように、正確な値を得るための事前の設定は必要ありません。検索範囲の一番左に、検索値を設定するだけです。目的によって2つの関数を使い分けることが必要です。
こちらの記事もご覧ください。⇒エクセルLOOKUP関数で複数条件を指定して検索する方法