Excel(エクセル)SWITCH関数の使い方|複数条件で結果を切り替える
SWITCH関数について、その使い方を初心者にも分かりやすく解説しています。SWITCH関数とは? SWITCH関数が使えるExcelのバージョン情報、SWITCH関数で複数条件の指定方法、SWITCH関数を「既定値」で締めくくる方法、同じような使い方ができるIF関数・VLOOKUP関数・IFS関数について、SWITCH関数で生じやすいエラーと対処法など。
使用関数:SWITCH
SWITCH(スイッチまたはスウィッチ)関数とは?
Switchは「切り替え」を意味する英語です。SWITCH関数は指定した複数条件によって結果を切り替えて表示します。IF関数やIFS関数よりも、単純な条件判定に向いています。
SWITCH関数が使えるExcelバージョン
SWITCH関数はExcel2016(Office365に格納されたもののみ使用可能)から加わった関数です。単体のExcelでは2019から装備されています。SWITCH関数が見当たらない、使えないというときはExcelのバージョンをご確認下さい。Excel2016以前のバージョンである可能性があります。
SWITCH関数の引数と書式
「数式」タブ「関数ライブラリ」→「論理」→ SWITCHをクリックします。
SWITCH関数の引数は「式」「値1」「結果1」、「値2」「結果2」・・・(~「値126」「結果126」まで指定可能)、「既定値」です。
SWITCH関数の書式の構成はこうなります。複雑な印象ですが、使ってみればシンプルで分かりやすい引数です。
SWITCH関数の基本的な使い方
では、実際にSWITCH関数を使って複数条件を指定してみましょう。
社内イベントのゲーム結果に応じて1位~3位までに賞品を授与します。賞品は「1位が商品券」「2位が食事券」「3位が和菓子」です。
※既に「順位」の列を設け、RANK.EQ関数「=RANK.EQ($B2,$B$2:$B$14)」で得点から順位を取得してあります。
第一引数「式」の指定
判定の対象となるセルを参照するか、判定の対象を割り出す数式を入力します。
SWITCH関数の引数に以上・以下・未満などの等号=・不等号< >は使えない
この引数が「論理式」でないことに注目して下さい。SWITCH関数では、IF関数やIFS関数のように以上・以下・未満などの等号(=)不等号(< >)を使った比較条件の指定はできません。
この例では、「順位」の最初のセルをクリックで参照します。第二引数の「値」と照合するセルを指定したということです。
引数「式」には順位を取得する数式「RANK.EQ($B2,$B$2:$B$14)」を直接入力することもできます。
第二引数「値1」の指定
「値1」には「式」と照合する数値や文字列を入力します。第一引数「式」と第二引数「値1」で「この両者がイコールなら」という条件が指定されます。
この例では数値で「1」と入力します。「順位の最初のセルC2が1とイコールなら(=順位が1位なら)」という条件が指定されたわけですね。
第三引数「結果1」の指定
「結果1」には第一引数「式」と第二引数「値1」で指定された条件が一致した場合に表示させる値を入力します。
この例では文字列で「”商品券”」と入力します。「順位の最初のセルC2が1とイコールなら商品券と表示させる」という一番目の結果が分岐されました。
「値2」「結果2」以降は「値1」「結果1」の繰り返し
2以降は「値1」と「結果1」の操作の繰り返しになります。第一引数「式」だけは変わりません。第一引数「式」と「値2」で「この両者がイコールなら」という条件を指定し、合致した場合に表示させる値を「結果2」に指定します。
この例では「値2:2」「結果2:”食事券”」、「値3:3」「結果3:”和菓子”」と指定します。
さて、ここで「値2」以降が「規定または値2」になっているのが気になると思います。
SWITCH関数の締めくくり「既定値」の指定
SWITCH関数では「式」に対して「値」「結果」がワンセットで条件を指定していきます。そして、全ての条件をクリアできなかった場合の結果を「既定値」として最後の「値」に指定します。例えば「値5」「結果5」までで条件の指定が終わったら、「規定または値6」にどの条件にも当てはまらない場合の結果を入力します。
この例では「規定または値4」に空白を意味する””を入力します。「それまで指定した1~3条件全てに合致しなかったら、空白のままにする」という指定です。
SWITCH関数による順位に応じた賞品の配分が実装できました。
最終的な数式 =SWITCH(C2,1,”商品券”,2,”食事券”,3,”和菓子”,“”)
この数式の構成を確認してみましょう。
SWITCH関数の他に条件で結果を分岐する関数
複数の条件に応じて結果を振り分けるための関数には、ネスト構造にしたIF関数、VLOOKUP関数、SWITCHと同じ時期にExcelに加わったIFS関数などがあります。
ネストを繰り返すIF関数
論理関数の代表格、IF関数にIF関数を入れ子(ネスト)する数式はポピュラーです。
上記の例で入れ子構造のIF関数を組み立ててみると、数式は「=IF(C2=1,”商品券”,IF(C2=2,”食事券”,IF(C2=3,”和菓子”,””)))」となります。
IF関数の使い方の詳細は以下の記事にまとめてあります
IFS関数
入れ子を繰り返すIF関数の数式を一つにまとめて分かりやすくしたのがIFS関数です。
上記の例でIFS関数を組み立ててみると、数式は「=IFS(C2=1,”商品券”,C2=2,”食事券”,C2=3,”和菓子”,TRUE,””)」となります。
IFS関数の使い方の詳細は以下の記事にまとめてあります
VLOOKUP関数
VLOOKUPは検査値を検索する表を別に作成する手間があり、#N/Aエラーを回避するためにIFERROR関数に入れ子する必要がありますが、数式はIFやIFSよりコンパクトです。また、この例では使っていませんが、曖昧検索で近似値の結果を引き出すこともできます。
エラー回避のためにIFERROR関数にネストすると、数式は「=IFERROR(VLOOKUP(C2,$F$2:$G$4,2,0),””)」となります。
VLOOKUP関数の使い方の詳細は以下の記事にまとめてあります
SWITCH関数はIF関数、IFS関数のように以上・以下など等号・不等号を使った条件の指定はできません。VLOOKUP関数のように近似値を返すこともありません。単純なランク判定などを手軽く実装するのに便利な関数です。
SWITCH関数のエラー
SWITCH関数で生じやすいエラーを挙げておきます。
SWITCH関数の結果が0になる
SWITCH関数の引数「結果」をセル参照で指定した場合などに生じやすいエラーです。
SWITCH関数に限ったことではありませんが、引数に別表からセル参照で指定するときはオートフィルコピーでデータがずれないように絶対参照にしておきましょう。
絶対参照にした数式 =SWITCH(C2,1,$G$2,2,$G$3,3,$G$4,””)
SWITCH関数の結果が#N/Aになる
SWITCH関数で指定した条件に合致せず、「既定値」の指定も行わなかった場合に#N/Aエラーが返ります。
「値」「結果」のセットで条件を指定し終わったら、必ず「どの条件にも当てはまらなかったら」表示させる「既定値」を指定しておきましょう。
- SWITCH関数は、指定した複数条件によって結果を切り替えて表示します
- SWITCH関数はExcel2019(Office365では2016)から装備された関数で、Excel2016以前のバージョンでは使えません
- SWITCH関数は判定対象のセルを引数「式」に指定し、「値1」「結果1」のセットで条件を指定します
- SWITCH関数の最後の「規定または値」に「どの条件にも当てはまらなかったら」表示させる「既定値」を指定して、数式を締めくくります
- 複数条件で戻り値を切り替える関数にはIF関数(ネスト)、VLOOKUP関数、IFS関数があります
- SWITCH関数の引数に別表からセル参照した場合、絶対参照にするのを忘れると0が返る可能性があります
- SWITCH関数の最後の引数に「既定値」を指定し忘れると#N/Aエラーが返る確率が高くなります