Excel(エクセル)のLOOKUP関数の使い方|表から簡単検索
VLOOKUP関数やXLOOKUP関数ほどには知名度も注目度もなく、使用頻度も高いとは言えないLOOKUP関数ですが、手軽く使える利点もあります。LOOKUP関数の基本的な使い方をできるだけ分かりやすく解説していきます。
使用関数:LOOKUP
LOOKUP(ルックアップ)関数とは?
LOOKUPは「検索」を意味する英語です。因みにVLOOKUPはVertical Lookupの略で「縦の検索」を意味し、HLOOKUPはHorizontal Lookupの略で「横の検索」を意味します。
簡単な表から手軽く検索したいというような時には便利に使える関数ですが、実のところ旧バージョンとの互換性を保つために存在している関数で、MicrosoftはVLOOKUPやHLOOKUPを使うよう推奨しています。でも、関数ライブラリの互換性関数に整理されてはおらず、検索/行列に属しているので、まだ需要があると思われます。
LOOKUP関数の引数と書式
「数式」→「関数ライブラリ」→「検索/行列」からLOOKUPを選択します。
LOOKUP関数はまず、「ベクトル形式」と「配列形式」の2つの方式からどちらかを選択する必要があります。
表の列見出しが多く、検査値を検索する列と値を取得する列が大きく離れているような場合は「ベクトル形式(既定値)=上」、コンパクトな表なら「配列形式=下」を選択した方がいいでしょう。
書式の構成はこうなります。
数値で近似値を取得するLOOKUP関数の使い方
LOOKUP関数はVLOOKUP関数と同様に近似値を検索することができます。数値のデータ表で実装してみましょう。
以下の表から送料1000円の予算内で送れる最大個数を求めます。
引数「検査値」(ベクトル・配列)
検索のキーとなる値を指定します。
この例では予算1000円の入ったセルをクリックで指定します。ベクトル形式も配列形式もここは同じです。
引数「検査範囲」(ベクトル形式)
検査値で検索するセル範囲を1列(または1行)で指定します。「検査値」と完全一致する値が見つからないときは、「検査値」より小さい値の最大値を検索します。検査範囲の値は文字コードの昇順で並べておきます。
この例では送料の列範囲をドラッグで指定します。「検査値」の1000円と完全一致する値は無いので、1000円未満の最大値800円がヒットします。
引数「配列」(配列形式)
表データ全体、または検索するセル範囲を指定します。
この例では送料及び個数のデータ範囲をドラッグで指定します。
配列形式ではこの時点で数式を確定させます。
配列形式のLOOKUPでは「検査値」を「配列」の先頭行・列で検索し、それに対応する最終行・列の値を抽出します。
「検査値」1000円未満の最大値800円に対応する最終列の個数80が返りました。
数式 =LOOKUP(E1,A2:B6)
引数「対応範囲」(ベクトル形式)
検索した検査値に対応する値を引き出すセル範囲を指定します。検査範囲と対応範囲は同数である必要があります。
この例では送料及び個数のデータ範囲をドラッグで指定します。
「対応範囲」を省略すると、検索された「検査範囲」の値(この例では800)が返ります。
ベクトル形式で「検査値」1000円未満の最大値800円に対応する最終列の個数80が返りました。
数式 =LOOKUP(E1,A2:A6,B2:B6)
文字列でLOOKUP関数を使う
前章では数値で近似値を検索する例を説明しましたが、LOOKUP関数は文字列を検索することもできます。
氏名を入力して、所属するクラス名を取得してみましょう。
氏名の入力セルを「検査値」に指定します。図はベクトル形式のものですが、配列形式でも同じです。
ベクトル形式では「検査範囲」に表の氏名の列範囲を指定し、「対応範囲」に表のクラス名の列範囲を指定します。
LOOKUP関数のベクトル形式で氏名に対応するクラス名が取得されました。
配列形式では「配列」に氏名とクラス名のデータ範囲を引っくるめて指定します。
LOOKUP関数の配列形式で氏名に対応するクラス名が取得されました。
LOOKUP関数で複数条件を指定する
前章では氏名の文字列を検査値にしてクラス名を取得しましたが、同姓同名が混じっていた場合は違う値が返ってくる可能性があります。そうした間違いを回避して正確な結果を得るために条件を複数指定する方法です。
LOOKUP関数自体に複数の条件を指定する機能はありません。そこで、あらかじめ検査値の中に複数の条件を連結させてしまいます。
この例では表の1列目に通し番号が振ってあるので、これと氏名を連結させます。「No.」のセルを選択して「ホーム」の「セル」グループ「挿入」から「シートの列を挿入」をクリックします。
左側の端に列が挿入されたら、一番上のセルに「=B2&C2」と数式を入力してNo.と氏名を連結させます。
オートフィルコピーで全てのNo.と氏名を連結させます。
後は、連結したセルを検査値に指定して、LOOKUP関数を組み立てればOKです。
複数条件を指定したLOOKUP関数の結果です。
LOOKUPと同じ種類の検索関数
「LOOKUP」が付く検索の関数にはVLOOKUP、HLOOKUP、XLOOKUPがあります。これらの関数の機能と違いをまとめました。
VLOOKUP(ブイルックアップ)関数の機能とLOOKUPとの違い
ページの冒頭でも触れましたが、VLOOKUPは「縦の検索」をする機能を持つ、人気の高い関数です。表から検索して特定の値を抽出したいときには真っ先にVLOOKUPを思い浮かべると思います。
- LOOKUPとVLOOKUPの一番大きな違いは検索の方法を選択できるかどうかという点です。VLOOKUP関数には近似値を検索するか(TRUE)、完全一致で検索するか(FALSE)を選べる機能があります。
- また、VLOOKUPは指定した範囲内で値を取り出す列を列番号で自由に指定することができます。
HLOOKUP(エイチルックアップ)関数の機能とLOOKUPとの違い
HLOOKUPはVLOOKUPの機能を「横の検索」で行う関数です。機能も操作方法もVLOOKUPの方向を違えただけですが、表を行見出しで作ることは少ないのでVLOOKUPほどには使われません。
HLOOKUPとLOOKUPの違いも、HLOOKUPは検索の方法を選択できる、指定した範囲内で値を取り出す列を行番号で自由に指定できるという2点です。
HLOOKUP関数の使い方は以下のページで詳しく解説しています
XLOOKUP関数の機能とLOOKUPとの違い
XLOOKUPはExcel2021以降、及び、Office365でのみ使用できる関数です。Excel2019以前のバージョンでは使えませんので注意して下さい。
XLOOKUPはVLOOKUPを拡張した機能を持つ注目度の高い関数です。
LOOKUPとVLOOKUPの一番大きな違いを検索の方法を選択できるかどうかと書きましたが、XLOOKUPでは近似値・完全一致の二者択一だけでなく、近似値の異なる種類やワイルドカードを使った曖昧検索も選択できます。加えて、検索の方向を先頭から・末尾から・昇順・降順でモード選択することができます。また、検査値が見つからなかった時に表示されるエラーの始末も数式内で指定することができ、IFERRORにネストする必要もありません。
XLOOKUP関数の使い方は以下のページで詳しく解説しています
- LOOKUPは簡単な表から手軽く検索したいというような時に便利に使える関数です
- LOOKUP関数を使う時は「ベクトル形式」と「配列形式」の2つの引数構成のどちらかを選択します
- LOOKUP関数はVLOOKUP関数と同様に数値の近似値を検索することができます
- LOOKUP関数は文字列を検索することもできます
- LOOKUP関数で複数の条件を指定するには、検査値に複数セルを連結させて実装します
- LOOKUPと同じ種類の検索関数にはVLOOKUP、HLOOKUP、XLOOKUPがあります