4/11/2018

Excel。Office365のExcel2016で追加された、SWITCH関数っていつ使うの?【SWITCH】

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関数を使うと楽に算出することが出来るようですね。