事務職の方はExcelで計算したり、データ入力することが多いですよね。

そのため、さまざまな関数をご存知かと思います。

その中でも、HLOOKUP関数は表を横方向に検索して検索値を抽出する大変便利な関数です。しかし、検索値が2つ以上あると一番左の項目の値が返されるため、見つけたいデータが表示されない場合があります。

今回の記事では、HLOOKUP関数の基本的な使い方や、複数の項目を検索値にするHLOOKUP関数の複数条件の設定方法を解説します。ぜひ参考にしてくださいね。

HLOOKUP関数とは?

HLOOKUP関数とは、Excelの表示の上端行または配列内の特定の値を検索し、テーブルまたは配列内の指定した行から同じ列の値を返す関数です。

HLOOKUP関数は比較する値がデータテーブルの上端行にあり、指定した行数分だけ下を参照する場合に使用します。 比較する値が検索データの左側の列にある場合は、VLOOKUP関数を使用してください。VLOOKUP関数も後述致します。

なお、HLOOKUP関数の “H” とは、英語の横方向 (horizontal) からきています。構文は次の通りです。

HLOOKUP(検索値, 範囲, 行番号, [検索の型])

HLOOKUP関数の構成要素には、次の引数があります。

検索値    

検索値は必ず指定します。 

テーブルの上端行で検索する値を指定し、検索値には値、参照、または文字列を指定します。

範囲

範囲は必ず指定します。 

データを検索する情報のテーブルです。セル範囲への参照またはセル範囲名を使用するようにしてください。

また、リストの範囲における上端行の列のデータは、文字列、数値、論理値のいずれでもかまいません。

また、検索の型にTRUEを指定した場合、範囲の上端行の列のデータは、昇順で配置しておく必要があります。

つまり

~-2、-1、0、1、2~、A~Z、FALSEからTRUE

の順となるのです。

その他の場合、HLOOKUP関数では正しい値を得られない場合があります。

また、検索の型にFALSEを指定した場合、範囲を並べ替える必要はありません。

英字は大文字と小文字は区別されませんが、半角であることに注意しましょう。

そして、値は昇順に左から右に並べ替えます。 

行番号    

行番号は必ず指定します。 

一致する値を返す、範囲内の行番号。 行番号に 1 を指定すると、範囲の最初の行の値が返され、行番号に 2 を指定すると、範囲の 2 番目の行の値が返され、以降同様に処理されます。 行番号が 1 より小さい場合、エラー値 #VALUE! が返され、行番号が範囲の行数より大きい場合は、エラー値 #REF! が返されます。

検索の型    

検索の型は任意のため省略可能です。 

HLOOKUP関数を使用して検索値と完全に一致する値だけを検索するか、その近似値を含めて検索するかを指定する論理値です。TRUEを指定するか省略した場合は近似値が返されます。つまり、完全に一致する値が見つからない場合は、検索値未満の最大値が使用されます。 FALSEを指定した場合、HLOOKUP関数では完全に一致する値が検索されます。 

完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。

(広告の後にも続きます)

HLOOKUP関数の使い方

HLOOKUP関数は、前述したとおり検索の型にTRUE を指定します。

もし検索値が見つからない場合は、検索値未満で最も大きい値が使用されます。

また、検索値が範囲の上端行の最小値より小さい場合、エラー値 #N/A が返されます。

検索の型が FALSEで検索値が文字列の場合、検索値で疑問符 (?) またはアスタリスク (*) をワイルドカード文字として使用できます。

ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは1文字以上の任意の文字列を表します。

ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に半角のチルダ (~)を付ければ問題ありません。

出典:Microsoftサポート|HLOOKUP 関数