ExcelのHLOOKUP関数の使い方をお探しですね。
広告
Excelで横向きの表からデータを探すなら「HLOOKUP関数」が便利!
Excelで月別の売上表や商品コードの一覧表を見ると、見出しが横にずらっと並んでいることがありますよね。
こういう横向きの表から必要なデータを取り出したいときに役立つのが、**HLOOKUP関数**です。
「VLOOKUP関数なら知ってるけど、横向きの表になると何を使えばいいか分からない…」と迷う人は意外と多いんです。
この記事では、HLOOKUP関数の基本的な使い方から、実際の仕事で使える例、エラーが出たときの対処法、ほかの関数との使い分けまで、初心者の方にも分かりやすく解説していきます。
HLOOKUP関数って何?横方向にデータを探してくれる関数です
HLOOKUP関数は、**表の一番上の行を横方向に検索して、一致した列にある別の行の値を取り出す**Excel関数です。
「HLOOKUP」の「H」は「Horizontal(水平・横方向)」の頭文字。
つまり、見出しが横に並んでいる表で使う関数なんですね。
たとえば、こんな表を想像してみてください。
1行目に「1月、2月、3月……」と月が並んでいて、2行目以降に売上や利益の数字が入力されている表。
この表から「3月の売上だけを取り出したい」というときに、HLOOKUP関数が活躍します。
HLOOKUP関数の書き方
基本の書き方は次のとおりです。
“`
=HLOOKUP(検索値, 範囲, 行番号, [検索方法])
“`
それぞれの意味を簡単に説明しますね。
– **検索値**:探したい値(例:「3月」や商品コード)
– **範囲**:検索する表全体
– **行番号**:取り出したいデータが範囲の上から何行目にあるか
– **検索方法**:完全一致で探すか、近い値でもOKとするか
HLOOKUP関数では、**指定した範囲の一番上の行だけ**が検索対象になります。
なので、探したい商品コードや月名は、必ず範囲の一番上に入れておく必要があります。
VLOOKUP関数との違いは?
似た名前の関数に「VLOOKUP関数」がありますが、違いは**検索する方向**です。
– **VLOOKUP関数**:表の左端の列を縦方向に検索して、同じ行にある値を返す
– **HLOOKUP関数**:表の一番上の行を横方向に検索して、同じ列にある値を返す
商品マスターのように項目が縦に並ぶ表ならVLOOKUP、月別データや年度別データのように見出しが横に並ぶ表ならHLOOKUP、と覚えておくと使い分けやすいですよ。
ちなみに、Microsoft 365やExcel 2021以降では、縦横どちらにも対応できる「XLOOKUP関数」も使えます。
ただ、職場や共有ファイルでは古いバージョンのExcelを使っていることもあるので、HLOOKUP関数を理解しておくと何かと便利です。
特に、誰かが昔作ったExcelファイルを修正するときなど、数式を読めるだけでも作業がスムーズになります。
HLOOKUP関数の基本的な使い方を見てみよう
実際の表をイメージすると、HLOOKUP関数の仕組みがグッと分かりやすくなります。
たとえば、B2:E4の範囲に横向きの商品表があるとします。
– 1行目:商品コード(A001、A002、A003、A004)
– 2行目:商品名
– 3行目:価格
このとき、セルG2に入力した商品コードに対応する商品名を表示したい場合、次のような数式を使います。
“`
=HLOOKUP(G2, B2:E4, 2, FALSE)
“`
この数式は、「G2の値をB2:E4の一番上の行から探して、見つかった列の2行目にある値を返す」という意味です。
たとえばG2に「A002」と入力されていれば、A002を探して、その下の2行目にある商品名が表示されます。
価格を取り出したいときは、行番号を3に変えればOKです。
“`
=HLOOKUP(G2, B2:E4, 3, FALSE)
“`
ここで注意したいのが、**行番号はワークシート全体の行番号ではなく、指定した範囲の中で上から何行目かを数える**ということ。
範囲がB2:E4なら、B2:E2が1行目、B3:E3が2行目、B4:E4が3行目になります。
検索方法は「FALSE」が基本
HLOOKUP関数で特に大事なのが、4つ目の引数「検索方法」です。
– **FALSE**:完全一致。
検索値と完全に同じ値だけを探す
– **TRUE(または省略)**:近似一致。
検索値以下で最も近い値を探す
商品コードや社員番号、月名、年度など、**正確に一致する値を探したい場合は、基本的にFALSEを指定する**のが安全です。
検索方法を省略するとTRUE扱いになって、意図しない値が返ってくることがあるので注意しましょう。
TRUEを使う近似一致は、点数に応じた評価ランクや、金額に応じた手数料率を判定するような表では便利なこともあります。
ただし、近似一致を使うには**検索対象の最上段の値を昇順に並べておく必要**があります。
順番がバラバラだと、見た目は正しそうに見えても誤った結果になることがあるので、初心者のうちはFALSEを明示する習慣をつけておくと安心です。
数式をコピーするときは「絶対参照」を忘れずに
数式を下や横にコピーして使う場合は、検索範囲を**絶対参照**にしておくことも大切です。
たとえば `B2:E4` のままコピーすると、コピー先で範囲がずれてしまうことがあります。
範囲を固定したい場合は、`$B$2:$E$4` のようにドル記号を付けます。
“`
=HLOOKUP(G2, $B$2:$E$4, 2, FALSE)
“`
見積書や在庫表のように同じ参照表を繰り返し使う場合、絶対参照にしておけば、数式をコピーしても安定して正しいデータを抽出できます。
実際の仕事でHLOOKUP関数を使ってみよう
HLOOKUP関数は、**横方向に時系列データが並ぶ表**と相性バツグンです。
年度別の売上を取り出す
たとえば、こんな表があるとします。
– 1行目:年度(2023年、2024年、2025年)
– 2行目:売上
– 3行目:利益
– 4行目:達成率
セルH2に年度を入力して、その年度の売上を取り出したい場合は、次のように入力します。
“`
=HLOOKUP(H2, B2:D5, 2, FALSE)
“`
年度を変えるだけで表示される売上も自動で切り替わるので、レポートや管理表を作るときにとても便利です。
月別の売上管理にも使える
1行目に「4月、5月、6月……」と月が並んでいて、2行目に売上、3行目に粗利、4行目に広告費が入力されている表なら、指定した月の数値だけを別シートの集計欄へ表示できます。
毎月の報告資料で同じ形式の表を使っているなら、検索値のセルを変更するだけで該当月の情報を取り出せるので、目で探してコピーする手間が省けます。
入力ミスや転記ミスを防ぎやすいのも、関数を使う大きなメリットですね。
複数の条件で検索したいときは?
HLOOKUP関数は、基本的に範囲の最上段にある1つの検索値を探す関数なので、複数条件で検索したい場合は少し工夫が必要です。
たとえば「商品コード」と「サイズ」の組み合わせで価格を探したい場合は、表の最上段に「A001_S」「A001_M」「A002_S」のような**結合キー**を作ります。
検索値側も `A2&”_”&B2` のように結合して検索すればOKです。
“`
=HLOOKUP(A2&”_”&B2, $D$1:$H$4, 3, FALSE)
“`
この数式では、A2の商品コードとB2のサイズを結合して、表の最上段にある同じ形式のキーを横方向に検索します。
見つかった列の3行目に価格があれば、その価格が返ってきます。
ただし、複数条件の検索は表の設計が重要です。
あとから見ても分かりやすいように、結合キーの行を非表示にするのではなく、「検索用キー」として明示しておくと、他の人がファイルを開いたときにも数式の意味を理解しやすくなります。
IF関数と組み合わせる
HLOOKUP関数はIF関数と組み合わせることもできます。
たとえば、指定した月の在庫数をHLOOKUPで取得して、その値が0なら「在庫なし」、1以上なら「在庫あり」と表示したい場合は、次のように書けます。
“`
=IF(HLOOKUP(G2, $B$2:$E$4, 3, FALSE)=0, “在庫なし”, “在庫あり”)
“`
HLOOKUPで取り出した値をそのまま表示するだけでなく、条件判定の材料として使うことで、管理表や確認リストをより実務向けに整えられます。
HLOOKUP関数でエラーが出たときの対処法
HLOOKUP関数で最もよく見かけるエラーは「**#N/A**」です。
これは、検索値が指定した範囲の一番上の行に見つからないときに表示されます。
エラーの主な原因
– 検索値の入力ミス
– 全角と半角の違い
– 余分なスペース
– 検索範囲の指定漏れ
たとえば、検索値が「A001」なのに表側が「A001 」のように末尾にスペースを含んでいると、見た目は同じでも完全一致では別の値として扱われてしまいます。
エラーを見やすく処理する
エラーを分かりやすく表示したい場合は、**IFERROR関数**や**IFNA関数**を組み合わせます。
検索値が見つからないときに「該当なし」と表示したいなら、次のように入力します。
“`
=IFERROR(HLOOKUP(G2, $B$2:$E$4, 2, FALSE), “該当なし”)
“`
IFERROR関数は、HLOOKUP関数でエラーが発生した場合に指定した文字列を表示してくれます。
#N/Aだけを対象にしたい場合はIFNA関数も使えます。
ただし、エラーを隠すだけでは根本的な解決にはなりません。
まずは次の点を確認しましょう。
– 検索値が本当に表の最上段に存在するか
– 検索範囲が正しいか
– 完全一致にすべき場面でFALSEを指定しているか
データ形式の違いに注意
Excelでは、見た目が「1001」と同じでも、**数値の1001と文字列の”1001″は別物**として扱われることがあります。
商品コードや社員番号のように先頭に0が付く可能性があるデータは、文字列として管理されている場合も多いので、検索値と表側の形式をそろえることが大切です。
必要に応じてTEXT関数で文字列化したり、VALUE関数で数値化したりして、比較できる状態に整えましょう。
行番号の指定ミスにも要注意
行番号の指定ミスもよくある原因です。
HLOOKUP関数の行番号は、**ワークシート全体の行番号ではなく、指定した範囲内での行番号**です。
たとえば、範囲がB5:E8なら、B5:E5が1行目、B6:E6が2行目として数えます。
商品名を取りたいのに価格の行番号を指定していると、エラーにはならず間違った値が返るので、むしろ気づきにくいミスになります。
数式を作る前に、検索範囲の中で何行目の値を返したいのかを確認しておきましょう。
HLOOKUP関数が向いていない場合もあります
HLOOKUP関数はシンプルで覚えやすい一方、**検索方向や検索位置に制限**があります。
次のような場合は、ほかの関数を検討するとよいでしょう。
– 検索したい値が最上段にない
– 左側や下側から検索したい
– 縦横どちらにも柔軟に検索したい
こんなときは、**XLOOKUP関数**や**INDEX関数とMATCH関数の組み合わせ**を使うのがおすすめです。
既存の横向き表から素早く値を取り出すならHLOOKUP、より自由な検索をしたいならXLOOKUPやINDEX+MATCH、と使い分けることで、Excelでのデータ抽出をより効率化できます。
まとめ
HLOOKUP関数は、横向きの表から必要なデータを取り出すときに便利な関数です。
基本的な使い方を覚えておけば、月別売上の管理や商品コード表の検索など、実務でもきっと役立ちますよ。
ぜひ一度、自分の手で試してみてくださいね!
広告
