- 公開日:
- 更新日:
ExcelのLOOKUP関数の使い方|1行または1列の範囲から検索する
Excelの関数でVLOOKUP関数は知っているけれどLOOKUP関数を知らないという方も多いと思います。
VLOOKUP関数と同じく範囲から検索して対応する値を返すことができますが、完全一致が指定できないなど違いがあります。
LOOKUP関数の意味や使い方、VLOOKUP関数やHLOOKUP関数との違いを理解して使い分けができるようにしましょう。
LOOKUP関数とは?
LOOKUP(ルックアップ)とは「探す」という意味です。LOOKUP関数は、1行または1列のみのセル範囲、または配列に含まれる値を返します。検索/行列関数の1つです。

例えば上図で商品コード「1001」の単価(G3セル)を調べたいとします。左側の表から商品コードを検索して自動的に単価を表示させたいときにLOOKUP関数が活躍します。
LOOKUP関数の書式
LOOKUP関数の書式は「ベクトル形式」と「配列形式」の2種類あります。

形式ごとに引数が異なりますので1つずつ確認してみましょう。
- =LOOKUP(検索値,検索範囲,[対応範囲])
- =LOOKUP(検索値,配列)
※引数(ひきすう)とは、Excelの関数を使用する際に必要な情報です。関数が結果を返すための判断材料とイメージしましょう。関数名の後の括弧「()」内に入力します。
ベクトル形式
ベクトル形式は最大で3つの引数があります。ベクトル形式は検索範囲に検索する値が含まれる場合に使用します。
第1引数(検索値)

1番目の引数は「検索値」です。この引数は必須です。検索する値を指定します。
検索値には、数値/文字列/論理値、または名前やセル参照を指定できます。英字の大文字と小文字は区別されません。
第2引数(検索範囲)

2番目の引数は「検索範囲」です。この引数は必須です。検索値を検索する1行または1列の範囲を指定します。
検索範囲の値が文字コードの昇順になっていないと正しい値を返さない可能性があります。
第3引数(対応範囲)

3番目の引数は「対応範囲」です。この引数は任意です。検索範囲に対応する1行または1列の範囲を指定します。
対応範囲は、検索範囲と同じ大きさである必要があります。省略すると検索範囲が対応範囲になります。
配列形式
配列形式は2つの引数があります。配列形式を使用するのは、検索値が配列の最初の行または列にある場合です。
LOOKUP関数の配列形式の代わりにVLOOKUP関数やHLOOKUP関数を使うことが推奨されています。
第1引数(検索値)

1番目の引数は「検索値」です。この引数は必須です。配列内で検索する値を指定します。
検索値には、数値/文字列/論理値、または名前やセル参照を指定できます。
第2引数(配列)

2番目の引数は「配列」です。この引数は必須です。検索値を含むセル範囲を指定します。
配列の最初の行または列から検索値を検索し、配列の最後の行または列の同じ位置にある値を返します。
- 行数より列数が多い配列の場合:最初の「行」から検索値を検索する
- 行数と列数が等しい配列の場合:最初の「列」から検索値を検索する
- 列数より行数が多い配列の場合:最初の「列」から検索値を検索する
LOOKUP関数の使い方(実践)
実際にLOOKUP関数(ベクトル形式)を使用する例をご紹介します。引数をどのように使用するか見てみましょう。

まずは上記の表を準備しましょう。今回の目的としては商品コード(F3セル)を入力するとその商品コードに紐づいた単価(G3セル)を表示させるようにしていきます。

