LOOKUP関数をマスターすることは、Excelのデータ検索を効率的に行う上で欠かすことができない要素です。

本記事では、LOOKUP関数の基本的な情報や使い方、他の検索関数との違いについて詳しく解説します。具体的なサンプルデータを使い、LOOKUP関数の検索方法や複数条件での検索など応用的な検索方法についても触れているので、この記事の内容を理解するだけでもLOOKUP関数を使いこなせるでしょう。

チャット一括管理アプリ「OneChat」が今なら初月無料!!

OneChatのダウンロードはこちらから

LOOKUP関数とは?

excel lookup関数

LOOKUP関数とはどのような関数なのかについて理解を深めましょう。

LOOKUP関数の基本概念

LOOKUP関数とは、Excelにおいて特定の値の検索を行い、その値に対応する別の値を返すことに用いられるツールのことです。この関数では、指定した範囲内で特定の値に一致する値の検索を行い、同じ位置にある他の範囲の値を返すことができます。

他の検索関数との違い(VLOOKUP, HLOOKUP, INDEX, MATCHとの比較)

LOOKUP関数以外にも、Excelには様々な検索関数が用意されています。

それぞれの検索関数の特徴についてみていきましょう。

関数名概要検索の方向
LOOKUP指定した値を指定した範囲から検索し、その位置に対応する値を返す縦・横方向
VLOOKUP指定した列番号の範囲から、指定した値に対応する値を返す縦方向(列)
HLOOKUP指定した行番号の範囲から、指定した値に対応する値を返す横方向(行)
INDEX指定した範囲内の指定した位置にある値を返す
MATCH指定された範囲内で指定した値の位置を返す

参考:

LOOKUP 関数 – Microsoft サポート

VLOOKUP 関数 – Microsoft サポート

HLOOKUP 関数 – Microsoft サポート

INDEX 関数 – Microsoft サポート

MATCH 関数 – Microsoft サポート

LOOKUP関数の基本的な使い方

excel lookup関数

LOOKUP関数の基本的な使い方についてみていきましょう。

基本構文と引数の説明

LOOKUP関数の基本構文は次の通りです。

=LOOKUP(検索値, 検索範囲 , [対応範囲])

それぞれの引数について詳しくみてみましょう。

引数詳細
検索値検索を行いたい値を入力します。
検索範囲検索値の検索を行う範囲を指定します。この範囲は単一行、または単一列を指定します。また、この範囲は昇順でソートされていなければなりません。
対応範囲検索値に対応する値が存在する範囲を選択します。対応範囲は、検索範囲で指定したサイズと同一にしておく必要があります。

縦方向検索と横方向検索の違い

LOOKUP関数の縦方向検索と横方向検索の違いについて解説します。

LOOKUP関数は、指定した範囲内で値の検索を行い、対応する値を返してくれる関数です。この関数は、縦方向(列)の検索と横方向(行)の検索の両方を行うことができますが、それぞれの用い方については若干の違いがあります。

主な違いは以下の通りです。

検索方向使用ポイント
縦方向の検索列を対象として検索を行う場合に主に用いられる。例えば、商品IDをもとに列の検索を行い、対応する価格を別の列から取得するなどに便利です。
横方向の検索行を対象として検索を行う場合に主に用いられる。例えば、月別のデータを行から検索し、対応する売上を別の行から取得するなどに便利です。

サンプルデータを用いた具体例

サンプルデータを用いて、LOOKUP関数の基本的な使い方について解説します。

具体的なデータから、LOOKUP関数を用いて値の検索を行い、対応する値を返す例をみていきましょう。

縦方向検索の場合

行\列ABCD
1品番商品名単価販売数 
2101Apple10015
3102Banana12012
4103Cherry11010
5104Grape18015
6105Peach2008

「品番」の「102」を検索して、その値に対応する「商品名」を取得するとします。

この場合の数式は次の通りです。

=LOOKUP(102, A2:A6, B2:B6)

上記数式の引数の説明は次の通りです。

