Excel。Office365のExcel2016で追加された、SWITCH関数っていつ使うの?
<SWITCH関数・CHOOSE関数+RANK.EQ関数>
新しく追加された関数は色々ありますが、今回ご紹介する『SWITCH関数』が、いつ使うのか?というか、
CHOOSE関数でいいのでは?という感じなので、
CHOOSE関数より便利なところがSWITCH関数にはありますので、
確認してみましょう。
次の表があります。
10店舗の売り上げがありまして、
1位をS。2位をA。3位をBで、4位をCとして、
それ以外は空白という順位を算出した表です。
RANK.EQ関数だけでは、数値による算出しかしてくれませんので、
今回は、CHOOSE関数とRANK.EQ関数を組み合わせることにより、
文字によるランキングを設定することが出来ます。
D3の数式を確認してみましょう。
インデックスには、RANK.EQ(C3,$C$3:$C$12,0)
ランクを算出したいので、RANK.EQ関数をネストしています。
あとは、値1に”S”というように、
今回は、10店舗なので、最終的にD3の数式は、
=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C","","","","","","")
というようになります。
数式の難易度としては高くないのですが、
該当しない順位のところも、””=空白を入力しなくてなりません。
念のため確認してみましょう。
E列を作ってみました。
E3の数式は、
=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C")
先程の数式と違うのは、該当しない順位のセルを空白にしたいので、
””=空白を数式にいれないで作成したものです。
この数式をオートフィルでコピーしてみると、
#VALUE!というエラーが表示されてしまいます。
つまり、CHOOSE関数の欠点は、件数が多くなった場合は、
その件数分の値を必ず、入力しておかないといけない点なのです。
仮に、100店舗あった場合は、96個の””=空白を入力しないといけないわけです。
これは面倒以外の何物でもありません。
そこで、今回登場したのが、『SWITCH関数』
F列には、SWITCH関数を使って算出をしております。
F3のSWITCH関数ダイアログボックスは、次のようになっています。
式には、順位を算出するRANK.EQ(C3,$C$3:$C$12,0)を設定してあります。
これは、先程のCHOOSE関数と同じですね。
値1には、1。これは、1位だったらという意味ですね。
結果1には、”S”。
そして一番違うのは、
結果4の“C”を設定した後の、既定または値5に””=空白を設定している点です。
これは、該当しなければ、””という意味になります。
つまり、該当しない場合は空白にしたいわけですから、
この一つの引数だけとなります。
F3の数式は、
=SWITCH(RANK.EQ(C3,$C$3:$C$12,0),1,"S",2,"A",3,"B",4,"C","")
ということで、””=空白の個数が少ないですよね。
仮に店舗数が100店でも、96個の””=空白を設定する必要がありません。
このように、データ量が多い場合などでは、
CHOOSE関数を使うよりも、
新しくOffice365のExcel2016で登場した、
SWITCH関数を使うと楽に算出することが出来るようですね。