まずG3セルを選択し、セルに直接『=LOOKUP(』と入力します。

検索値としてF3セルを指定します。G3セルに「=LOOKUP(」に続けて『F3,』と入力します。マウスでセルを選択することでも可能です。

検索範囲として商品コードの列(B3~B5セル)を指定します。G3セルに「=LOOKUP(F3,」に続けて『B3:B5,』と入力します。マウスでセルを範囲選択することでも可能です。

対応範囲として単価の列(D3~D5セル)を指定します。G3セルに「=LOOKUP(F3,B3:B5,」に続けて『D3:D5)』と入力します。マウスでセルを範囲選択することでも可能です。数式を確定するために【Enter】キーを押します。

G3セルに商品コード「1001」に紐づいている単価が表示されました。
LOOKUP関数とVLOOKUP関数とHLOOKUP関数の違い
LOOKUP関数とVLOOKUP関数とHLOOKUP関数の違いについて説明します。
関数の意味と引数の違い
LOOKUP関数は引数が最大で3つですが、VLOOKUP関数とHLOOKUP関数は引数が最大4つ指定する必要があります。
関数 | 意味 | 引数 |
---|---|---|
LOOKUP関数 | 1行または1列のみのセル範囲、または配列に含まれる値を返します | =LOOKUP(検索値,検索範囲,[対応範囲]) =LOOKUP(検索値,配列) |
VLOOKUP関数 | 指定された範囲の1列目で特定の値を検索し、指定した列と同じ行にある値を返します | =VLOOKUP(検索値, 範囲, 列番号, [検索の型]) |
HLOOKUP関数 | 指定されたテーブルまたは、配列の先頭行で特定の値を検索し、指定した列と同じ行にある値を返します | =HLOOKUP(検索値, 範囲, 行番号, [検索の型]) |
検索値を検索する範囲の違い
VLOOKUP関数は範囲の最初の列、HLOOKUP関数は範囲の最初の行から検索します。一方、LOOKUP関数(配列形式)は配列の列数、行数によって最初の行または列になるかが決まります。
LOOKUP関数は、表の列数、行数を変更したときに結果が変わってしまう可能性があります。
関数 | 検索値を検索する範囲 |
---|---|
LOOKUP関数(配列形式) | 配列の最初の行または列 |
VLOOKUP関数 | 最初の列 |
HLOOKUP関数 | 最初の行 |
検索対象の違い
VLOOKUP関数は列番号、HLOOKUP関数は行番号で検索対象を指定できます。一方、LOOKUP関数(配列形式)は配列の列数、行数によって最後の行または列になるかが決まります。
LOOKUP関数は、表の列数、行数を変更したときに結果が変わってしまう可能性があります。
関数 | 検索対象 |
---|---|
LOOKUP関数(配列形式) | 配列の最後の行または列 |
VLOOKUP関数 | 列番号で指定できる |
HLOOKUP関数 | 行番号で指定できる |
完全一致の指定の違い
VLOOKUP関数とHLOOKUP関数では「検索の型」という引数にFALSEを指定することで完全一致を指定することができます。
一方、LOOKUP関数には「検索の型」はないため検索値と一致するものがない場合、エラーではなく近い値を返します。
関数 | 完全一致を指定できるか |
---|---|
LOOKUP関数 | 指定できない |
VLOOKUP関数 | 指定できる |
HLOOKUP関数 | 指定できる |
VLOOKUP関数の詳しい使い方をチェック!
Excelの関数の中でもよく使用されるVLOOKUP関数の引数を1つずつ分解して解説しています。
ExcelのVLOOKUP関数の使い方|指定の列と同じ行にある値を返す
HLOOKUP関数の詳しい使い方をチェック!
横方向に検索できるHLOOKUP関数の引数を1つずつ分解して解説しています。
ExcelのHLOOKUP関数の使い方|指定の行と同じ列にある値を返す
その他、様々なLOOKUP関数の使い方
検索値と一致しないとき、近い値を検索する
LOOKUP関数では、一致した検索値が見つからないとき、検索範囲の中から検索値以下の最大値を一致する値として返します。

例えば上図で単価(F3セル)に「200」を入力するとその単価に近い値の商品(G3セル)を表示したいとします。

LOOKUP関数を入力します。G3セルを選択し、『=LOOKUP(F3,D3:D5,C3:C5)』と入力します。数式を確定するためにEnterを押します。

G3セルに検索範囲(D3:D5)から単価200以下の最大値である198に対応している「バナナ」が結果として返りました。
このようにLOOKUP関数では完全一致でなくても近い値を返します。
複数条件で検索する
LOOKUP関数は条件を1つしか指定できませんが、元の表データを加工することで複数条件で検索することが可能です。

例えば上記の表で、商品コードの「1002」と商品の「バナナ」を2つの条件として単価を取り出してみましょう。

まずB列に項目を追加します。「商品コード&商品」としました。B3セルを選択し、『=C3&D3』と入力します。「商品コード」と「商品」を「&」(アンパサンド)で文字列結合します。

B3セルの右下を【ダブルクリック】するとB4、B5セルも同様に結合した値が入ります。

G列に項目を追加します。「商品コード&商品」としました。G3セルを選択し、『=H3&I3』と入力します。「商品コード」と「商品」を「&」(アンパサンド)で文字列結合します。

J3セルを選択し、『=LOOKUP(G3,B3:B5,E3:E5)』と入力します。検索値には「G3」(1002バナナ)、検索範囲には「B3:B5」、対応範囲には「E3:E5」を指定しています。

商品コードの「1002」と商品の「バナナ」を2つの条件とした単価がJ3セルにLOOKUP関数で求めることができました。
LOOKUP関数で合計する
LOOKUP関数で取得した数値を合計することはできません。SUMIF関数を使用することで条件を指定して合計することができます。
以下の記事でSUMIF関数を使用して合計する方法を紹介しています。
ExcelのVLOOKUP関数とSUMIF関数を組み合わせる方法
#N/Aエラーに対処する
LOOKUP関数が#N/Aエラーになる場合の原因と対処方法を紹介します。

LOOKUP関数が#N/Aエラーになる例として、検索値が検索範囲の最小値より小さい場合が挙げられます。
上図では単価が「90」の商品を検索したいとしてLOOKUP関数を記述した例です。検索範囲の最小値は「98」となっており、検索値「90」より小さい値がないためエラーになります。
検索範囲の最小値より大きい検索値を指定しましょう。

LOOKUP関数が#N/Aエラーになる例として、検索範囲と対応範囲の大きさが異なる場合が挙げられます。
上図では検索範囲が「D3:D5」と3つのセルが指定されていますが、対応範囲には「C3:C4」と2つのセルしか指定していません。範囲の大きさを同じにしましょう。
他の関数も合わせてチェック!
Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。