検索値は検索対象の「品番」である「102」

検索範囲は検索値が存在する列である「A2:A6」

結果範囲は取得したい値である「商品名」が存在する列である「B2:B6」

この数式では、「A2~A6」の範囲内で「102」の値を検索し、「B2~B6」に存在する対応する値を返します。

そのため、この数式の結果は「Banana」となります。

横方向検索の場合

行\列ABCDEF
1品番101102103104105
2商品名AppleBananaCherryGrapePeach
3単価100120110180200
4販売数151210158

「品番」の「103」を検索して、その値に対応する「商品名」を取得するとします。

この場合の数式は次の通りです。

=LOOKUP(103, B1:F1, B2:F2)

上記数式の引数の説明は次の通りです。

検索値は検索対象の「品番」である「103」

検索範囲は検索値が存在する列である「B1:F1」

結果範囲は取得したい値である「商品名」が存在する列である「B2:F2」

この数式では、「B1〜F1」の範囲内で「103」の値を検索し、「B2〜F2」に存在する対応する値を返します。

そのため、この数式の結果は「Cherry」となります。

LOOKUP関数の応用例

LOOKUP関数の応用例についていくつか解説します。

複数条件での検索

LOOKUP関数は、複数条件での検索を行うことができません。そのため、複数条件を用いて検索を行いたい場合は他の手段を用いる必要があります。Excelにおいて複数条件での検索を行う場合は、主に次の2つのどちらかの手段を用いると良いでしょう。

  • INDEX関数とMATCH関数を組み合わせて用いる
  • SUMPRODUCT関数を用いる

下記のデータをもとに、「佐藤 拓海がBananaを購入した数量」の条件で検索する場合の数式について解説します。

行\列ABC
1名前商品購入数
2佐藤 拓海Apple10
3鈴木 花子Banana20
4佐藤 拓海Cherry15
5鈴木 花子Apple5
6佐藤 拓海Banana25
関数数式結果
INDEX+MATCH=INDEX(C2:C6, MATCH(1, (A2:A6=”佐藤 拓海”)*(B2:B6=”Banana”), 0))25
SUMPRODUCT=SUMPRODUCT((A2:A6=”佐藤 拓海”)*(B2:B6=”Banana”)*C2:C6)25

ネストされたLOOKUP関数の使用例

ネストされたLOOKUP関数は、LOOKUP関数の引数内に他のLOOKUP関数を入力することで、複数の検索を連続で行う際に用いられます。ネストされたLOOKUP関数を用いることで、より複雑な検索や関連性のあるデータを見つけることが可能となります。

以下では、ネストされたLOOKUP関数の使用例について紹介します。

複数の検索値を用いてデータ検索を行う

行\列ABCD
1商品名カテゴリ単価産地
2Apple果物100青森
3Banana果物120宮崎
4Carrot野菜130北海道
5Cherry果物110山形
6Eggplant野菜120高知
7Grape果物180山梨
8Peach果物200岡山

上記データをもとに、商品名から対応する産地の検索を行い、この産地に基づいて単価の算出を行います。

例:商品名「Banana」のカテゴリを検索し、それをもとに単価を算出します。この場合のLOOKUP関数の数式は次の通りです。

=LOOKUP(LOOKUP(“Banana”, A2:A8, D2:D8), D2:D8, C2:C8)

この数式では、内側のLOOUP関数「LOOKUP(“Banana”, A2:A8, D2:D8)」でA列の商品名から「Banana」の検索を行い、D列の産地から対応する値を返す計算を行います。この式の結果は「宮崎」です。

続いて、外側のLOOKUP関数「LOOKUP(“宮崎”, D2:D8, C2:C8)」でD列の産地から「宮崎」を検索し、C列の単価から対応する値を返す計算を行います。

結果:120

大量データに対する効率的な検索方法

