このページの本文へ移動
  1. ホーム >
  2. FMVサポート >
  3. Q&A・パソコン活用情報をコーナーから探す >
  4. エクセル関数塾 >
  5. 横長の表からデータを取り出すには?HLOOKUP関数で繰り返しのデータを簡単入力

エクセル関数塾

第43回横長の表からデータを取り出すには?HLOOKUP関数で繰り返しのデータを簡単入力

塾長!いつもエクセル関数のご指導をいただきありがとうございます。

この度、弊社では新規に「畳部門」を立ち上げまして、数社と取引を開始することになりました。塾長の道場の畳もそろそろ替え時かと……いうのは置いておきましても、まだ数社の取引先ではあるのですが、確実に受注が発生し納品管理をする必要が出てきました。

塾長のお知恵を拝借し、繰り返し発生する納品先データをミスなく入力をする方法をご教授いただきたいのですが。

わしが、エクセル関数塾塾長!関 数之進(せきかずのしん)である!

そろそろこの道場も43回目、畳も替え時かのう……ゴホン!まぁ、そのうちに畳替えをお願いするとしよう。

さて、表を見せてごらん?まだ納品先が少ない場合は確かに横長に表を作ってそれを参照させると見やすいな。今回のような横長の表からデータを取り出すには、「HLOOKUP関数」を使うと良いぞ。納品先Noを入力すれば、納品先を自動的に表引きしてくれるので入力ミスも無くなることじゃろう。その技を極意書を使って説明しよう!

関数塾 極意書

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

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

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

HLOOKUP関数の書式

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

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

横長の表からデータを取り出している画面イメージ

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

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

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

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

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

次へ

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

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

次へ

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

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

次へ

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

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

次へ

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

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

次へ

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

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

ステップアップ : 納品先Noが表示されていないときのエラーを消すことはできる?

HLOOKUP関数やVLOOKUP関数が入力されたセルは、検索値が入力されていないと「#N/A」のようなエラーが表示されてしまいます。このエラーが表示されないようにするには、IF式をネスト(組み合わせ)して、次のように式を作成します。

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

参照値のセルC8が「空白("")」だったらセルに何も表示せず、入力があればそれに応じたHLOOKUPの式の結果を表示します。 (IF関数についてはこちら⇒エクセルで条件判断をするべし!IF関数で判定

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

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

次へ

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

次の式を入力します。

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

次へ

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

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

次へ

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

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

HLOOKUP関数は、横長の表を参照し、検索値に該当する範囲の指定した行数の値を求める関数です。参照する表があまり大きくなく、横長に配置できるようであれば、日々のデータの入力をする表の上に配置しておけば、参照するときも分かりやすく入力のミスを防ぐことができます。また、IF関数をネストすると、検索値が入力されていなくてもエラーが表示されません。

問題

次のような旅行先アンケートを作成してみましょう。

次の表は、旅行先Noと旅行先のアンケート一覧です。B列に旅行先Noを入力すると、C列に旅行先が表示されるように、式を入力してみましょう。

旅行先Noと旅行先のアンケートを求める表の画面イメージ

※ 以下の内容はパソコンをご覧になっている方を対象としています。
サンプルをご利用になる場合は、パソコンにて本ページをご覧ください。

問題に必要なエクセルのファイルをダウンロードしてください。
ダウンロードするには、下記のファイル名を右クリックして、メニューから「対象をファイルに保存」を選択してください。

hlookup-sample.xlsx(10KB)

本講座では、ファイルの保存先を《ドキュメント》としています。
ダウンロード方法がわからない場合は、下記ページをご参照ください。

答えを見る

Twitterで最新の更新情報やおすすめQ&A、アドバイスをお届けしています。