スプレッドシートのHLOOKUP関数で列を検索、指定行の値を返す

スプレッドシートのHLOOKUP関数

スプレッドシートをデータベースのように利用する場合は検索や抽出といった作業が必然となります。そんな時に範囲内から先頭列を横方向に検索し、該当列の指定行を返すHLOOKUP関数について解説します。

HLOOKUP関数とは

HLOOKUP関数とは指定した範囲の先頭行を水平方向(Horizontal)に検索し、該当した列にある指定行に入っている値を返す関数です。

HLOOKUP関数のポイント
  • 特定の値を行から検索し、該当列の指定行の値を返す関数
  • HはHorizon(水平)の意で、横方向に検索する
  • 検索キーに文字列を使用する場合は””(ダブルクォーテーション)で括る
  • スプレッドシートにはQUERY関数があり、場合によってはそちらの方が便利

垂直方向に検索するのはVLOOKUP関数となります。こちらは別記事で解説していますので合わせてご覧ください。

スプレッドシートのVLOOKUP関数
スプレッドシートのVLOOKUP関数で行を検索、指定列の値を返す
スプレッドシートで範囲内から垂直方向に検索し、該当行の指定列の値を返すVLOOKUP関数について解説します。

HLOOKUP関数の構文は下記の通りです。

=HLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])

検索キーとは検索する値で、セルや数値、文字列を入れます。文字列の場合は””(ダブルクォーテーション)で括る必要があります。範囲は検索対象の範囲で、先頭列が検索キーによって検索されます。番号は値を返す列の番号で、範囲の先頭列が1となります。並べ替え済みのところは規定値はTRUEで検索対象の列が並べ替え済みであるかどうかを指定します。FALSEの場合、完全一致のみが返され、FLASEが推奨されています。

HLOOKUP関数の使い方

それではhlookup関数を実際に使ってみましょう。下記のような曜日と時間別で担当者が決まっている時間割という名前のシートがあるとします。

hlookup関数のサンプル時間割

このシート自体はミスなどで変更されないようにシートを保護し、別シートから参照するようにします。

新しいシートを作成し、検査キーとなる曜日を打ち込むセル(B3)と、枠を打ち込むセル(C3)を用意して、D3のセルからhlookup関数で読み込むようにします。

=HLOOKUP(B3,'時間割'!B2:J8,C3+1,false)

別シートを参照してhlookup関数で絞り込み

検索キーの部分はB3のセルを指定、範囲は「時間割」という別シートのB2からJ8を指定、番号の部分はC3のセルに1を足しています。これは見出しの部分も範囲にふくまれているため+1とすることで正しい枠の数値になるためです。

これでhlookup関数自体の説明は済んでいるのですが、今回のようにデータの枠が変わらない場合は選択肢をプルダウンにしてあげた方が使い勝手が良いのでデータの入力規則を設定してみましょう。

検索キーのセル(B3)を選択したまま、メニューの「データ」→「データの入力規則」をクリックします。

hlookupの検索キーをデータの入力規則でプルダウンにする

検索キーが入った範囲を指定して、それ以外の値を受け付けないようにして保存します。

検索キーにデータの入力規則を設定

枠の部分も同様にデータの入力規則の設定を行います。

番号にデータの入力規則を設定

すると、最終的に曜日と枠をプルダウンから選択すると担当者の名前が表示されるようになりました。

hlookup関数にプルダウンを組み合わせる

まとめ

hlookup関数の使い方について解説してきました。最後はスプレッドシートの他の機能を組み合わせることで、より実践的な使い方のヒントになればと、あえて少し逸れましたが、やりたいことに応じて、こうした方がもっと便利だとか考えながら組み合わせていけるといいですね。

スプレッドシートの関数の基本的なものを紹介しています。

便利な数式と関数
スプレッドシートで最初に覚えたい便利な基本関数一覧
スプレッドシートで最初に覚えると便利な使い勝手のいい基本的な関数を紹介します。

スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。

スプレッドシートの使い方完全マニュアル
スプレッドシートの使い方 完全マニュアル
スプレッドシート初心者が一通り使えるようになるまでの知識を体系的にまとめました。