エクセル|関数編|横方向に検索し、条件に一致するデータを求める|HLOOKUP

エクセル|関数編|横方向に検索し、条件に一致するデータを求める|HLOOKUP

HLOOKUP関数は横方向に検索し、条件に一致するデータを求める事ができます。

 

=HLOOKUP(検索値,範囲,行番号,検索方法)

引数

1.検索値
  検索したい値又は、値が入力されているセルを指定する
  例)123  セル:A1

2.範囲
  検索するセルの範囲を指定する
  例)B3:D8
3.行番号
  「検索値」と一致した値が見つかった時に取り出したいデータを指定する
  指定方法は「範囲」の上からの行番号を相対位置で指定する (先頭を1とする)
  例)1

  範囲と行番号の関係

4.検索方法(省略可)
  検索方法を「完全一致」又は「一番近い値」を指定する
  ・完全一致 :FALSE
  ・一番近い値:TRUE(一番近い最大値のデータ)
         ※省略可(昇順に並べ替えておく必要がある)
  例)FALSE

 

 

完全一致検索

支店コードと一致する支店の利益を求める

次の売上表から支店コード「123456」と一致する支店の利益をHLOOKUP関数を使用して求めたいと思います。

求めたい利益の式をF3のセルに指定します。

・検索値  : C3
  支店コード「123456」を指定
・範囲   : C6:H9
  支店コードから求めたい利益までの範囲を指定する
・行番号  : 4
  求めたい「利益」が範囲の何行目にあるかを指定する
・検索方法 : FALSE
  支店コードと完全一致する場合を指定する

 

[結果]:利益(70)
支店コード「123456」は広島支店であり、その利益は「70」を求める事が出来る

 

行番号を変えた場合

第3引数の「行番号」を変えることで違う違うデータを求める事が出来ます。
支店コード「123456」と一致する支店の支店名を求めるには行番号に「2行目」を指定します。

[結果]:支店名(広島) 

 

近似値検索

近似値検索とは第4引数の「検索方法」にTRUEを指定又は省略した時の検索であり、検索したい値未満の最大値を求める方法です。

注意:検索する範囲は「昇順」であること

近似値検索(数値)

売上表から支店コード「120000」と一致する支店の利益を近似値検索を使用して求めたいと思います。

[結果]:利益(200) 
支店コード「120000」未満で最大値は名古屋支店の「100001」となり、名古屋支店の利益(200)が求められる

近似値検索(文字列)

HLOOKUP関数で文字列の近似値検索を行うと意図した結果が得られない場合があります。
文字列の検索をする場合はワイルドカードを使用する方法があります。
この場合の第4引数(検索方法)は「FALSE:完全一致」を指定し、完全一致検索とワイルドカードを使用して意図した文字列を絞り込むことが出来ます。

住所に「港区1丁目」の支店名を求める検索値を以下とします。
・検索値:”*港区1*”

[結果]:支店名(港区1丁目支店) 

文字列検索(ワイルドカード)

文字列の検索にはワイルドカード「*、?」を使用することが出来ます。

* (半角のアスタリスク)  1文字以上の任意の文字列
? (半角の疑問符)  任意の1文字

例) 「*シャツ」 先頭が任意の文字列で「シャツ」で終わる文字列
         ”ポロシャツ”、”半袖シャツ”など
   「?シャツ」 先頭1文字と「シャツ」で終わる文字列
         ”Yシャツ”、”Tシャツ”など

関連する関数

VLOOKUP    垂直方向に検索し、条件に一致するデータを求める