SWITCH関数
IF関数でいう「論理式」は1つ。
論理式自体を複数使う場合はSWITCH関数ではできない。
SWITCH関数は、1つの式でその結果が複数ある場合にそれぞれどのように表示させるのかを指定する関数。
セルの値によって表示を変える
SWITCH関数を使ってB列「部署」に、A列「部署コード」に合った部署名を入力したい。
ただし、1:総務部 / 2:人事部 / 3:経理部 とし、それ以外は空白とする。
ただし、1:総務部 / 2:人事部 / 3:経理部 とし、それ以外は空白とする。
=SWITCH(A2,1,”総務部”,2,”人事部”,3,”経理部”,””)
式の意味:
【A2】のセルの値が「1」の場合は「総務部」と表示、「2」の場合は「人事部」、
「3」の場合は「経理部」と表示する。どれも当てはまらない場合は空白とする。
今回は単純な数字だったけれど、文字列でも同様にできる。
ただし、文字列を使う場合は「”(ダブルクォーテーション)」で括ろう。
計算式の結果によって表示を変える
SWITCH関数を使って、C列「成績」にB列「ポイント」のランキングを反映した表示をしたい。
ただし、1位:優勝 / 2位:2位 / 3位:3位 とし、それ以外は空白とする。
ただし、1位:優勝 / 2位:2位 / 3位:3位 とし、それ以外は空白とする。
=SWITCH(RANK.EQ(B2,$B$2:$B$8),1,”優勝”,2,”2位”,3,”3位”,””)
式の意味:
【B2】のセルの値が【B2~B8】の中で何位か順位を計算し、「1」の場合は「優勝」と表示、
「2」の場合は「2位」、「3」の場合は「3位」と表示する。それ以外は空白とする。
このように他の関数との組み合わせも可能なので、2段階の作業が一度で済む。
SWITCH関数以外の関数を使っても同様に結果を出すこともできる。
では、他の関数でも計算して比較してみよう。
関数:SWITCH・IF・IFS・CHOOSE・VLOOKUP で比較
C列「成績」にB列「ポイント」のランキングを反映した表示をしたい。
ただし、1位:優勝 / 2位:2位 / 3位:3位 とし、それ以外は空白とする。
ただし、1位:優勝 / 2位:2位 / 3位:3位 とし、それ以外は空白とする。
SWITCH関数
=SWITCH(RANK.EQ(B2,$B$2:$B$8),1,”優勝”,2,”2位”,3,”3位”,””)
IF関数
=IF(RANK.EQ(B2,$B$2:$B$8)=1,”優勝”,IF(RANK.EQ(B2,$B$2:$B$8)=2,
“2位”,IF(RANK.EQ(B2,$B$2:$B$8)=3,”3位”,””)))
IFS関数
=IFS(RANK.EQ(B2,$B$2:$B$8)=1,”優勝”,RANK.EQ(B2,$B$2:$B$8)=2,
“2位”,RANK.EQ(B2,$B$2:$B$8)=3,”3位”,TRUE,””)
CHOOSE関数(2パターン)
=CHOOSE(RANK.EQ(B2,$B$2:$B$8),”優勝”,”2位”,”3位”,””,””,””,””)
=IFERROR(CHOOSE(RANK.EQ(B2,$B$2:$B$8),”優勝”,”2位”,”3位”),””)
VLOOKUP関数
=IFERROR(VLOOKUP(RANK.EQ(B2,$B$2:$B$8),$E$1:$F$4,2,0),””)
=SWITCH(RANK.EQ(B2,$B$2:$B$8),1,”優勝”,2,”2位”,3,”3位”,””)
IF関数
=IF(RANK.EQ(B2,$B$2:$B$8)=1,”優勝”,IF(RANK.EQ(B2,$B$2:$B$8)=2,
“2位”,IF(RANK.EQ(B2,$B$2:$B$8)=3,”3位”,””)))
IFS関数
=IFS(RANK.EQ(B2,$B$2:$B$8)=1,”優勝”,RANK.EQ(B2,$B$2:$B$8)=2,
“2位”,RANK.EQ(B2,$B$2:$B$8)=3,”3位”,TRUE,””)
CHOOSE関数(2パターン)
=CHOOSE(RANK.EQ(B2,$B$2:$B$8),”優勝”,”2位”,”3位”,””,””,””,””)
=IFERROR(CHOOSE(RANK.EQ(B2,$B$2:$B$8),”優勝”,”2位”,”3位”),””)
VLOOKUP関数
=IFERROR(VLOOKUP(RANK.EQ(B2,$B$2:$B$8),$E$1:$F$4,2,0),””)
どの関数を使っても同じ結果になる。
IF関数とIFS関数はとにかく長い!
2位だったら…3位だったら…と論理式を分岐の都度入力しなければならないからね。
CHOOSE関数はどうだろう。
短く見えるけれど、4位だったら、5位だったら…と出てくる数すべてを入力するか、
IFERROR関数でエラーにる(4位以降)は空白にする、というようにしなければならない。
VLOOKUP関数も割といい感じ。
でも別で参照用の表を作っておく必要がある。うん、手間かかるー。
というわけで、今回のように式は1つで値が複数ある場合はSWITCH関数がとても便利になる。
複数といっても、多すぎるとVLOOKUP関数のほうが良かったりもする。
そこは柔軟に。