範囲の開始値 | 範囲の終了値 | 判定 |
---|---|---|
0 | 59 | D |
60 | 69 | C |
70 | 79 | B |
80 | 89 | A |
90 | 100 | S |
上の表のような条件によって判定を行うとき、プログラムだと単に if, else if でできまますが(美しさはともかく)、Excel だとどうするか? 何も考えずに行うとしたら IF の入れ子で行うことになると思いますが、正直見難いのでもっと綺麗に処理したい。
Excel 2016 からは IFS 関数が実装されて複雑な条件分岐が書きやすくなったが、Excel 2013 以前では IFS 関数は使えません。Excel 2013 以前で数値の範囲で条件分岐を行う方法の一つを記します。
まず判定の表を用意します。値は「~以上のとき」となる値とします。また、値は必ず昇順に書き並べてください。
0 | D |
60 | C |
70 | B |
80 | A |
90 | S |
次に判定結果を行う式を用意します。今回の手法には VLOOKUP の近似一致を用いるので、第 4 引数を TRUE とします。
=VLOOKUP([判定する値], [判定表], 2, TRUE)
上から順(昇順)に判定を行っていき、range <= value を満たす最後の行(最大値)で終了。