スプレッドシートをデータベースのように利用する場合は検索や抽出といった作業が必然となります。そんな時に範囲内から先頭列を横方向に検索し、該当列の指定行を返すHLOOKUP関数について解説します。
HLOOKUP関数とは指定した範囲の先頭行を水平方向(Horizontal)に検索し、該当した列にある指定行に入っている値を返す関数です。
垂直方向に検索するのはVLOOKUP関数となります。こちらは別記事で解説していますので合わせてご覧ください。
HLOOKUP関数の構文は下記の通りです。
=HLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])
検索キーとは検索する値で、セルや数値、文字列を入れます。文字列の場合は””(ダブルクォーテーション)で括る必要があります。範囲は検索対象の範囲で、先頭列が検索キーによって検索されます。番号は値を返す列の番号で、範囲の先頭列が1となります。並べ替え済みのところは規定値はTRUEで検索対象の列が並べ替え済みであるかどうかを指定します。FALSEの場合、完全一致のみが返され、FLASEが推奨されています。
それではhlookup関数を実際に使ってみましょう。下記のような曜日と時間別で担当者が決まっている時間割という名前のシートがあるとします。
このシート自体はミスなどで変更されないようにシートを保護し、別シートから参照するようにします。
新しいシートを作成し、検査キーとなる曜日を打ち込むセル(B3)と、枠を打ち込むセル(C3)を用意して、D3のセルからhlookup関数で読み込むようにします。
=HLOOKUP(B3,'時間割'!B2:J8,C3+1,false)
検索キーの部分はB3のセルを指定、範囲は「時間割」という別シートのB2からJ8を指定、番号の部分はC3のセルに1を足しています。これは見出しの部分も範囲にふくまれているため+1とすることで正しい枠の数値になるためです。
これでhlookup関数自体の説明は済んでいるのですが、今回のようにデータの枠が変わらない場合は選択肢をプルダウンにしてあげた方が使い勝手が良いのでデータの入力規則を設定してみましょう。
検索キーのセル(B3)を選択したまま、メニューの「データ」→「データの入力規則」をクリックします。
検索キーが入った範囲を指定して、それ以外の値を受け付けないようにして保存します。
枠の部分も同様にデータの入力規則の設定を行います。
すると、最終的に曜日と枠をプルダウンから選択すると担当者の名前が表示されるようになりました。
hlookup関数の使い方について解説してきました。最後はスプレッドシートの他の機能を組み合わせることで、より実践的な使い方のヒントになればと、あえて少し逸れましたが、やりたいことに応じて、こうした方がもっと便利だとか考えながら組み合わせていけるといいですね。
スプレッドシートの関数の基本的なものを紹介しています。
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。