LOOKUP関数を用いて大量データに対する効率的な検索方法について解説します。LOOKUP関数はシンプルで使いやすいですが、大量のデータに対して検索を行う場合はパフォーマンスが低下してしまうこともあります。以下では、LOOKUP関数を効率的に用いるための方法や、代替の手段について紹介します。

①LOOKUP関数の効率化

LOOKUP関数は、検索範囲に指定したデータが昇順にソートされている場合に最もパフォーマンスを発揮します。そのため、LOOKUP関数で効率的に検索したい場合は検索範囲をあらかじめ昇順にソートしておきましょう。

②VLOOKUP・HLOOKUP関数を用いる

LOOKUP関数と似た機能を持つ関数として、VLOOKUP・HLOOKUP関数があります。これらは、特定の列、または行から値の検索を行ってくれ、データ量が膨大である場合はこれらの関数を用いることで効率を上昇させることができます。

③XLOOKUP関数を用いる

利用しているExcelのバージョン(Excel365、または2019以降)によっては、XLOOKUP関数が導入されている場合があり、膨大なデータ量の検索を行う場合はこちらを用いると効率的に処理することができます。XLOOKUP関数は、VLOOKUP関数やHLOOKUP関数の代替手段となる関数で、2つの関数よりも柔軟性が高くなっています。

LOOKUP関数の実践例

excel lookup関数

LOOKUP関数の実践例について紹介します。

業務効率化のための実践的な活用事例

LOOKUP関数を業務効率化に用いた活用例についていくつかみていきましょう。

①在庫管理

在庫管理にLOOKUP関数を用いて各商品の在庫数のチェックを効率化することができます。

行\列ABC
1品番商品名在庫数
2101Apple30
3102Banana55
4103Cherry20
5104Grape40
6105Peach45

上記データをもとに品番の入力を行うことで、対応する商品名と在庫数の取得を行います。この場合の数式はそれぞれ以下の通りです。

例:品番「103」に対応する商品名と在庫数を取得する場合

数式概要数式結果
商品名取得=LOOKUP(“103”, A2:A6, B2:B6)Cherry
在庫数取得=LOOKUP(“103”, A2:A6, C2:C6)20

②顧客データ参照

顧客データ参照にLOOKUP関数を用いることで簡単に必要な情報を取得することができます。

行\列ABC
1顧客ID顧客名電話番号
2101佐藤 拓海050-4567-8901
3102鈴木 花子080-2345-6789
4103高橋 亮090-1234-5678
5104田中 美咲090-0567-890
6105山本 健太070-3456-7890

上記データをもとに、LOOKUP関数を用いて顧客IDから対応する顧客名と電話番号の取得を行います。この場合のそれぞれの数式は以下の通りです。

例:顧客ID「103」に対応する顧客名と電話番号を取得する場合

数式概要数式結果
顧客名取得=LOOKUP(“103”, A2:A6, B2:B6)高橋 亮
電話番号取得=LOOKUP(“103”, A2:A6, C2:C6)090-1234-5678

実際のビジネスシナリオでの使用例

実際のビジネスシナリオでのLOOKUP関数の使用例についていくつか紹介します。

①商品価格を自動更新する

例:会社の販売管理システムにおける商品の価格表を最新に保つため、各商品の価格の更新を自動的に行うシステムをLOOKUP関数を用いて行う

価格表

行\列ABC
1品番商品名現在の価格
2101Apple100
3102Banana120
4103Cherry110
5104Grape180
6105Peach200

新価格表

行\列AB
1品番新価格
2101120
3102130
4103100
5104150
6105210

この例において、品番をもとに価格表の価格を新価格に更新するための数式は次の通りです。

=LOOKUP(A2, ‘新価格表’!A:A, ‘新価格表’!B:B)

価格表の品番(A列)のデータをもとに、新価格表の品番(A列)の検索を行い、新価格表の新価格(B列)より対応する新価格の値の取得を行います。この数式を各商品の価格入力セルに適用しておくことにより、商品価格が更新されるたびに自動的に新価格が反映されます。

②プロジェクトの予算チェックを行う

