SWITCH関数は値で分岐!IFS・CHOOSEなど比較も【Excel】

アイキャッチ_SWITCH関数と他の関数比較
目次

SWITCH関数


SWITCH関数は、式またはセル参照の複数の値の中から一致するものに対応する結果を返します。

式じゃなくて値のほうを分岐だよ!

=SWITCH(式,値1,結果1,値2,結果2…,既定値)
:式またはセル参照
:式の値のひとつ
結果:直前の値と一致した場合の表示や数式など
既定値:どの値も当てはまらない場合の表示や数式など
※文字列を使用する場合は “(半角ダブルクォーテーション)で囲みます
※ “”(半角ダブルクォーテーション連続2つ)入力で空白を意味します

SWITCH関数構文を図解

例:【C列】に【A列】のコードの1桁目「W」の場合は「Word」「E」の場合は「Excel」と表示し、それ以外は空白にします。
C2: =SWITCH(LEFT(A2,1),“W”,”Word”,“E”,”Excel”,“”)

SWITCH関数の完成例

LEFT関数について詳しくは以下の記事をご覧ください。

IFS関数との違い

IFS関数でも求めることはできますが、意味合いが少し違います。

例:【C列】に【A列】のコードの1桁目「W」の場合は「Word」「E」の場合は「Excel」と表示し、それ以外は空白にします。(上記と同じ問題です)
C2: =IFS(LEFT(A2,1)=“W”,”Word”,LEFT(A2,1)=“E”,”Excel”,TRUE,””)

SWITCH関数の完成例

SWITCH関数は、式一つに対して値を分岐させます。
IFS関数は式を分岐させて使う関数なので、分岐分だけ式の入力も必要になります。

条件式が一つならSWITCH関数がいいね!

IFS関数について詳しくは以下の記事をご覧ください。

CHOOSE関数との違い

CHOOSE関数もSWITCH関数と同様に、値を分岐させる関数です。

ただし、値は1から始まる数値にする必要があるため、今回のような問題では使用できません。
以下のように、コード1桁目の「w」を1、「E」を2、その他を「3」と変えれば可能です。

例:【C列】に【A列】のコードの1桁目「1」の場合は「Word」「2」の場合は「Excel」と表示し、「3」の場合は空白にします。
C2: =CHOOSE(LEFT(A2,1),“Word”,“Excel”,“”)

CHOOSE関数の完成例

数値だけならCHOOSE関数のほうが短くて簡単!

CHOOSE関数について詳しくは以下の記事をご覧ください。

いろいろな関数で比較

問題:【C列】に【B列】(ポイント)のランキングを求め、1位を「優勝」、2位を「2位」、3位を「3位」と表示し、それ以外は空白にしましょう。

関数問題の結果

SWITCH関数
=SWITCH(RANK.EQ(B2,$B$2:$B$7),1,”優勝”,2,”2位”,3,”3位”,””)
IF関数
=IF(RANK.EQ(B2,$B$2:$B$7)=1,”優勝”,IF(RANK.EQ(B2,$B$2:$B$7)=2,”2位”,IF(RANK.EQ(B2,$B$2:$B$7)=3,”3位”,””)))
IFS関数
=IFS(RANK.EQ(B2,$B$2:$B$7)=1,”優勝”,RANK.EQ(B2,$B$2:$B$7)=2,”2位”,RANK.EQ(B2,$B$2:$B$7)=3,”3位”,TRUE,””)
CHOOSE関数(パターン1)
=CHOOSE(RANK.EQ(B2,$B$2:$B$7),”優勝”,”2位”,”3位”,””,””,””)
CHOOSE関数(パターン2)
=IFERROR(CHOOSE(RANK.EQ(B2,$B$2:$B$7),”優勝”,”2位”,”3位”),””)
XLOOKUP関数
=XLOOKUP(RANK.EQ(B2,$B$2:$B$7),$E$2:$E$4,$F$2:$F$4,””)
VLOOKUP関数
=IFERROR(VLOOKUP(RANK.EQ(B2,$B$2:$B$7),$E$2:$F$4,2,0),””)

こんなにいろいろできるんだ!

ランキングの結果を分岐するという今回のパターンでは、条件分岐のIF関数やIFS関数では長くなってしまいます。

CHOOSE関数は一見短くて良さそうに見えます。
パターン1の場合、6人しかいないことが分かっているので、4~6位のところは空白のダブルクォーテーションで済みます。しかし、10人、20人と人数が多い場合はその分入力しなければなりません。
パターン2はその他の部分がエラーになることを利用して空白にしています。人数が多い時にも対応できるので悪くはなさそうです。

XLOOKUP関数とVLOOKUP関数も短くて良さそうですが、別の表を追加で作らなければなりません。

XLOOKUP関数用のマスタ

今回のような問題では、関数1つでシンプルにできるSWITCH関数が最も適しているようです。

IF関数についてはこちらから

IFERROR関数についてはこちらから

アイキャッチで使用したフリー素材はこちらです。

スポンサーリンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次