【エクセル】条件(未満、以上)が多い場合にIF文を使わずVLOOKUPで代用する方法。
採点結果をまとめる際に、あるしきい値毎に、
30点未満は不合格
60点未満は追試
それ以外は合格
と判断していく際には一般的にIF文が使われると思います。
が、
20点未満は 1
40点未満は 2
60点未満は 3
80点未満は 4
80点以上は 5
と、条件が多くなってくると
=IF(A1<20,1,IF(A1<40,2,IF(A1<60,3,IF(A1<80,4,5))))
と非常に式が複雑になります。IFSを用いても、
=IFS(A1<20, 1, A1<40, 2,A1<60, 3,A1<80, 4,A1<=100, 5)
と、あまり変わりませんね…
そこで今回は、VLOOKUPを用いて簡単に記載していきたいと思います。
VLOOKUPの1を使用する。
今回紹介する関数は、
・VLOOKUP
です。
エクセルをよく使う人にとって、
VLOOKUPなんていつも使っているよ!!と思われる方が多数かと思いますが、
=VLOOKUP(検査値,範囲,列,1)
と、最後の数字を「1」で、近時値検索を使っている人はごく少数なのではないでしょうか?
今回は、「1」を使ったVLOOKUPの性質を利用して、
下記画像のように判定をしています。
・0~20点の人は1
・20点~40点の人は2
と、きちんと判定されていることがわかると思います。
数式の説明
今回は、おなじみの関数VLOOKUPを用いて、
条件検索を行っています。
VLOOKUPの4項目、条件式を「1」と記述すると、
=VLOOKUP(検査値,範囲,列,1)
「検査値以下の数値で一番近い数字」
を検索することができます。
例えば、先ほどの画像で、データ1の得点は、64点です。
それに対して判定表は20点ごとに区分されています。
VLOOKUP(,,,1)を使うと検査値以下の数値で一番近い数字を検索してくれますので、
0,20,40,60,80のなかで、64に一致するとみなされるのは、
60となり、その行の判定結果4が返されていることがわかります。
同様に、79点の場合、0,20,40,60,80で一番近い数字は80になりますが、
あくまで、検査値以下の数値で一番近い数字を拾ってきますので、
一致したとみなされるのは60となります。
注意点
点数を小さい順から書いていく必要があり、
IF文では点未満は○○と記載していくのに対し、
この方式では、点以上と記述していく必要があります。
IF文 VLOOKUP型
・20点未満は 1 → 00以上??以下は 1
・40点未満は 2 → 20以上??以下は 2
・60点未満は 3 → 40以上??以下は 3
・80点未満は 4 → 60以上??以下は 4
・80点以上は 5 → 80以上??以下は 5
「0点以上では、どの人も当てはまってしまうので、
一つ下のセルを見ないと、上限がわからない。」
と、少々なれるまでに手間がかかるかと思いますが、
非常にきれいにまとまりますし、条件変更が簡単ですのでぜひ使ってみてください!
コメント欄