塾長!いつもエクセル関数のご指導をいただきありがとうございます。
この度、弊社では新規に「畳部門」を立ち上げまして、数社と取引を開始することになりました。塾長の道場の畳もそろそろ替え時かと……いうのは置いておきましても、まだ数社の取引先ではあるのですが、確実に受注が発生し納品管理をする必要が出てきました。
塾長のお知恵を拝借し、繰り返し発生する納品先データをミスなく入力をする方法をご教授いただきたいのですが。
わしが、エクセル関数塾塾長!関 数之進(せきかずのしん)である!
そろそろこの道場も43回目、畳も替え時かのう……ゴホン!まぁ、そのうちに畳替えをお願いするとしよう。
さて、表を見せてごらん?まだ納品先が少ない場合は確かに横長に表を作ってそれを参照させると見やすいな。今回のような横長の表からデータを取り出すには、「HLOOKUP関数」を使うと良いぞ。納品先Noを入力すれば、納品先を自動的に表引きしてくれるので入力ミスも無くなることじゃろう。その技を極意書を使って説明しよう!
HLOOKUP(エイチルックアップ)関数を利用すると、横長の表の値を参照し、検索値と「同列の指定した行数のデータ」を取り出すことができます。VLOOKUP関数は縦長の表から検索値と同行の指定した列数のデータを取り出すことができますが、表が横長の場合(指定する値が横に並んでいる場合)はHLOOKUP関数を利用します。
ここでは、HLOOKUP関数の基本的な書式と機能について紹介します。
HLOOKUP関数は次のように入力します。
=HLOOKUP(検索値,範囲,行番号,検索方法)
HLOOKUP関数は、「検索値」に入力された値を「範囲」の中から探し出し、検索値に対応する範囲の行数のデータを表示させることができます。
HLOOKUP関数は、横長の表からデータを取り出す関数です。この関数は、[関数の挿入]ボタンをクリックして[関数の分類]で「検索/行列」を選択すると、簡単に入力できます。
また、Excel 2007、Excel 2010、Excel 2013では関数ライブラリの[検索/行列]からも選択できます。
今回の例では、セルB3〜G4に「範囲」となる表が入力されています。納品データとして、C列8行目以降に納品先Noを入力すると、対応するD列に納品先名が表示されるようにHLOOKUP関数を入力してみましょう。
[関数の分類]で「検索/行列」を選択し、[関数名]で「HLOOKUP」を選択して、[OK]ボタンをクリックします。
HLOOKUP関数やVLOOKUP関数が入力されたセルは、検索値が入力されていないと「#N/A」のようなエラーが表示されてしまいます。このエラーが表示されないようにするには、IF式をネスト(組み合わせ)して、次のように式を作成します。
=IF(C8="","",HLOOKUP(C8,$C$3:$G$4,2,FALSE))
参照値のセルC8が「空白("")」だったらセルに何も表示せず、入力があればそれに応じたHLOOKUPの式の結果を表示します。 (IF関数についてはこちら⇒エクセルで条件判断をするべし!IF関数で判定)
HLOOKUP関数は、横長の表を参照し、検索値に該当する範囲の指定した行数の値を求める関数です。参照する表があまり大きくなく、横長に配置できるようであれば、日々のデータの入力をする表の上に配置しておけば、参照するときも分かりやすく入力のミスを防ぐことができます。また、IF関数をネストすると、検索値が入力されていなくてもエラーが表示されません。
次のような旅行先アンケートを作成してみましょう。
次の表は、旅行先Noと旅行先のアンケート一覧です。B列に旅行先Noを入力すると、C列に旅行先が表示されるように、式を入力してみましょう。
問題に必要なエクセルのファイルをダウンロードしてください。
ダウンロードするには、下記のファイル名を右クリックして、メニューから「対象をファイルに保存」を選択してください。
本講座では、ファイルの保存先を《ドキュメント》としています。
ダウンロード方法がわからない場合は、下記ページをご参照ください。
Twitterで最新の更新情報やおすすめQ&A、アドバイスをお届けしています。