LOOKUP関数(読み:ルックアップ、意味:英語で「Look Up」は「見上げる、目を上げる」)は、エクセルの関数の中でよく使われる一つです。似たような関数にVLOOKUP関数とHLOOKUP関数があります。LOOKUP関数もVLOOKUP関数もHLOOKUP関数も、ある範囲から検索して対応する値を表示するという点では同じですが、異なる点もあるので、ここで解説していきます。
最終的に、LOOKUP関数の使い方と、VLOOKUP関数やHLOOKUP関数との違いを理解してもらえるとうれしいです。
LOOKUP関数とは何か?
LOOKUP関数とは「=LOOKUP(検索値,配列)」や「=LOOKUP(検索値,範囲,[対応範囲] )」という形で使うのが一般的で、1行または1列の範囲から「検索値」を検索し、検索結果に対応する値を表示してくれます。
LOOKUP関数の書式 | ベクトル形式 =LOOKUP(検査値,検査範囲,[型]) 配列形式 =LOOKUP(検索値,配列) |
対応Version | 365、2019、2016、2013、2010 |
LOOKUP関数のベクトル形式
ベクトル形式の「検索値」について
「検索値」には、検索したい値(“文字列”)を入力したりセルを参照したり(A2)することで指定します。
ベクトル形式の「検索範囲」について
「検索範囲」には、「検索値」が含まれるように1行または1列の範囲を指定します。
※VLOOKUP関数やHLOOKUP関数と違い、1行または1列の範囲しか指定できません。
ベクトル形式の「対応範囲」について
「対応範囲」については、必ずしも指定する必要がない、任意の引数です。指定する場合には、「検索範囲」に対応する形で1行または1列の範囲を指定します。検索結果と同じ位置にある「対応範囲」を結果として表示します。
※「検索範囲」と「対応範囲」の大きさが異なる場合にはエラーの原因になるので注意してください。
「対応範囲」を指定しない場合には、「検索範囲」=「対応範囲」ということになります。
LOOKUP関数の配列形式
配列形式の「検索値」について
「検索値」には、検索したい値(“文字列”)を入力したりセルを参照したり(A2)することで指定します。(←ベクトル形式の「検索値」と同じです)
配列形式の「配列」について
「検索値」を左端の列または一番上の行に含むセル範囲を指定します。
配列の左端の列または一番上の行から「検索値」を検索して、「配列(範囲)」の右端の行または一番下の列の同じ位置にある値を表示します。
どのようなルールで検索が行われるかは決まっており、次のようになっています。
・範囲が「行数<列数」の場合→一番上の「行」から「検索値」を検索する
・範囲が「行数=列数」の場合→左端の「列」から「検索値」を検索する
・範囲が「行数>列数」の場合→左端の「列」から「検索値」を検索する
実はLOOKUP関数の配列形式については、VLOOKUP関数やHLOOKUP関数でも同じ結果を表示することができるため、VLOOKUP関数やHLOOKUP関数の使用が推奨されています。
LOOKUP関数の具体的な使い方
①「検索範囲」を含む表と結果を示す表の2つを準備します。
②LOOKUP関数を使いたいセルに「=LOOKUP (」と入力します。
③「検索値」を入力します。
ここではセル参照で「検査値」を入力しています。
④「検索範囲」を指定します。
範囲として指定できるのは1行または1列であることに注意しましょう。
また、LOOKUP関数を他のセルにコピペして反映させる場合、このままだとコピペによって「検索範囲」も相対的に変更してしまいます。
このような状況をさけるために、絶対参照と呼ばれる範囲指定を行います。「$B$4:$B$6」のように「$」を含めて範囲指定を行うことで、LOOKUP関数を他のセルにコピペしても「検索範囲」が変わらないように固定できます。範囲指定の際に、キーボード「F4」を押すと、範囲に自動で「$」を追加してくれるので、使ってみてください。
※必要な場合は「対応範囲」を指定します。
範囲として指定できるのは「検索範囲」と同じ大きさであることに注意しましょう。また、「検索範囲」の指定と同様に、絶対参照による範囲指定を心掛けるようにしましょう。
⑤「Enter」を押し、表示された結果を確かめます。
⑥他のセルへLOOKUP関数を反映させる
LOOKUP・VLOOKUP・HLOOKUPの違いについて
引数の違い
LOOKUP | 最大3つ (「検索値」・「検索範囲」・「対応範囲」) |
VLOOKUP HLOOKUP | 最大4つ (「「検索値」・「範囲」・「列番号(または「行番号」)」、「型」) |
検索範囲の違い
LOOKUP | 配列の場合、一番上の行または左端の列 |
VLOOKUP HLOOKUP | 最初の列・行 |
対象範囲の違い
LOOKUP | 配列の場合、一番下の行または右端の列(指定できない) |
VLOOKUP HLOOKUP | 列番号・行番号で指定できる |
検索方法で完全一致を指定できるか?
LOOKUP関数には検索の「型」を指定できる引数は存在しません。そのため、「検索範囲」において「検索値」と完全に一致する結果が存在しない場合、最も「検索値」に近い値が結果として返されてしまいます。
一方で、VLOOKUP関数とHLOOKUP関数では検索の「型」という引数が存在するため、0/FALSEを指定することで「完全に一致したときのみ結果を返す」という指定を行うことができます。
LOOKUP | 完全一致が指定できない |
VLOOKUP HLOOKUP | 完全一致が指定できる |