今回は、 VLOOKUP 関数を使って 得点がS、A~Dのどのクラスに該当するかを判定する方法について説明します。
得点クラスは、最上位のSクラスとAクラス~Dクラスの合わせて5区分に分類します。
判定というと、すぐに思い浮かぶのが IF 関数ではないでしょうか。(もちろん、IF 関数でも実現は可能です。)
しかし、IF 関数で実現するときは、まずSクラスかどうかを判定し、それ以外ならAクラスか判定し、それ以外ならBクラスか判定し、、、、と式が長くなってしまうというデメリットがあります。
その点、VLOOKUP 関数を使う場合は、何点がどのクラスかを判定するための基準(判定表)を作り、各得点が表のどの区分に該当するかを VLOOKUP 関数(検索方法= 近似一致 )を使って検索して見つけ出しますから、VLOOKUP 関数1つで実現できるメリットがあります。
VLOOKUP 関数の第四引数(検索方法)はTrue(真)のとき近似一致、False(偽)のとき完全一致を指定します。(VLOOKUP 関数の使い方)
通常は、False(偽)で完全一致モードで検索することが多いのですが、今回のような使い方もできると幅が広がります。
近似一致 の判定に使う基準 (判定表)を作る
VLOOKUP 関数の検索方法は2つあり、1つは 完全一致 、もう一つが今回の 近似一致 です。
近似一致は、検索値と完全に一致するものがない場合に、検索値より小さくかつ一番近い値に一致させ、その行の値を取得します。
使い方に注意点があり、使い方を間違えると思うような結果が得られませんので、近似一致をつかうときは、気をつけてください。
注意点は、検索範囲のデータ(判定表)は、検索列をキーに昇順で並べ替えておく必要があります。
判定表のレベルの列を検索列、評価の列を値取得列としてVLOOKUP関数の近似一致検索を行う。
VLOOKUP 関数で使いやすいように、判定表の範囲指定に名前定義し、”判定表”としています。
VLOOKUP 関数で 近似一致 検索
C列(得点)に値を入力すると、D列(判定)にS~Dの判定が表示されるようにします。 VLOOKUP 関数を図のように入力します。
D3セルには、C3の値を判定表のレベルの列で近似一致で検索し、その行の評価を取得するように、 VLOOKUP 関数を入力しました。 第四引数に TRUE を指定しているのが、近似一致検索の指定です。
国語の得点77点に対して、VLOOKUP関数の戻り値は B になりました。
判定表のレベルの列をひとつずつ比較していって、0と比較、40と比較と順に比較していき、70と比較、80と比較までしたときに検索値の 77 を超えたため、ひとつ前の70の行を一致行としてその2列目の B を返すという仕組みです。
同じ数式がその下に続けて入力されています。D4セルには A が表示されています。 80を検索値として検索し、0から比較していって、80の完全一致する値があったので、その行が一致行としてその2列目 A が返されていますね。
まとめ
今回は、VLOOKUP関数の近似一致検索を使って、テストの得点でレベルを分類する方法について説明しましたが、他にも以下のようなことにも使えます。
- BMIの計算結果で肥満を判定する
- お買い上げ金額で割引率を判定する
- 年間購買額でクラス分けする
そして、今回は判定表がひとつでしたが、科目ごとに判定表を分ける方法について、説明します。
コメント