例:複数のプロジェクトの予算・実際の支出の管理において、各プロジェクトの支出が予算内であるかのチェックをLOOKUP関数を用いて行う

プロジェクト予算表

行\列ABC
1プロジェクトNoプロジェクト名予算(万円)
2N001Project Alpha5,000
3N002Project Beta7,500
4N003Project Gamma6,000
5N004Project Delta8,000
6N005Project Epsilon8,500

支出履歴

行\列AB
1プロジェクトNo支出額(万円)
2N0014,500
3N0027,200
4N0035,800
5N0048,500
6N0056,800

この例において、各プロジェクトの予算内に支出が収まっているかをチェックする数式は次の通りです。

=IF(LOOKUP(A2, ‘支出履歴’!A:A, ‘支出履歴’!B:B) <= B2, “予算内”, “予算オーバー”)

プロジェクト予算表のプロジェクトNo(A列)をもとに、支出履歴のプロジェクトNo(A列)から対応する支出額の値の取得をし、その支出額がプロジェクト予算表の予算内(C列)に収まっているかどうかをLOOKUP関数によりチェックします。上記数式では、IF関数と組み合わせることにより、支出額が予算に収まっていれば「予算内」、超えていれば「予算オーバー」と表示されます。

他の検索関数との連携

LOOKUP関数と他の検索関数との連携について紹介します。

VLOOKUP、HLOOKUP、INDEX、MATCHとの組み合わせ

Excelには、LOOKUP以外にもVLOOKUP、HLOOKUP、INDEX、MATCHなどの検索関数が用意されています。これらの関数を組み合わせて用いることにより、より効率的・柔軟にデータ検索や参照を行うことができます。

以下では、各検索関数を組み合わせた使用例についていくつか紹介します。

①VLOOKUP+MATCH

 MATCH関数により列番号の取得を動的に行い、VLOOKUP関数で対応する値を検索することができます。

行\列ABCD
1顧客ID顧客名電話番号住所
2101佐藤 拓海050-4567-8901東京都新宿区西新宿2-8-1
3102鈴木 花子080-2345-6789大阪府大阪市北区梅田3-4-5
4103高橋 亮090-1234-5678愛知県名古屋市中区錦1-9-3
5104田中 美咲090-0567-890北海道札幌市中央区大通西4-7-2
6105山本 健太070-3456-7890福岡県福岡市博多区博多駅前1-2-6

例:上記データから顧客IDをもとに、対応する電話番号の取得を行う

この場合の数式は次の通りです。

=VLOOKUP(“102”, A2:D6, MATCH(“電話番号”, A1:D1, 0), FALSE)

結果:080-2345-6789

②INDEX+MATCH

行と列の両方に対する動的な検索を行うことができます。

行\列ABCD
1商品名カテゴリ単価産地
2Apple果物100青森
3Banana果物120宮崎
4Carrot野菜130北海道
5Cherry果物110山形
6Eggplant野菜120高知
7Grape果物180山梨
8Peach果物200岡山

例:上記データから品番と列名をもとに、対応する価格の取得を行う

この場合の数式は次の通りです。

=INDEX($B$2:$D$8, MATCH(A2, $A$2:$A$8, 0), MATCH(“単価”, $B$1:$D$1, 0))

結果:100

複雑な検索ニーズに応じた関数の使い分け

Excelの検索関数に関して、用途やシナリオに応じた関数の使い分けについて解説します。

関数概要おすすめシーン
VLOOKUP指定した範囲内において値を縦方向に検索し、同じ行の指定した列より値を返す単純な縦方向の検索をする
HLOOKUP指定した範囲内において値を横方向に検索し、同じ列の指定した行より値を返す単純な横方向の検索をする
INDEX + MATCH縦と横の両方向に対して柔軟な検索ができ、V・HLOOKUP関数の制限を回避することができる柔軟に縦横両方向の検索をする
VLOOKUP + MATCH列番号を動的に指定し検索ができるため、列の順序が変更されても対応することができる動的な列指定で検索をする
XLOOKUP検索方向の制限がなく、エラーハンドリングや検索モードを指定して検索することができるより高度な検索をする

