【エクセル】VLOOKUP関数、HLOOKUP関数を使ってみよう

エクセルのVLOOKUP関数やHLOOKUP関数というのを聞いたことがありますか?非常に便利な半面はじめのうちは少しわかりにくく感じるかもしれません。今回はそんなVLOOKUP関数、HLOOKUP関数を紹介したいと思います。

VLOOKUP関数

VLOOKUP関数は、表の一番左のいずれかのセルの値を選択し、そのセルの行の要素を抽出するという関数です。

=VLOOKUP(検索する値,検索範囲,列番号,検索方法(TRUE or FALSE))

図1

検索する値:検索範囲の一番左側の列のセルを指定します。

検索範囲:VLOOKUP関数で検索する範囲を指定します。

列番号:検索範囲の一番左の列を1として順番に1,2,3,4…となります。

検索方法:ここには”TRUE”か”FALSE”を入力します。 “FALSE” は完全一致です。検索する値が全て含まれていればいいというわけではありません。例えば、図1で検索する値に”田中”と入っていた場合、検索結果には”#N/A”とでます。ある値に対応する値という場合には”FALSE”を使います。通常”FALSE”にして使うことが多いかと思います。TRUE”は近似一致です。何も入力しないときは”TRUE”になります。

TRUE

TRUEを使う場面は、数値を区切ってグループ分けしてどのグループに該当するか、という評価や判定をする時に用いることが多いかと思います。

その際、検索範囲の一番左の列を昇順にしておく必要があります。図2のように、検索範囲の一番左の列の点数の列を昇順に0,10,30,60,90,10と並べておきます。このテーブルは、点数に応じてA-Fまでの評価をするというテーブルです。右のテーブルのG列の点数に入力された数値をもとに、H列の評価にテーブル点数表に基づいた評価が表示されるようになっています。評価と点数の対応は、備考欄に書いたとおりになっています。このように、値以上次の値未満の数値を探します。

図2 点数に応じて評価がされている

降順にした場合、昇順とは挙動が変わります。図3が図2のテーブル点数表の点数を降順に変更したものになります。0-59までN/A(該当なし)、60は正しい判定61以降も正しく判定されていません。正しい判定をしたのが60の場合のみで、そのものズバリの数値(100,90,30,10,0)も正しく判定していないものがあります。少なくとも実運用に耐えうるような挙動に見えないので、降順では使わないほうがいいと思います。

図3 降順にした場合、昇順とは挙動が変わる

数値ではなく文字列の場合

文字列をVLOOKUP関数でTRUEで検索した場合も、やはり挙動がおかしくなり、期待した値にならないケースが出てきます。

図4 文字列の場合
VLOOKUP関数で検索方法をTRUEにする時

・検索範囲の一番左の列は数値で昇順にする

HLOOKUP関数

ずれかのセルの値を選択し、そのセルの列の要素を抽出するという関数です。VLOOKUP関数が横に検索するのに対して、HLOOKUP関数は縦に検索していきます。 VLOOKUP関数との違いは列番号が行番号に変わっただけです。

=HLOOKUP(検索する値,検索範囲,行番号,検索方法(TRUE or FALSE))

図1

まとめ

今回はVLOOKUP関数とHLOOKUP関数を紹介しました。なれてくると非常に便利ですし、使用頻度もそれなりにある関数ですので、ぜひ覚えて活用してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA