Microsoft Excel(エクセル)のIF関数に似た関数に、SWITCH関数という関数があります。
SWITCH関数は、対象データを複数の条件分岐で値を判定し、それぞれの条件ごとに設定した結果を表示する関数です。
例えば、A1セルの値が「1」であれば「金メダル」、「2」であれば「銀メダル」、「3」であれば「銅メダル」といったように、条件ごとに表示を変えることができます。
IF関数も類似の機能をもっていますが、複数条件で設定しようとすると、関数が長くなり数式を作成するのが難しいです。
一方、SWITCH関数は複数条件の設定がしやすいような仕様になっているのが特徴です。
今回はSWITCH関数の使い方や事例を中心に、IF関数との仕様の違いなども合わせて解説します。
エクセルのSWITCH関数とは?
SWITCH関数の読み方は、スウィッチもしくはスイッチです。
エクセルのSWITCH関数とは、複数の条件分岐で値を判定し、条件に最初に一致した値を表示する関数です。 また、どの条件にも一致しない場合に表示する値も指定することができます。
SWITCH関数の構文と引数は、以下のようになっています。
1つ目の引数「式」によって算出された値が「値1」であれば「結果1」を表示します。「値1」でない場合は、「値2」かどうかを判定し、「値2」であれば「結果2」を表示します。このように、順番に値を判定し、表示させる結果を分岐させることができます。
最終的にどの値にも該当しない場合は、「一致しない場合の値」を表示させる関数です。
SWITCH関数のイメージ図を図解で表すと、以下の仕組みとなっています。
SWITCH関数で指定した『式』と条件分岐によって、さまざまな結果を表示することが出来ます。
SWITCH関数の書式と引数
それでは、SWITCH関数の書式(構文)と引数を詳しく紹介していきます。
=SWITCH(式, 値1,結果1, 値2,結果2,値3,結果3,・・,一致しない場合の値)
第1引数「式」:値を求めるために、セル番号や関数を指定します。(例:B3、RANK(C4,C4:C8)、LEFT(B4,1))
第2,4・・引数「値」:第1引数の式によって算出される値を指定します。数字やセル番号以外の場合は、ダブルクォーテーション(”)で囲います。(例:1、2,”A”、”B”)
第3,5・・引数「結果」:第1引数の式の結果が第2、4引数の「値」だった場合に、表示したい文字列を指定します。数字やセル番号以外の場合は、ダブルクォーテーション(”)で囲います。(例:”日曜日”、”月曜日”、”金メダル”、”銀メダル”)
最後の引数「一致しない場合の値」:どの「値」にも一致しない場合に表示したい文字列を指定します。数字やセル番号以外の場合は、ダブルクォーテーション(”)で囲います。(例:”非該当”、”-”、””)
SWITCH関数の第2、3引数の「値1」と「結果1」を1つのセットと考えて条件を設定します。また、条件を設定できる最大数は126です。
SWITCH関数の使い方を紹介
それでは、実際にSWITCH関数の使い方を手順に沿って紹介します。
今回は説明用に、下のD列にSWITCH関数を挿入して、順位が1位であれば「金メダル」、順位が2位であれば「銀メダル」、順位が3位であれば「銅メダル」、それ以外であれば「-」を表示させます。
まず、D3セルにSWITCH関数を挿入し、第1引数「式」にC3セルを選択します。C3セルは式ではありませんが、セル番号を引数に指定することでC3セルの値によって、結果を分岐させることができます。
=SWITCH(C3,
次に、SWITCH関数の第1条件を設定します。C3セルの値が「1」の場合は「金メダル」と表示させたいので、「1,”金メダル”,」と入力します。
=SWITCH(C3,1,"金メダル",
次に、SWITCH関数の第2条件を設定します。C3セルの値が「2」の場合は「銀メダル」と表示させたいので、「2,”銀メダル”,」と入力します。
=SWITCH(C3,1,"金メダル",2,"銀メダル",
同様に、SWITCH関数の第3条件を設定します。C3セルの値が「3」の場合は「銅メダル」と表示させたいので、「3,”銅メダル”,」と入力します。
=SWITCH(C3,1,"金メダル",2,"銀メダル",3,"銅メダル",
SWITCH関数の最後の引数は、条件に一致しない場合に表示したい値を設定します。今回はハイフン(-)を表示するために、「”-”」と入力し、カッコで関数を閉じます。
=SWITCH(C3,1,"金メダル",2,"銀メダル",3,"銅メダル","-")
関数を確定し、C4セルからC7セルにもSWITCH関数をコピペします。そうすると、下のように、順位によって、メダルの色を判定させることができました。
SWITCH関数を使った事例を紹介
SWITCH関数の中に他の関数を挿入することで、さらに高度な条件分岐の設定が可能となります。
この見出しでは、SWITCH関数と他の関数を組み合わせる様々なパターンの事例を5つ紹介します。
SWITCH関数の事例1 :RANK.EQ関数と組み合わせる方法
1つ目の事例は、SWITCH関数の第1引数「式」に、順位付けするRANK.EQ関数を挿入する方法です。
RANK.EQ関数は、「=RANK.EQ(数値,範囲,[順序])」という書式で、選択したセル範囲の中で大きい順もしくは小さい順で順位をつける関数です。
下のD列にSWITCH関数を挿入して、C列の数値が一番大きければ「1位」、2番目に大きければ「2位」、3番目に大きければ「3位」、それ以外であれば「-」を表示させます。
=SWITCH(RANK.EQ(C3,$C$3:$C$7,0),1,"1位",2,"2位",3,"3位","-")
小さい順に順位付けしたい場合は、RANK.EQ関数の第3引数「順序」は「0」ではなく、「1」を入力してください。そうすると、下のように、小さい順で順位付けすることができます。
=SWITCH(RANK.EQ(C7,$C$3:$C$7,1),1,"1位",2,"2位",3,"3位","-")
RANK.EQ関数の詳しい使い方を知りたい方は、以下の記事を参考にしてください。
SWITCH関数の事例2:LEFT関数、RIGHT関数と組み合わせる方法
2つ目の事例は、SWITCH関数の第1引数「式」に、文字列から文字を抽出するLEFT関数やRIGHT関数を挿入する方法です。
下のD列にSWITCH関数を挿入して、B列の先頭の文字がAであれば「果物」、Bであれば「飲料」、Cであれば「野菜」、それ以外であれば「-」を表示させます。
=SWITCH(LEFT(B3,1),"A","果物","B","飲料","C","野菜","-")
B列の末尾の文字がA~Cかどうかで判別して、SWITCH関数で表示させる文字を分岐させる場合は、RIGHT関数を利用します。
=SWITCH(RIGHT(B3,1),"A","果物","B","飲料","C","野菜","-")
LEFT関数やRIGHT関数の詳しい使い方を知りたい方は、以下の記事を参考にしてください。
SWITCH関数の事例3:WEEKDAY関数と組み合わせる方法
3つ目の事例は、SWITCH関数の第1引数「式」に、WEEKDAY関数を挿入して日付から曜日を表示させる方法です。
WEEKDAY関数は、日付から曜日を判断して、1~7の数値を返す関数です。
下のC列に以下のSWITCH関数を挿入することで、対象の日付セルの曜日を自動で判別して表示させることができます。
=SWITCH(WEEKDAY(B3),1,"日曜日",2,"月曜日",3,"火曜日",4,"水曜日",5,"木曜日",6,"金曜日",7,"土曜日")
WEEKDAY関数を使ったその他の事例は以下の記事で紹介しています。興味のある方は参考にしてください。
SWITCH関数の事例4:IF関数と組み合わせる方法
4つ目の事例は、IF関数の中にSWITCH関数を挿入する方法です。
IF関数の書式は「=IF(論理式,[値が真の場合],[値が偽の場合])」ですが、3つ目の引数「値が偽の場合」にSWITCH関数を挿入します。
下のD列にSWITCH関数を挿入して、C列の値が3未満であれば「-」、3であれば「ボーダー」、4であれば「合格圏」、5であれば「優秀」を表示させます。
=IF(C3<3, "-", SWITCH(C3, 3, "ボーダー", 4, "合格圏", 5, "優秀"))
IF関数の使い方を詳しく確認したい方は、以下の記事を参考にしてください。
SWITCH関数の事例5:SUM関数と組み合わせる方法
5つ目の事例は、SWITCH関数の引数「結果」に、SUM関数を挿入する方法です。
下のH3セルにSWITCH関数を挿入して、G3セルの値が1であれば「C列の値を合計」、2であれば「D列の値を合計」、3であれば「E列の値を合計」します。
=SWITCH(G3,1,SUM(C3:C7),2,SUM(D3:D7),3,SUM(E3:E7))
SWITCH関数でエラー「#N/A」が表示される原因は?
SWITCH関数を使ったけれど、エラー「#N/A」が表示される場合があります。
その多くの原因が、SWITCH関数の最後の引数「一致しない場合の値」を設定していないことが原因です。
例えば、下のSWITCH関数では、C列の値が「1」「2」「3」の場合に表示する文字列は設定していますが、それ以外の値がC列に入力された時の設定ができていません。
=SWITCH(C4,1,"金メダル",2,"銀メダル",3,"銅メダル")
SWITCH関数のエラーを解消するには、C列に「1~3」以外の値が入力された時に表示させたい値を設定する必要があります。
もし、空白で表示したい場合はSWITCH関数の最後の引数を「””」と入力します。「対象外」と表示したいときは、「”対象外”」と設定してください。
=SWITCH(C4,1,"金メダル",2,"銀メダル",3,"銅メダル",””)
SWITCH関数とIF関数の違いは?
SWITCH関数とIF関数の機能は良く似ています。ともに、条件分岐を設定して、複数の結果を表示させることができるからです。
では、どういった場合に、SWITCH関数とIF関数をどのように使い分ければよいでしょうか。
例えば、下のD列には以下のSWITCH関数を挿入して、順位が1位であれば「金メダル」、順位が2位であれば「銀メダル」、順位が3位であれば「銅メダル」、それ以外であれば「-」を表示させます。
=SWITCH(C7,1,"金メダル",2,"銀メダル",3,"銅メダル","-")
この条件分岐をSWITCH関数の代わりに、IF関数で行うこともできます。
ただし、IF関数の中に複数のIF関数を挿入する必要があり、数式は非常に長くなってしまいます。そのため、このような例であれば、SWITCH関数の方がIF関数より使いやすいでしょう。
=IF(C7=1,"金メダル",IF(C7=2,"銀メダル",IF(C7=3,"銅メダル","-")))
よって、IF関数とSWITCH関数の特に違う点は、分岐させる数が多い場合は、IF関数よりSWITCH関数を使った方が良い場合が多いでしょう。
また、IF関数では、「○○以上」「○○未満」など、数値の大きさの範囲を条件に設定する場合によく利用されます。IF関数がどんな時に使いやすいかイメージしたければ、以下の記事で紹介している事例を参考にしてください。
条件分岐で表示を変えるその他の関数を紹介
今回は、ExcelのSWITCH関数の使い方と事例を紹介しました。
上記で述べたとおり、IF関数も同じように条件分岐によって表示する値を変更することができる関数ですが、それ以外にも、「IFS関数」と「CHOOSE関数」という関数があるので、簡単に関連記事を紹介します。
複数条件の設定がしやすい『IFS関数』
IFS関数は、IFに複数の「S」がついた関数名のとおり、複数の条件で表示方法を変更することができるIF関数の新関数です。
IF関数より引数の設定がシンプルになり、複数条件の設定が容易です。
=IFS(論理式1, 真の場合1, 論理式2, 真の場合2,論理式3, 真の場合3, ..., )
例えば、以下のように、IFS関数を挿入することで、点数を『100点は◎』、『80~99点は〇』、『40~79点は△』、『40未満は×』、の4つで判定することができます。
=IFS(C3=100,"◎",C3>=80,"〇",C3>=40,"△",C3<40,"×")
IFS関数の使い方は以下の記事で詳しく紹介していますので、興味のある方は参考にしてください。
引数の設定が少なくてすむ『CHOOSE関数』
IF関数より引数の設定が少なくて済むという点で、CHOOSE関数も便利です。
=CHOOSE(インデックス,値1,[値2],[値3], ...)
CHOOSE関数を利用して、B3セルの値が「1」なら「バナナ」、「2」なら「みかん」、「3」なら「リンゴ」、「4」なら「栗」を表示しようとすると、CHOOSE関数は以下となります。
=CHOOSE(B3,"バナナ","ミカン","リンゴ","栗")
CHOOSE関数の使い方は、以下の記事で詳しく紹介していますので、興味のある方は参考にしてください。