

最近リリースされたExcel関数(XLOOKUP、FILTERなど)の多くは、とてもシンプルで、かつ強力に資料作成をサポートしてくれます。しかし、時には「どういう使い方をしたらよいか、よくわからない」関数と出会うこともあるのではないでしょうか?
SWITCH関数もそのひとつ。Excel 2019以降のバージョンで正式に使用できるようになった新関数の1つですが、同時リリースされたIFS関数とのちがいが、よく分かりませんでした。
しかし、構文(引数の内容)などをていねいに見比べると、SWITCH関数の利便性が理解できるようになります。
この記事では、IFS関数とのちがいを確認しながら、SWITCH関数をうまく活用する方法をご紹介します。
SWITCH関数は、IF(IFS)関数と同じ条件分岐関数
英単語Switch(スイッチ)は、家庭用「電源スイッチ」のように、”切りかえる”、”交換する”意味をもちます。そのため、Excel関数のSWITCHは、これまで多くの場面で活用されてきたIF(IFS)と同様、”条件分岐関数”と分類されます。
そこで、IF/IFS/SWITCH構文のちがいを比較してみましょう。
【IF関数】
IF(論理式, 真の場合の値, 偽の場合の値)
論理式: 条件式で、TRUEまたはFALSEに評価される
真の場合の値: 論理式がTRUEの場合に返される値
偽の場合の値: 論理式がFALSEの場合に返される値
※使用例; =IF(A1>=70, “合格”, “不合格”)
【IFS関数】
IFS(条件1, 値1, 条件2, 値2, …)
条件: TRUEまたはFALSEに評価される条件式
値: 条件がTRUEの場合に返される値
※使用例; =IFS(A1>=90, “A”, A1>=80, “B”, A1>=70, “C”, A1<70, “D”)
IF関数は、1つの条件でYesかNoか(TRUEかFALSEか)を判定し、それぞれの場合に、異なった値を返す関数として使用されます。
実務上は、分岐条件が1つで済む単純なタスクはあまりないので、複数のIF関数を入れ子(ネスト)にすることで、複数条件分岐にも対応します。
たとえば、上記IFS使用例をIF関数だけで書きなおすと、下記のようになります。
=IF(A1>=90, “A”, IF(A1>=80, “B”, IF(A1>=70, “C”,”不合格”)))
このように、複数のIFを入れ子(ネスト)にすることは煩雑で、分岐まちがいにつながりやすいので、複数条件分岐の場合は、IFよりIFSを使用した方がよいでしょう。
【SWITCH関数】
SWITCH(式, 値1, 結果1, [値2, 結果2], …, [既定値])
式: 評価される値または式
値: 比較対象となる値
結果: 値が一致した場合に返される結果
既定値 (オプション): 式が指定した値と一致しない場合に返される結果
SWITCH関数もIFS関数と同様、複数条件分岐をシンプルに表現するExcel関数です。
しかし、上記IFS関数の「使用例」にあたる式を、SWITCH関数におき変えることはできません。
なぜなら、SWITCH関数では =(イコール/等号)か否かの条件分岐しかできず、< や >= などの不等号(以上/以下/より大きい/より小さい)を引数に加えることができないからです。
それなら、SWITCH関数なんて使わないで、IFS関数だけで複数条件分岐をさせればいいんじゃない?
いえいえ。=(イコール)であることが重要な場面も実務では結構あるものです。
たとえば、もっとも代表的な例として、データベースを軽くするためのマスター分解作業があげられます。
SWITCH関数は、IF(IFS)関数と同じ複数条件分岐関数だけれど…


たとえば、上図のような商品受注台帳のExcelワークシートがあるとします(上図は、Microsoft Copilotが自動生成したダミーデータで、個人を特定する資料ではありません)。
この1枚のシートに、担当部署や出荷日や対応担当者名など、一連の受注〜出荷情報をすべて盛り込んでしまったら、資料が複雑化して重くなり、ミスも誘発されやすくなります。
そこで、「商品マスター」「部署マスター」「担当者マスター」など、別表に切りはなせる情報は分解していくことになりますが、それらのマスター・テーブルと、この台帳をつなぐキーは、「受注商品ID」です。
実はこのIDは、アタマの2コードで商品群を分類することが可能で、SK = スキンケア商品群/BD = ボディケア商品群/HC = ヘアケア商品群を意味しています。この「コード」←→商品群の文字変換は、SWITCH関数がもっともシンプルな構文で対応できるのです。
たとえば、上図セルC2にあるコードのアタマ2文字から商品群へ表示転換するためのSWITCH関数は、以下の構文となります。
=SWITCH(LEFT(C2,2),”SK”,”スキンケア”,”BD”,”ボディケア”,”ヘアケア”)
同じことをIFS関数で実現しようとすると、
=IFS(LEFT(C2,2)=”SK”,”スキンケア”,LEFT(C2,2)=”BD”,”ボディケア”,TRUE,”ヘアケア”)
となり、3条件分岐で、条件式を2回繰り返さなければなりません(10条件で分岐させると、繰り返す条件式は9回になります)。
IF関数の入れ子(ネスト)にすると、さらに面倒な条件式の表記になるので、転換ルールが明確(イコール)な複数条件分岐の場合には、IF/IFSよりもSWITCHの方が、シンプルにまとめられるのです。
コードが商品群名に簡単におきかえられれば、担当部署/担当者/在庫などの情報を別表に切りはなしても、XLOOKUP/VLOOKUP関数で容易にひっぱれ、商品群別の構成割合も、簡単にグラフ化できるようになりますね。


まとめ;IF/IFS関数じゃないとできない複数条件分岐もありますが、Excelデータベース操作などには、SWIITCH関数が便利です
SWITCH関数にはできず、IFS関数にできることがあります。それは、< や >= などの不等号(以上/以下/より大きい/より小さい)を引数に加えた条件分岐です。
一方で、SWITCH関数にできてIFS関数にできないことはありませんが、SWITCH関数の構文をIFS(IF)関数へおきかえると、長文のややこしい関数式になってしまいます。
データベースの元情報(ソースコード)自体が大量の文字数・バイト数になる上、長文の複雑なExcel関数を大量に投入したら、ファイルは重くなり、ミスが誘発されやすくなってしまいます。
そこで、SWITCH関数でできることは「SWITCHで済ます」というように、アタマを”切りかえて”みましょう。



ID←→固有名詞対照表づくりなど、業務上必要なExcelデータベースが、”サクッと”軽く簡単に組み上げられるようになりますよ。





