エクセル関数の便利帳 [エクセル関数の便利な使い方を事例を交えてご紹介します] エクセル関数の便利帳 [エクセル関数の便利な使い方を事例を交えてご紹介します]

最近見た
ページ

case
08

HLOOKUP関数で横長の表からデータを取り出してみよう!

検索/行列2022年8月9日
XLOOKUP関数の使い方を説明しているイメージ

縦長の表からデータを取り出すVLOOKUP関数ほど出番はないですが、覚えておきたい横長の表からデータを取り出すHLOOKUP関数をご説明いたします。

HLOOKUP関数で横長の表からデータを取り出す

HLOOKUP(エイチルックアップ)関数を利用すると、横長の表の値を参照し、検索値と「同列の指定した行数のデータ」を取り出すことができます。

VLOOKUP関数は縦長の表から検索値と同行の指定した列数のデータを取り出すことができますが、表が横長の場合(指定する値が横に並んでいる場合)はHLOOKUP関数を利用します。

ここでは、HLOOKUP関数の基本的な書式と機能について紹介します。

HLOOKUP関数の書式

HLOOKUP関数は次のように入力します。

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

HLOOKUP関数は、「検索値」に入力された値を「範囲」の中から探し出し、検索値に対応する範囲の行数のデータを表示させることができます。

HLOOKUP関数は、横長の表からデータを取り出す関数です。この関数は、[関数の挿入]ボタンをクリックして[関数の分類]で「検索/行列」を選択すると、簡単に入力できます。
また、関数ライブラリからも選択できます。

今回の例では、セルB3~G4に「範囲」となる表が入力されています。納品データとして、C列8行目以降に納品先Noを入力すると、対応するD列に納品先名が表示されるようにHLOOKUP関数を入力してみましょう。

HLOOKUP関数を入力する、セルD8をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

1HLOOKUP関数を入力する、セルD8をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

[関数の分類]で「検索/行列」を選択し、[関数名]で「HLOOKUP」を選択して、[OK]ボタンをクリックしている画面イメージ

2[関数の分類]で「検索/行列」を選択し、[関数名]で「HLOOKUP」を選択して、[OK]ボタンをクリックします。

[検索値]に「C8」、[範囲]に「$B$3:$G$4」、[行番号]に「2」を入力し、[検索方法]に「FALSE」と入力して[OK]ボタンをクリックしている画面イメージ

3[検索値]に「C8」、[範囲]に「$B$3:$G$4」、[行番号]に「2」を入力し、[検索方法]に「FALSE」と入力して[OK]ボタンをクリックします。

セルD8の式をセルD17までコピーする画面イメージ

4セルD8の式をセルD17までコピーします。[範囲]を絶対値指定にしてあるので、コピーをしても範囲が移動しません。

C列に納品先Noを入力します。セルC8に「1」と入力する画面イメージ

5C列に納品先Noを入力します。セルC8に「1」と入力します。

セルD8に「A商事」と表示された画面イメージ

6セルD8に「A商事」と表示されました。続けて、納品先Noを入力します。

ステップアップ:HLOOKUP関数で検索値がない時に表示されるエラー「#N/A」を消すには?

HLOOKUP関数やVLOOKUP関数が入力されたセルは、検索値が入力されていないと
「#N/A」のようなエラーが表示されてしまいます。

このエラーが表示されないようにするには、IF式をネスト(組み合わせ)して、次のように式を作成します。

=IF(C8="", "", HLOOKUP(C8, $B$3:$G$4, 2, FALSE))

参照値のセルC8が「空白("")」だったらセルに何も表示せず、入力があればそれに応じたHLOOKUPの式の結果を表示します。

IF関数とHLOOKUP関数を入力するセルD8をアクティブにしている画面イメージ

1IF関数とHLOOKUP関数を入力するセルD8をアクティブにします。

セルD8に関数を入力している画面イメージ

2次の式を入力します。

=IF(C8="", "", HLOOKUP(C8,$B$3:$G$4, 2, FALSE))

式をセルd17までコピーし、エラーが非表示になった画面イメージ

3式をセルD17までコピーします。エラーが非表示になりました。

セルC8に納品先Noに「3」と入力すると、セルD8に納品先が表示された画面イメージ

4セルC8に納品先Noに「3」と入力すると、セルD8に納品先が表示されます。

HLOOKUP関数は、横長の表を参照し、検索値に該当する範囲の指定した行数の値を求める関数です。

参照する表があまり大きくなく、横長に配置できるようであれば、日々のデータの入力をする表の上に配置しておけば、参照するときも分かりやすく入力のミスを防ぐことができます。

また、IF関数をネストすると、検索値が入力されていなくてもエラーが表示されません。

※頂いた内容についての返信は行っておりません。個人情報の記載はしないようお願いいたします。

おすすめ
ページ

ページTOP