5/23/2014

Excel。判断分岐多いならIf関数よりChoose関数が楽


Excel。判断分岐多いならIf関数よりChoose関数が楽

Choose関数で4つの判断分岐


以前企業研修のご質問だったと思うんだけど、IF+IF関数を使って、
ABCに判断分岐する方法をご紹介した時に、

判断分岐が多くなると、IF+IF+IF…と大変なので、効率な方法はありませんか?
とありまして、アイディアによっては、Choose関数のほうがIF+IF関数のネストよりも、【楽】かもね。

とお答えしたことがありましたが、

今回は、そのChoose関数を使って、4つの判断分岐をやってみたいと思います。

仕事で使えるExcel講座でも、お話しすることもあるネタですね。

今回は下記の表があります。

F列の評価に次の条件で判断した文字を表示したい訳です。

300点なら、満点
200~299点なら、良
100~199点なら、可
0~99点なら、不可

というルールで、判断するとします。

まずは、IF+IF関数のネストで作ってみましょう。

苦労をすることによって、もっといい方法はないかな?と考えるわけですからね。

F2をクリックして、IF関数のダイアログボックスを表示しましょう。

まず、F2=300という論理式を作って、真の場合は、”満点”。
偽の場合は、また質問を作っていきますので、IF関数を作っていきます。

名前ボックスの▼をクリックして、一覧からIF関数があれば、クリックしましょう。
ネストのIF関数を作っていきますので、
論理式には、E2>=200
真の場合には、”良”

負の場合には、これまた、ネストのIF関数を挿入していきますので、
名前ボックスの▼をクリックして、一覧からIF関数があれば、クリックしましょう。

ネストのIF関数を作っていきますので、
論理式がE2>=100
真の場合には”可”
偽の場合には”不可”

としてOKボタンをクリックすると完成しますので、オートフィルで連続コピーしましょう。
ちなみに、数式は、

=IF(E2=300,"満点",IF(E2>=200,"良",IF(E2>=100,"可","不可")))
なんだか、やっぱり長い数式になりましたね。
ご質問があったように、IF+IF関数のネストだと、
多岐にわたる分岐判断だと複雑化していきますね。

なお、結果は、

これを煩雑化した数式にしないで算出する方法に、
今回紹介するChoose関数を使う方法があります。

それでは、ご紹介していきましょう。
F2をクリックして、Choose関数のダイアログボックスを表示させましょう。
このChoose関数は、1なら、2なら、3なら…という風に判断してくれます。

ですので、ココはアイディアが必要になってくるのですが、今回の分岐の条件が、

300点なら、満点
200~299点なら、良
100~199点なら、可
0~99点なら、不可

ですので、例えば、99点は不可と判定させるには、合計点を100で割った値に+1します。
今回はなぜ+1をするのかというと、このChoose関数。

小数点以下は切り捨てちゃうんですね。


ですので、割っただけだと、0になってしまう訳ですね。

99÷100=0.99+1=1.99 で1として判断。
このように、どうしたら、
1に2に3に…と出来るのかを考えれば多岐にわたる分岐判断は
IF+IF関数よりも簡単になると思います。

Choose関数のダイアログボックスを作っていきましょう。
インデックスには、E2/100+1
値1には、”不可”
値2には、”可”
値3には、”良”
値4には、”満点”

あとは、OKボタンをクリックしましょう。

そうしたら、オートフィルハンドルを使って連続コピーしましょう。

ちなみに、数式は、
=CHOOSE(E2/100+1,"不可","可","良","満点")
確かに、IF+IF関数のネストよりも煩雑じゃないですよね。

ちょっと複数の判断分岐になるときには、Choose関数。使ってみてはどうでしょうか?