
vlookupでtrueを使う日はあるのか
今回はコピペde関数の外伝的な内容になります!
こんな気持ちの方に役立つと思います。
- データの中で点数によってA判定、B判定などにクラス分けしたい方
- データ一覧の中に、完全一致するデータがあるかないか判定したい方
- 今日こそはvlookupのtrueと向き合いたい方
先日、仕事でvlookup関数が使われていた資料にデータを入れていたんですが、「ん?なんか結果が変だぞ・・・?」ってなって、使われていた関数を調べてみると「検索方法」(固めにいうと「照合の種類」というみたいですが)、 True(近似一致)が使われていました。
あほか!なんでfalseじゃないねん!て僕が騒ぎ、急いで修正しましたw
vlookupの式はこのようになってます。
=VLOOKUP(検索値,範囲,列番号,検索方法)
この最後の”検索方法”にtrueが入っていたわけです。
近しいものがHITするという「いったい誰がそんな機能使うの?」と突っ込みたくなる関数になっていたので、Falseに変えときました。
vlookupを使う人の99.9%は、「一覧の中から指定したデータの横隣のデータを取り出したい」と思います。
なので、ほとんどの方はfalseを使うはずです。
今回は、trueを使う場面を2つ紹介していきます。
学校のテストの点数によって、A判定、B判定、、、に割り振りたい
まずはこちらのデータをコピーして、自身のExcelのA1にペーストしてください。
点数 | 判定 | 点数 | 判定 | |
---|---|---|---|---|
60 | C | 90 | s | |
70 | B | 80 | A | |
80 | A | 70 | B | |
90 | S | 60 | c | |
検索値 | 判定 | 検索値 | 判定 | |
65 | 65 |
学校で使いそうな資料ができたと思います。
vlookupでtrueを使っていきますが、「60点~69点はC、70点~79点はB、80点~89点はA、90点以上はS」という判定方法として進めていきます。
下記の数式をB8にコピペしてみてください。
=VLOOKUP(A8,A2:B5,2,TRUE)
すると、答えは「C」となります。
よく、「trueは近似値一致だよ」と紹介しているサイトを見ますが、じゃあ点数が「69」なら70という点数に近いから、結果はBになるじゃないの?と自分は思いました。
そしたら、なんと相変わらず「C」になります。近いって、なんやねん。
近い値に一致するもの、と捉えるのは正しい理解ではなさそうですね。
切り捨てに近いイメージですね。
ちなみにですが、この使い方は、データが昇順に並んでいるというのが条件のようです。
E8セルに、上と似たように下記の数式を入れてみるとエラーになりますので、注意してください!
=VLOOKUP(D8,D2:E5,2,TRUE)
さっぱり意味がわかりません。
「B」か「C」にたどり着いて欲しいのに、該当なし、という答えが返ってきてしまいます。
理由は調べましたが見つからず。。。どういう理屈なのか、、、
では、次の使い方に進みましょう。
データの中に求めている値と完全一致する値があるのかないのか判定をする
この使い方は面白いなと思ったのでご紹介します。
データ一覧の中で、探しているデータと一致するものがあるのか判定をします。
どういうことかというと、まずは結果を見てみましょう。
下記の数式をB8セルにコピペしてください。
=VLOOKUP(A8,A2:B5,1,TRUE)
第一段階として、上記の数式で近似値一致とやらの数値を出します。60がでてきます。
そして、第二段階としてB9セルに下記の数式をコピペしてください。
=IF(A8=B8,VLOOKUP(A8,A2:B5,2,TRUE),”完全一致なし”)
すると、完全一致なし、と結果が出てきます。
検索値に80を入れてやると、B9セルはAとなります。(完全一致していたから)
流れとして、B8セルで「60,70,80,90の中で65という数字の近似値一致は60である(完全一致した値はなかった)」を求め、B9セルで「一致した値があったのなら同じ値を返して、なかったのなら”完全一致なし”と返す」ということになります。
これで、一覧の中に探したい値とドンピシャの物があるのか判定することができます。
これはこれで使える場面がありそうですね。
ぜひ皆さんもvlookupで遊んでやってください(^O^)