ExcelのLOOKUP関数の使い方を徹底解説|ベクトル形式と配列形式の違いと実用例
LOOKUP関数を使う前に知っておきたいこと
- ExcelのLOOKUP関数は、行や列の中から情報を検索するための関数です。
- LOOKUP関数には「ベクトル形式」と「配列形式」の2つの使い方があり、目的に応じて使い分けます。
- ベクトル形式は1行または1列のみを検索するのに対し、配列形式は複数の行と列をまとめて検索できます。
この記事では、Excel 2019やMicrosoft 365を含むすべてのバージョンのExcelでLOOKUP関数を使用する方法を、具体例とともにわかりやすく解説します。
LOOKUP関数は、あらゆるバージョンのExcelで使用できます。
LOOKUP関数とは?
LOOKUP関数は、行または列の中から情報を検索するExcelの関数です。検索値と同じ位置にある値を別の範囲から取得する仕組みのため、すべての行や列に同種のデータが整然と並ぶ構造化された表を扱う際に特に便利です。
LOOKUP関数には、目的に応じて2つの書き方があります。ひとつは「ベクトル形式」、もうひとつは「配列形式」です。
LOOKUP関数の構文と引数
LOOKUP関数には、以下の2つの使い方があります。
ベクトル形式
ベクトル形式は、1行または1列のみを検索します。この検索対象の範囲を「ベクトル」と呼びます。返される値は、対応するもう一方のデータセット内の同じ位置にある値です。
=LOOKUP(検索値, 検索範囲, [対応範囲])
- lookup_value(検索値): ベクトル内で検索したい値です。数値、文字列、論理値、名前、セル参照のいずれかを指定できます。この引数は必須です。
- lookup_vector(検索範囲): 検索対象となる範囲です。1行または1列である必要があります。ベクトル内の値は昇順(例:1, 2, 3 または A, B, C)に並んでいる必要があります。この引数は必須です。
- result_vector(対応範囲): 省略可能な範囲です。使用する場合は、lookup_vectorとまったく同じサイズにする必要があります。
ベクトル形式を使用する際は、以下のルールも覚えておきましょう。
- lookup_valueがlookup_vector内の最小値より小さい場合、エラー #N/A が表示されます。
- lookup_valueが見つからない場合、LOOKUP関数はlookup_vector内でlookup_value以下の最大値と一致させます。
配列形式
配列形式は、複数の行と列にまたがって値を検索できます。まず選択範囲の最初の行または列で指定した値を見つけ、その後、最後の行または列の同じ位置にある値を返します。
=LOOKUP(検索値, 配列)
- lookup_value(検索値): 配列内で検索したい値です。数値、文字列、論理値、名前、セル参照を指定でき、昇順(例:1, 2, 3 または A, B, C)に並んでいる必要があります。この引数は必須です。
- array(配列): lookup_valueと比較する値を含むセル範囲です。この引数は必須です。
配列形式を使うときは、以下のルールにも注意してください。
- lookup_valueが見つからない場合、配列内でlookup_value以下の最大値が代わりに使用されます。
- lookup_valueが最初の行または列の最大値より小さい場合、エラー #N/A が返されます。
- 配列の列数が行数より多い場合、LOOKUP関数は最初の行でlookup_valueを検索します。
- 配列の行数が列数より多い場合、LOOKUP関数は最初の列でlookup_valueを検索します。
LOOKUP関数の使用例
ここからは、実際の数式でLOOKUP関数を活用する具体的な例を紹介します。
ベクトル形式で表を検索する
=LOOKUP(1003,A2:A5,C2:C5)
これは、品番ごとに整理された表から価格を調べる例です。品番がA2:A5に、価格がC2:C5に入力されていることがわかっているため、これらの範囲を指定して品番「1003」に対応する価格を検索できます。
配列形式で表を検索する
=LOOKUP(1003,A2:C5)
先ほどと同じデータに対して、今度は配列形式でLOOKUP関数を使う方法です。2つの単一列を個別に指定する代わりに、表全体を選択しています。ただし、この例では価格が必要なので、関数が「最終列の同じ位置にある値」を返す仕組みを利用し、選択範囲をC列で止めています。
表内で最も近い数値を検索する
=LOOKUP(A2,D2:D6,F2:F6)
この数式は、A列の点数をD列の評価基準と照合しています。LOOKUP関数は点数が評価基準のどの区分に該当するかを判断し、F2:F6から対応する成績を取得して点数の横に表示します。点数が表にそのまま存在しない場合でも、LOOKUPは自動的に「次に低い値」を採用してくれるのがポイントです。
この数式は、次のように配列形式で書くこともできます。
=LOOKUP(A2,D2:F6)
選択範囲の始まりがD列、成績が入力された最終列がF列なので、結果はベクトル形式とまったく同じになります。
ヒント: 数式にドル記号($)を使うと、数式を下方向にドラッグして他のセルへコピーする際に、参照先がずれるのを防げます。混合参照について詳しくは、関連記事をご覧ください。
リスト内の最後の数値を検索する
=LOOKUP(9.99999999999999E+307,A:A)
この数式は、A列に入力されている最後の数値を検索します。9.99999999999999E+307はExcelワークシートで扱える最大の数値なので、範囲内に空白セルが含まれていても、リストの最後の数値を確実に取得できます。
リスト内の最後の文字列を検索する
=LOOKUP(REPT("z",255),A:A)
この例では、A列の最後の文字列値を検索します。REPT関数を使い、Excelで扱える文字列の最大長である255文字まで「z」を繰り返しています。数値の例と同様に、テキストが入力された最後のセルをシンプルに特定できるテクニックです。
表のデータから見出しの値を検索する
=LOOKUP(2,1/(B3:G3 <> ""),B$2:G$2)
最後の例は、この記事で詳しく説明していないテクニックも含まれていますが、LOOKUP関数がどれほど柔軟で便利かを実感できる内容です。基本的な考え方は、各行の最後の入力値を特定し、2行目の日付を見出しとして照会することで、「各請求書を最後に支払った日付」を自動的に把握するというものです。
LOOKUP関数に似たその他の関数
LOOKUPは比較的基本的な検索/行列関数です。より高度な用途には、ほかの関数の方が適している場合もあります。
VLOOKUPとHLOOKUPを使うと、それぞれ縦方向・横方向の検索を行え、完全一致か近似一致かを明示的に指定できます。一方、LOOKUPは完全一致が見つからない場合、自動的に最も近い値を返すという特徴があります。
また、XLOOKUPはLOOKUPと似た、より新しく高機能な検索関数です。Microsoft 365やExcel 2021以降で使えるため、条件に合わせて使い分けるとよいでしょう。
-
ExcelのFIXED関数の使い方を徹底解説!数値を指定桁数のテキストに変換する方法
ExcelのFIXED関数とは? FIXED関数は、Microsoft Excelに標準搭載されている文字列(テキスト)関数の一つです。数値を指定した小数点以下の桁数で四捨五入し、テキスト形式に変換して返します。レポートや帳票など、表示形式を整えた数値を文字列として扱いたい場合に便利な関数です。 FIXED関数の書式と引数 FIXED関数の書式は =FIXED(数値, [小数点以下の桁数], [桁区切り]) です。各引数の意味は以下のとおりです。 数値(Number):四捨五入してテキストに変換したい数値を指定します。この引数は必須です。 小数点以下の桁数(Decimals):小数点の右側に
-
ExcelのRANDBETWEEN関数の使い方|指定した範囲内の乱数を簡単に生成する3つの方法
Microsoft ExcelのRANDBETWEEN(ランドビトウィーン)関数は、数学/三角関数に分類される関数の一つで、指定した2つの数値の間からランダムな整数を返します。サイコロの目のような1〜6の乱数を作りたいときや、くじ引きの番号、テストデータなどを自動生成したい場合にとても便利です。 この記事では、RANDBETWEEN関数の書式と、セルへの直接入力、「関数の挿入」ダイアログボックス、「数式」タブを使った3つの方法を、初心者の方にもわかりやすく解説します。 RANDBETWEEN関数の書式 RANDBETWEEN関数の書式は以下の通りです。 =RANDBETWEEN(最小値, 最大