8/19/2015

Excel。VLOOKUP。判定数が多い時は、IF関数よりもVLOOKUP関数のTRUEを使うほうが楽


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関数のネストを使わなくても、算出することができますので、
アイディアとして知っておくといいかもしれませんね。

なお、判定表は、昇順のデータでないとうまくいきませんので、ご注意ください。