SWITCH関数の使い方|複数条件で結果を切り替える

Excel(エクセル)SWITCH関数の使い方
Excelの一覧

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
SWITCH関数の引数は「式」「値1」「結果1」、「値2」「結果2」・・・(~「値126」「結果126」まで指定可能)、「既定値」です。

SWITCH関数の書式の構成はこうなります。複雑な印象ですが、使ってみればシンプルで分かりやすい引数です。
SWITCH関数の書式の構成

SWITCH関数の基本的な使い方

では、実際にSWITCH関数を使って複数条件を指定してみましょう。

社内イベントのゲーム結果に応じて1位~3位までに賞品を授与します。賞品は「1位が商品券」「2位が食事券」「3位が和菓子」です。
SWITCH関数で点数に応じた賞品授与を表示させる表
※既に「順位」の列を設け、RANK.EQ関数「=RANK.EQ($B2,$B$2:$B$14)」で得点から順位を取得してあります。

第一引数「式」の指定

判定の対象となるセルを参照するか、判定の対象を割り出す数式を入力します。

SWITCH関数の引数に以上・以下・未満などの等号=・不等号< >は使えない

この引数が「論理式」でないことに注目して下さい。SWITCH関数では、IF関数やIFS関数のように以上・以下・未満などの等号(=)不等号(< >)を使った比較条件の指定はできません

この例では、「順位」の最初のセルをクリックで参照します。第二引数の「値」と照合するセルを指定したということです。
SWITCH関数の引数「式」に判定対象のセルを指定

引数「式」には順位を取得する数式「RANK.EQ($B2,$B$2:$B$14)」を直接入力することもできます。
SWITCH関数の引数「式」に順位を取得する数式を直接入力

第二引数「値1」の指定

「値1」には「式」と照合する数値や文字列を入力します。第一引数「式」と第二引数「値1」で「この両者がイコールなら」という条件が指定されます。

この例では数値で「1」と入力します。「順位の最初のセルC2が1とイコールなら(=順位が1位なら)」という条件が指定されたわけですね。
SWITCH関数の引数「値1」に1と入力

第三引数「結果1」の指定

「結果1」には第一引数「式」と第二引数「値1」で指定された条件が一致した場合に表示させる値を入力します。

この例では文字列で「”商品券”」と入力します。「順位の最初のセルC2が1とイコールなら商品券と表示させる」という一番目の結果が分岐されました。
SWITCH関数の引数「結果1」に"商品券"と入力

「値2」「結果2」以降は「値1」「結果1」の繰り返し

2以降は「値1」と「結果1」の操作の繰り返しになります。第一引数「式」だけは変わりません。第一引数「式」と「値2」で「この両者がイコールなら」という条件を指定し、合致した場合に表示させる値を「結果2」に指定します。

この例では「値2:2」「結果2:”食事券”」、「値3:3」「結果3:”和菓子”」と指定します。
SWITCH関数の「値2」「結果2」~「値3」「結果3」の指定

さて、ここで「値2」以降が「規定または値2」になっているのが気になると思います。

SWITCH関数の締めくくり「既定値」の指定

SWITCH関数では「式」に対して「値」「結果」がワンセットで条件を指定していきます。そして、全ての条件をクリアできなかった場合の結果を「既定値」として最後の「値」に指定します。例えば「値5」「結果5」までで条件の指定が終わったら、「規定または値6」にどの条件にも当てはまらない場合の結果を入力します。

この例では「規定または値4」に空白を意味する””を入力します。「それまで指定した1~3条件全てに合致しなかったら、空白のままにする」という指定です。
SWITCH関数の最後の「規定または値」の指定

SWITCH関数による順位に応じた賞品の配分が実装できました。
SWITCH関数による順位に応じた賞品の配分
最終的な数式 =SWITCH(C2,1,”商品券”,2,”食事券”,3,”和菓子”,“”)
この数式の構成を確認してみましょう。
SWITCH関数の数式の構成

SWITCH関数の他に条件で結果を分岐する関数

複数の条件に応じて結果を振り分けるための関数には、ネスト構造にしたIF関数、VLOOKUP関数、SWITCHと同じ時期にExcelに加わったIFS関数などがあります。

ネストを繰り返すIF関数

論理関数の代表格、IF関数にIF関数を入れ子(ネスト)する数式はポピュラーです。
上記の例で入れ子構造のIF関数を組み立ててみると、数式は「=IF(C2=1,”商品券”,IF(C2=2,”食事券”,IF(C2=3,”和菓子”,””)))」となります。

IF関数の使い方の詳細は以下の記事にまとめてあります

https://www.tschoolbank.com/tb-articles/excel-function-if/

IFS関数

入れ子を繰り返すIF関数の数式を一つにまとめて分かりやすくしたのがIFS関数です。
上記の例でIFS関数を組み立ててみると、数式は「=IFS(C2=1,”商品券”,C2=2,”食事券”,C2=3,”和菓子”,TRUE,””)」となります。

IFS関数の使い方の詳細は以下の記事にまとめてあります

IFS関数の使い方|IF関数のネスト不要で複数条件
IFS関数の使い方を初心者にも分かりやすく解説します。IFS関数とは? IFS関数が使えるExcelのバージョン情報、IFS関数で複数条件の指定方法、IFS関数の「偽の場合」の書き方、AND関数と組み合わせて効率的に条件を指定する方法など。

VLOOKUP関数

VLOOKUPは検査値を検索する表を別に作成する手間があり、#N/Aエラーを回避するためにIFERROR関数に入れ子する必要がありますが、数式はIFやIFSよりコンパクトです。また、この例では使っていませんが、曖昧検索で近似値の結果を引き出すこともできます。
VLOOKUP関数の検索に使う別表とダイアログの指定

エラー回避のためにIFERROR関数にネストすると、数式は「=IFERROR(VLOOKUP(C2,$F$2:$G$4,2,0),””)」となります。

VLOOKUP関数の使い方の詳細は以下の記事にまとめてあります

VLOOKUP関数の使い方|Excelで検索してデータを転記
ExcelのVLOOKUP関数はデータ表を縦の方向へ検索して一致する項目のデータを自動で転記。VLOOKUP関数の引数の指定方法の固定ルールを覚えればVLOOKUP関数の複雑な数式の構文も分かる。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関数で#N/Aエラー

「値」「結果」のセットで条件を指定し終わったら、必ず「どの条件にも当てはまらなかったら」表示させる「既定値」を指定しておきましょう。

SWITCH関数の使い方 まとめ
  • SWITCH関数は、指定した複数条件によって結果を切り替えて表示します
  • SWITCH関数はExcel2019(Office365では2016)から装備された関数で、Excel2016以前のバージョンでは使えません
  • SWITCH関数は判定対象のセルを引数「式」に指定し、「値1」「結果1」のセットで条件を指定します
  • SWITCH関数の最後の「規定または値」に「どの条件にも当てはまらなかったら」表示させる「既定値」を指定して、数式を締めくくります
  • 複数条件で戻り値を切り替える関数にはIF関数(ネスト)、VLOOKUP関数、IFS関数があります
  • SWITCH関数の引数に別表からセル参照した場合、絶対参照にするのを忘れると0が返る可能性があります
  • SWITCH関数の最後の引数に「既定値」を指定し忘れると#N/Aエラーが返る確率が高くなります
タイトルとURLをコピーしました