Excel。判定数が多い時は、IF関数よりもVLOOKUP関数のTRUEを使うほうが楽
VLOOKUP関数
以前、HLOOKUP関数を使ってご紹介したことがあるテクニックを、
VLOOKUP関数に置き換えただけではあるのですが、
ご相談があって、得点によってS・A~Eと、6段階に判定したいけど、
これをIF+IF関数のネストでやろうとすると、何重にもネストをしないといけなくて、大変だし、
わかりにくいし、もっと効率的な方法ってないのかな?とのことでした。
○か×とか、ABCぐらいでしたら、IF+IF関数のネストで十分に対応できるのですが、
判定数、判断数が多くなればなるほど、煩雑になってしまいます。
そこで、登場するのが、VLOOKUP関数なのです。
VLOOKUP関数で出来るのですか?と聞かれますが、出来るんですよ。
ただ、判定表のようなテーブルを作っておく必要があります。
では、下記の表を使って紹介していきましょう。
3科目の合計点によって、右側のH3:I9にある判定表にあるように、
6段階で判定していきたいわけです。
では、F4をクリックしてVLOOKUP関数ダイアログボックスを表示しましょう。
検索値は、内藤さんの合計点ですので、E4
範囲は、判定表ですから、H3:I9。
そして、この数式を下方向にオートフィルハンドルを使って数式をコピーしますので、
範囲がずれない様に、絶対参照をこの範囲に設定しますので、
見出し行は除いて、データ部だけの、$H$4:$I$9。と入力します。
列番号。これは、毎度のことながらわかりにくいですよね。
列番号に入力する数値は2ですが、なぜ、2なのか?というと、
先程選択した範囲の左から何列目のデータを抽出したらいいのか教えて?ということなので、
ランクを抽出したいので、ランクは左から2列目ですから、2 と入力するわけですね。
そして、今回のポイントになるのが、検索方法。
だいたい、VLOOKUP関数ですと、完全一致が多いので、
FALSEか、0 (ゼロ)と入力することになりますが、
今回は、完全一致ではなくて、【近似値】になりますので、
検索方法は、TRUE か、1 を入力します。
こうすることで、ここからここまではというような判定で使えるようになります。
あとは、OKボタンをクリックしましょう。
判定はBと表示されましたね。Bは198なので、180~239までのBが該当しますので、
合致しておりますので、オートフィルハンドルを使用して数式をコピーしましょう。
これで完成しましたね。
大崎さんの119は60~119のDで合致していますし、
田町さんの300は、Sで合致しています。
このようにVLOOKUP関数の検索方法TUREの近似値という方法を使うことによって、
IF+IF関数のネストを使わなくても、算出することができますので、
アイディアとして知っておくといいかもしれませんね。
なお、判定表は、昇順のデータでないとうまくいきませんので、ご注意ください。