VLOOKUP関数【あいまい検索編】

VLOOKUP関数【あいまい検索編】1 お客さんの獲得ポイント数に応じた割引金額を 一覧表から探し出し、表示させたい、といった時に使用する関数はVLOOKUP関数です。
※ VLOOKUP関数が始めての方はまずはVLOOKUP関数【キッカリ検索編】をご覧ください。

VLOOKUP関数【あいまい検索編】2 まずは設定したいことをイメージしながら、 VLOOKUP関数の引数を考えます。
B1番地に入力した獲得ポイント数を(検索値)
A6:B13の一覧表から探し出し(範囲)

VLOOKUP関数【あいまい検索編】3 対応したものの左から2列目のデータを(列番号)答えとして表示してね、となります。

VLOOKUP関数【あいまい検索編】4 引数をイメージできたので早速VLOOKUP関数を設定していきます。
まずは答えを表示させたいセルを選択し、VLOOKUP関数を選びます。

VLOOKUP関数【あいまい検索編】5 先程イメージした通りに、[検索値]、[範囲]、[列番号]の引数を指定していきます。

VLOOKUP関数【あいまい検索編】2 さてここからが本題!残りの引数、[検索の型]です!
【Excel 2007・2010・2013】
[検索の型]は[検索方法]となります。
今回[検索値]となる、B1番地に入力された獲得ポイント数「288」は [範囲]となる一覧表の中にはありません。

VLOOKUP関数【あいまい検索編】7 一覧表のデータとキッカリ一致しなくても、それと近い値を答えとして表示させたい場合には、 [検索の型]は、キッカリ検索の「0(ゼロ)」ではなく、「1」を使います。
【Excel 2007・2010・2013】 [検索の型]は[検索方法]となります。

VLOOKUP関数の検索の型(検索方法)
解説では検索の型(検索方法)を「0(ゼロ)」か「1」としていますが、実際は「0(ゼロ)」か「0(ゼロ)以外」です。
というわけで、「1」の代わりに「2」としても問題ありません。
また「0(ゼロ)」の代わりに「FALSE」、「1」の代わりに「TRUE」と入力してもOKです。
ですが、「0(ゼロ)以外」とするとどの数字にしていいか迷ってしまいますし、「FALSE」「TRUE」は入力する際にスペルに悩んだりすることもあるので、このサイトでは「0(ゼロ)」か「1」としています。

VLOOKUP関数【あいまい検索編】8 これで完成!ちゃんと答えが表示されています!
でもここで考えておきたいことが!

VLOOKUP関数【あいまい検索編】6 今回[検索値]となる、B1番地に入力された獲得ポイント数「288」は 一覧表の「200」と「300」の間にある数字です。
[検索の型(検索方法)]を「1」と指定したので、一覧表のデータとキッカリ一致しなくても、それと近い値を答えとして表示してくれるわけですが、 その「近い値」というところにポイントがあるんです!

今回の場合、答えはポイント数「200」に対応する割引額「¥1,000」が表示されるのか、 「300」に対応する「¥2,000」となるか。
今回の検索値「288」はどちらかというと「300」に近いわけですが、 答えは「300」に対応する「¥2,000」とはなりません。
それは[検索値]が一覧表から見つからなかった場合、一覧表の中から検索値を超えずに、なおかつ、その中でも一番大きい値を探し出して表示する、と決められているからなんです。
一覧表の中に、検索値「288」は見つかりません。
そこで検索値「288」を超えずに、更にその中でも一番大きいポイント数を一覧表から探すと「200」になりますから 答えは「200」に対応する割引額「¥1,000」が表示されるというわけです。

これ、一見すると覚えるのが非常に難しい気になりますが、 今回使った例で覚えれば大丈夫なんです。
だって、「288」ポイントしか貯めていないお客さんに 「300」ポイント分の割引をするわけないですもんね。 実生活と対応させて考えれば心配いらずです!

VLOOKUP関数【あいまい検索編】11 上記のようにあいまいに探してくれるのは、[検索値]が一覧表から見つからなかった場合なので、[検索値]とキッカリ一致するものが一覧表の中にある場合には、もちろん、一致するものを表示してくれます。
この図では、[検索値]である「獲得ポイント」が「750」となっています。
[検索値]の「750」にキッカリ一致するものが一覧表の中にあるので、それに対応する「¥5,000」が、答としてB2番地に表示されていますね。

VLOOKUP関数 検索の型(検索方法)と昇順

VLOOKUP関数【あいまい検索編】9 また、[検索の型(検索方法)]で「1」を使う場合には、 [範囲]となる一覧表は昇順になっていなければなりません。

VLOOKUP関数【あいまい検索編】10 こんな風に昇順ではなくバラバラだと、うまく答えが返ってきません。
バラバラになっている場合には昇順で並べ替えをしておきます。
ちなみに[検索の型(検索方法)]が「0(ゼロ)」のキッカリ検索の時は、 昇順で並べ替えをしておく必要はありません。