LOOKUP関数, VLOOKUP関数, HLOOKUP関数 の違い - Excel

LOOKUP関数, VLOOKUP関数, HLOOKUP関数 の違いを紹介します。

概要

入力された値に対して対応した別の値をセルに表示する関数として、LOOKUP関数があります。LOOKUP関数には、VLOOKUP関数とHLOOKUP関数という似た名前の関数もあります。この記事では、LOOKUP関数, VLOOKUP関数, HLOOKUP関数 の違いを紹介します。

VLOOKUP関数

VLOOKUP関数は入力された値と対応する出力の値が横方向で対応している場合に利用します。
下図の表をVLOOKUPで参照した場合入力に対応する値は横方向の値になります。
ID商品名
1ぺんぎんクッキー
2しろくまアイス
3らくだキャラメル

下図の例で =VLOOKUP(A6,A1:B3,2) とした場合、1列目の値に対応して出力されるのは2列目の値になります。
VLOOKUP関数の詳細についてはこちらの記事を参照してください。

HLOOKUP関数

HLOOKUP関数は入力された値と対応する出力の値が縦方向で対応している場合に利用します。
下図の表をHLOOKUPで参照した場合入力に対応する値は縦方向の値になります。
ID123
価格21012090
商品名ぺんぎんクッキーしろくまアイスらくだキャラメル

下図の例で =HLOOKUP(A6,A1:B3,3) とした場合、1行目の値に対応して出力されるのは3行目の値になります。
HLOOKUP関数の詳細についてはこちらの記事を参照してください。

LOOKUP関数

LOOKUP関数は引数に2つの指定方法があり、それぞれで動作が違います。下記の表で動作を確認します。 LOOKUP関数の動作の詳細についてはこちらの記事も参照してください。
ID価格商品名重量
1210ぺんぎんクッキー0.2
2120しろくまアイス0.12
390らくだキャラメル0.08

検査範囲と対応範囲を分けて指定する場合 (ベクトル形式)

検査範囲と対応範囲をそれぞれ指定する場合は、検査範囲内の値で検査をし一致した要素の順番に対応する対応範囲の値を関数の戻り値とします。
下図の例では =LOOKUP(A7,A2:A4,C2:C4) を記述しており、A7セルの入力値が A2:A4 の範囲の中にあるかを検査し、合致するセルがあれば、その範囲の順番に対応するC2:C4セルの値をLOOKUP関数の戻り値とします。


検査値が2の場合は検査範囲内の2番目の要素に一致するので対応範囲の2番目である、"しろくまアイス" がLOOKUP関数の戻り値となります。

検査範囲と対応範囲を同時に指定する場合 (配列形式)

検査範囲と対応範囲を同時に指定する場合、 行数より列数が多い領域を指定した場合は、先頭行で検査値が検索されます。一方、行数と列数が同じ領域(正方形領域)または、行数より列数が少ない領域を指定した場合は、先頭列で検査値が検索されます。
今回の例では、A2:D4 が検査範囲となっているため、行数(3)より列数(4)のほうが多く、先頭の行で検査されます。

また、戻り値(対応範囲)は。行数より列数が多い領域を指定した場合は、最終行で対応値が検索されます。行数と列数が同じ領域(正方形領域)または、行数より列数が少ない領域を指定した場合は、最終列の値が対応地として検索されます。

検査値については、指定した範囲で検査値以下の最大値が、一致する値として使用されます。


検査値が2の場合は、検査値以下の最大値となる"1"のセルが該当したと判断されます。LOOKUP関数の戻り値は最終行の値が返されるため、"3" がLOOKUP関数の戻り値になります。


対応する検査値を行方向に指定する場合は、行数と列数が同じ領域(正方形領域)または、行数より列数が少ない領域を指定する必要があるため、検査範囲を A2:C4 とすると右側の値を関数の戻り値として返せます。


検査値に"2"を入力すると、検査範囲の一番右の列の"しろくまアイス"がLOOKUP関数の戻り値になります。

LOOKUPで配列形式を利用する場合のワンポイント
検査範囲と対応範囲を同時に指定する配列形式では、検査範囲の領域が横長か縦長になるかで動作が大きく異なってしまうため、可能な限りVLOOKUP関数か、HLOOKUP関数を利用したほうが良いです。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2019-08-15
iPentec all rights reserverd.