仕事を行っていると、Excelでさまざまな表を作成・管理している方は多いと思います。
ある表から該当の条件に合致した値を別表などに抽出したいケースは意外と多く、VLOOKUP関数が大活躍する場面も比例して多いです。
VLOOKUP関数についてはこちらを参照してください。
VLOOKUP関数の可変性を持たせる組み合わせまとめ | Excelを制する者は人生を制す ~No Excel No Life~
ただ、参照元の表がよくあるのは行方向にデータが蓄積されるタイプが主流(なのでExcelワークシートは列数よりも行数が多いです)ですが、時系列ごとのデータなどは列方向にデータを蓄積するタイプのものもあります。
こんな場合はVLOOKUP関数は使えませんが、代わりにHLOOKUP関数があります。
これは列方向に検索をかけるもので、使い勝手は行列を逆にしただけでVLOOKUP関数といっしょです。
今回は表の中から指定値を列方向に検索を行い指定行の値を抽出するHLOOKUP関数の使い方について解説していきます。
HLOOKUP関数の基本構成
HLOOKUP(検索値,範囲,行番号,[検索方法])
検索値
検索対象のコードや番号を指定します。
範囲の先頭行(1番上の行)となります。(行番号としては「1」)
範囲
検索を行う参照用の表のセル範囲を指定します。
行番号
範囲の先頭行を「1」として上から何番目の行を参照するかを指定します。
[検索方法]
「FALSE」または「TRUE」を指定します。
- 「FALSE」:完全一致参照
- 「TRUE」:近似値参照
「FALSE」は「0」、「TRUE」は「1」でも可能です。省略すると「TRUE」となります。
使用例
サンプル(上図)として、4~9月ごとの収入・支出・残額のデータがA2:G5の範囲で表になっています。
そしてB8セルに任意の月を選択すると、B9・B10・B11の各セルにB8セルの月の収入・支出・残額が自動で反映されるようにしたいとします。
その場合、まずはB9セルにHLOOKUP関数を入力する必要があります。
HLOOKUP関数の第1引数は「検索値」ですが、これはB8セルを指定します。こちらは検索値のセルは他のB10・B11セルでも変わらないので行列ともに絶対参照にしましょう。
続いて第2引数は「範囲」としてB2:G5を指定します。こちらも他のB10・B11セルでも変わらないので行列ともに絶対参照にしましょう。
A列を範囲の中に入れていないのは検索値および返したい値がA列に含まれていないため指定いていません。
第3引数は「行番号」ですが、こちらはB9セルは「収入」の値を返したいため、範囲の中で「収入」は2行目なので「2」を入力します。
最後に第4引数は「検索方法」です。こちらは完全一致としたいので「0」を入力でB9セルのHLOOKUP関数の入力は以上です!
残りのB10・B11セルについてはB9セルの数式をコピーし、行番号の部分だけをB10セルは「3」、B11セルは「4」へ書き換えればOKです。
B8セルの月の値をたとえば5月に書き換えると、B9~B11セルの値も自動的にB2:G5の中の5月の値に切り替わります!
こういったところがLOOKUP系関数の便利なところですね(*^^*)
【参考】動作イメージ
HLOOKUP関数の動作イメージも念のため知っておくと良いです。
- まず範囲内の先頭行の左から順番に「検索値」を調べます。
- 1.で一致(※)した列で「範囲」の中の「行番号」に合致したセルをHLOOKUP関数のセルへ返します。
(※)「検索方法」が完全一致か近似値参照かで一致の基準が変わります。
ポイント
HLOOKUP関数で「検索値」が「範囲」の中に見つからないとエラーになってしまいます。
なので、あらかじめ不要なエラーを避けるためにも検索値を入力するセルは「範囲」の先頭行を参照したドロップダウンリストを作成しておくなどしておくのがおすすめです。
まとめ
HLOOKUP関数はVLOOKUP関数と比べると使う機会は多くないですが、使用感は変わりありませんのでVLOOKUP関数を日常的に使用している方であれば問題なくすぐに使えるようになります。
VLOOKUP関数も勉強中の方であれば、いっしょにこちらの関数も覚えておくと「範囲」の表が行方向でも列方向でも対応できるようになりますので、ぜひ覚えてしまいましょう!
ちなみにどっちがどちら方向かわからなくなった場合は、頭文字で判断すると良いです。
- HLOOKUP関数の「H」はHorizontal(水平の、横の)の略称
- VLOOKUP関数の「V」はVertical(垂直の、縦の)の略称
ご参考になれば幸いです(*^^*)