よくある質問

LOOKUP関数に関連するよくある質問について紹介します。

Excel関数「XLOOKUP」は何がすごいのか「vlookup」との違い?

XLOOKUP関数は、VLOOKUP関数に比べて多くの利点があります。

2つの関数の主な違いについて比較します。

XLOOKUPVLOOKUP
検索方向の違い検索方向に制限はなく、縦横(列行)両方の検索が可能縦方向(列)のみの検索が可能
検索の型完全一致検索のみ(データの正確性を向上させるため)デフォルトは近似一致(TRUE)で検索だが、完全一致を選択することも可能
返される値の列の指定列番号の指定ではなく、結果を返す列範囲を直接指定できるため、列の位置が変わった場合も正しい値を返すことが可能検索範囲内で返される値の列番号を指定するため、列の位置が変わると正しい値が返せなくなる
検索値が見つからない検索値が見つからない場合に返す値を指定することができる検索値が見つからない場合は「#N/A」エラーが返されるため、エラー時の値を指定したい場合は他の関数と組み合わせる必要がある
複数条件を指定して検索複数条件を指定して検索することが可能単一条件の検索のみ可能

Excel関数のlookupとvlookupの違いは何ですか?

Excel関数のLOOKUPとVLOOKUPは、どちらもデータの検索を行い、対応する値を返すという役割は同様ですが、特性や用途が異なります。

LOOKUPVLOOKUP
用途指定した値を範囲や配列内で検索し、対応する位置にある値を返す指定した範囲内で値を垂直方向に検索し、同じ行にある指定した列から値を返す
動作垂直(列)・水平(行)どちらの検索も可能垂直方向(列)に対して検索可能
基本構文=LOOKUP(検索値, 検索範囲 , [対応範囲])=VLOOKUP(検索値, 範囲, 列番号, [検索の型])
制限列の順序が昇順にソートされていなければならない検索列よりも右側の列からしか値を返すことができない

Xlookup関数は何ができますか?

XLOOKUP関数は、LOOKUP関数やVLOOKUP関数、HLOOKUP関数のような制限がなく、より柔軟かつ高度な検索を行うことができます。

XLOOKUP関数の特徴について具体的にみていきましょう。

概要詳細
主な機能垂直・水平方向両方の検索が可能
検索の型デフォルトは完全一致ですが、近似一致やワイルドカード一致検索に変更が可能
結果の範囲指定結果を返す範囲を指定できるため、検索範囲内の列の順序が変わっても結果に影響されない
検索方向の指定デフォルトは上から下への検索ですが、下から上への検索へ変更が可能
エラー処理検索値が見つからない場合に、エラー値ではなく返す値を任意に設定することが可能

まとめ

LOOKUP関数は、Excelを用いたデータ検索の効率化が可能なツールです。

本記事では、LOOKUP関数の基本的な情報や使い方、他の検索関数との違いについて幅広く紹介しました。特に、業務効率化や複雑な検索ニーズに対応するためのテクニックについては、実際のビジネスシーンで役に立つ内容でしょう。

本記事を参考に、ぜひLOOKUP関数を使いこなしてください。

Excel Lookup関数に関する重要用語

用語説明
LOOKUP=LOOKUP(検索値, 検索範囲 , [対応範囲])指定した値を指定した範囲から検索し、その位置に対応する値を返す
VLOOKUP=VLOOKUP(検索値, 範囲, 列番号, [検索の型])指定した列番号の範囲から、指定した値に対応する値を返す
HLOOKUP=HLOOKUP(検索値, 範囲, 行番号, [検索の型])指定した行番号の範囲から、指定した値に対応する値を返す
INDEX=INDEX(配列, 行番号, [列番号])指定した範囲内の指定した位置にある値を返す
MATCH=MATCH(検査値, 検査範囲, [照合の型])指定された範囲内で指定した値の位置を返す