• 作成日 : 2025年8月5日

SWITCH関数とは?複数条件の設定やIF関数との違いを解説

エクセルでの複雑な条件分岐をすっきりと書けるSWITCH関数(読み方:スイッチ関数)は、IF関数を何重にもネストしていた従来の数式をシンプルに置き換えるのに最適です。この記事では、SWITCH関数の基本から応用までをわかりやすく解説。TRUEを使った柔軟な書き方や、IF関数との使い分け、実務での活用例まで、初心者でもすぐに理解できる内容で紹介します。

SWITCH関数の基本的な使い方

SWITCH関数は、式とも呼ばれる値と一致するものをリストから検索し、対応する結果を返す関数です。複数の条件に応じて、それぞれ異なる結果を返せます。

SWITCH関数の書式

SWITCH関数の基本的な構文は、以下の通りです。

=SWITCH(式, 値1, 結果1, [値2, 結果2, …], [既定値])

それぞれの引数について詳しく見ていきましょう。

  • :比較したい値や式を指定します。この値が、後続の「値1, 値2, …」と完全に一致するかどうかを順番に比較します。
  • 値1:式と比較する最初の値です。
  • 結果1:式が値1と一致した場合に返される結果です。
  • 値2, 結果2, …:必要に応じて、さらに多くの値と結果のペアを追加できます。これらのペアは、式が値1と一致しなかった場合に、順次評価されます。
  • 既定値:オプションの引数です。式がどの値とも一致しなかった場合に返される結果を指定します。この引数を省略した場合、一致する値がなければ#N/Aエラーが返されます。

SWITCH関数の動作原理

SWITCH関数は、指定された式の値を左から右へ、各値と厳密な一致で順番に比較し、最初に一致した値に対応する結果を返して処理を終了します。この「最初に記述された条件が優先される」という特徴は、特に下記のとおり、式にTRUEを指定して複数の条件式を評価する応用で重要になります。

=SWITCH(TRUE, …)

例1:数値の分類

あるセルの数値に基づいて、評価を「優」「良」「可」「不可」に分類する例を考えてみましょう。

点数評価(期待値)
100
80
60
40不可
90#N/A

セルA2に点数が入力されているとして、B2に評価を表示する場合のSWITCH関数は以下のようになります。

=SWITCH(A2, 100, “優”, 80, “良”, 60, “可”, 40, “不可”)

この例では、A2が100であれば「優」、80であれば「良」といった具合に評価が返されます。もしA2がどの値とも一致しない場合(例:90点)には、既定値を指定していないため#N/Aエラーが返されます。

例2:既定の結果の指定

上記の例で、一致する値がない場合に「判定不能」と表示したい場合は、既定値を指定します。

=SWITCH(A2, 100, “優”, 80, “良”, 60, “可”, 40, “不可”, “判定不能”)

この数式であれば、A2が90点の場合でも「判定不能」と表示され、よりユーザーフレンドリーな結果を返せます。

SWITCH関数の利用シーン

SWITCH関数は、従来のIF関数のネスト構造を改善し、数式を簡潔に記述できるため、さまざまな場面でその真価を発揮します。

1. 数値や文字列のカテゴリ分け

特定の数値や文字列に基づいて、カテゴリを割り当てる場合に非常に有効です。たとえば、商品のIDに基づいて「Aカテゴリ」「Bカテゴリ」といった分類を行ったり、アンケートの回答(「はい」「いいえ」「どちらでもない」)を数値に変換したりする際に利用できます。

  • 例:商品のランク付け
    商品コードの頭文字に基づいて、商品のランクを判定する。
商品コードランク
P100プレミアム
S200スタンダード
E300エコノミー
X400その他

セルA2に商品コードが入力されているとして、B2にランクを表示する場合です。
=SWITCH(LEFT(A2,1), “P”, “プレミアム”, “S”, “スタンダード”, “E”, “エコノミー”, “その他”)

LEFT関数を使って商品コードの先頭1文字を取り出し、それに基づいてランクを判定しています。

2. 複数の条件に基づく表示の切り替え

ドロップダウンリストの選択肢や、特定のフラグの状態に応じて、表示するメッセージや計算方法を切り替える場合にも便利です。

  • 例:交通手段に応じた料金表示
    交通手段(電車、バス、タクシー)に応じて料金を表示する。
交通手段料金
電車500
バス250
タクシー1500
徒歩無料

セルA2に交通手段が入力されているとして、B2に料金を表示する場合です。
=SWITCH(A2, “電車”, 500, “バス”, 250, “タクシー”, 1500, “無料”)

この場合、交通手段が「電車」なら500、「バス」なら250、「タクシー」なら1500と表示されます。そして、これらのいずれとも一致しない場合は「無料」と表示されます。

3. 曜日や月の名前変換

エクセルで日付を扱う際、日付のシリアル値から曜日名や月名を表示したい場合があります。TEXT関数などでも可能ですが、SWITCH関数を使うことで、より直感的に記述できます。

  • 例:数値から曜日名へ変換する。
    WEEKDAY関数で得られた数値(1=日曜日, 2=月曜日,…)を曜日名に変換する。
WEEKDAYの結果曜日
1日曜日
2月曜日
3火曜日
4水曜日
5木曜日
6金曜日
7土曜日

セルA2にWEEKDAY関数の結果(例:WEEKDAY(TODAY()))が入力されているとして、B2に曜日名を表示する場合です。
=SWITCH(A2, 1, “日曜日”, 2, “月曜日”, 3, “火曜日”, 4, “水曜日”, 5, “木曜日”, 6, “金曜日”, 7, “土曜日”)

このように、数値を対応する文字列に変換する際に、SWITCH関数は非常にわかりやすい記述を提供します。

SWITCH関数の応用:TRUEを式に使うテクニック

SWITCH関数の柔軟性は、式の部分にTRUEを指定することでさらに広がります。これは、複数の条件式を評価し、最初にTRUEになる条件に対応する結果を返すという、IF関数のネストを置き換える強力な使い方です。

=SWITCH(TRUE, 条件式1, 結果1, [条件式2, 結果2, …], [既定値])

この形式では、SWITCH関数は各条件式を順番に評価し、TRUEと評価された最初の条件式に対応する結果を返します。これにより、従来のIF関数の多重ネストで発生しがちだった複雑さを劇的に解消できます。

複数の条件に基づく評価(点数範囲)

点数に応じて「A評価」「B評価」「C評価」「D評価」を付ける場合を考えてみましょう。従来のIF関数では以下のように記述していました。

=IF(A2>=90, “A評価”, IF(A2>=70, “B評価”, IF(A2>=50, “C評価”, “D評価”)))

この数式は、括弧の数が多くなり、どこからどこまでが対応しているのかわかりにくくなりがちです。これを「=SWITCH(TRUE, …)」で書き換えると、以下のようになります。

=SWITCH(TRUE, A2>=90, “A評価”, A2>=70, “B評価”, A2>=50, “C評価”, “D評価”)

この数式では、式にTRUEを指定し、その後の引数に各条件式と対応する結果を記述しています。

  1. まずA2>=90が評価されます。もしTRUEであれば「A評価」が返されます。
  2. A2>=90がFALSEであれば、次にA2>=70が評価されます。もしTRUEであれば「B評価」が返されます。
  3. 同様に、A2>=50が評価されます。
  4. どの条件式もTRUEにならなかった場合、最後の「D評価」が既定値として返されます。

このように、「=SWITCH(TRUE, …)」は、複数の条件式を順番に評価し、最初に合致した条件に対する結果を返すという点で、非常に強力で読みやすい代替手段となります。

SWITCH関数とIF関数の比較

SWITCH関数とIF関数は、どちらも条件に基づいて異なる結果を返すという点で共通していますが、それぞれに得意な場面があります。

IF関数
  • 構文:IF(論理式, 真の場合, 偽の場合)
  • 特徴:一つの論理式を評価し、真か偽かで結果を分岐させます。
  • 得意な場面
    • シンプルな二者択一の条件分岐
    • 複数の論理演算子(AND, ORなど)が含まれた複雑な論理式を条件とする場合
SWITCH関数
  • 構文:SWITCH(式, 値1, 結果1, [値2, 結果2, …], [既定の結果])
  • 特徴:一つの式の値を複数の値と比較し、一致したものに対応する結果を返します。TRUEを式に指定することで、複数の条件式を順番に評価することも可能です。
  • 得意な場面
    • 一つの値に対して複数の選択肢がある場合(多分岐)
    • IF関数のネストが深くなるような、複雑な条件分岐を簡素化したい場合
    • 数式の可読性やメンテナンス性を向上させたい場合
選択の目安
  • 条件が2つだけの場合:IF関数が簡潔でわかりやすいことが多いです。例:=IF(A1=”男性”,”Male”,”Female”)
  • 条件が3つ以上で、比較する「値」が固定されている場合:SWITCH関数が圧倒的に有利です。例:曜日の変換、特定コードの分類など。
  • 複数の「条件式」を評価し、それぞれが特定の範囲や複雑な論理式を含む場合:「=SWITCH(TRUE, …)」がIF関数のネストよりも読みやすくなります。例:点数による評価の範囲分け。

どちらの関数を使うべきか迷った場合は、「一つの値を複数の候補と照合して結果を返す」という状況であればSWITCH関数を、「特定の条件が満たされたらこれ、満たされなかったらあれ」というシンプルな二者択一であればIF関数を検討すると良いでしょう。また、複雑な条件分岐でIF関数が3つ以上ネストするような場合は、「=SWITCH(TRUE, …)」への置き換えを積極的に検討することをおすすめします。

SWITCH関数を利用する上での注意点とヒント

SWITCH関数を効果的に活用するために、いくつかの注意点とヒントがあります。

1. 引数のデータ型に注意

式と値のデータ型が異なる場合でも、Excelが暗黙的な型変換を行い、一致とみなされることがあります。

たとえば、式が数値の100で、値が文字列の”100″である場合、Excelはこれを一致と判断し、対応する結果を返します。

2. 既定値の重要性

既定値は省略可能ですが、指定することをおすすめします。これを指定しない場合、式がどの値とも一致しなかったときに#N/Aエラーが返され、予期せぬエラー表示につながる可能性があります。エラー表示を避け、よりユーザーフレンドリーな結果を返すために、常に既定値を考慮しましょう。

3. 大文字・小文字の区別

SWITCH関数は、文字列を比較する際にデフォルトで大文字と小文字を区別しません。たとえば、”apple”と”Apple”は同じ値とみなされます。

もし大文字・小文字を区別して比較したい場合は、LOWER関数やUPPER関数、またはEXACT関数などを組み合わせて使用する必要があります。

4. 順番の考慮(=SWITCH(TRUE, …)の場合)

「=SWITCH(TRUE, …)」の形式で複数の条件式を記述する場合、その記述順序が重要になります。SWITCH関数は、最初にTRUEと評価された条件式に対応する結果を返します。したがって、より限定的な条件を先に、より一般的な条件を後に記述することで、意図通りの結果が得られます。

  • 悪い例(Aが評価されない可能性がある):
    =SWITCH(TRUE, A2>=50, “C評価”, A2>=90, “A評価”, “D評価”)
    この場合、A2が90以上であっても、先にA2>=50がTRUEになるため、常に「C評価」が返されてしまいます。
  • 良い例(期待通りの結果):
    =SWITCH(TRUE, A2>=90, “A評価”, A2>=70, “B評価”, A2>=50, “C評価”, “D評価”)
    このように、条件の範囲が狭いものから順に記述することで、正しく評価がなされます。

5. 複数のシートやブックを参照する場合

SWITCH関数も他のエクセル関数と同様に、別のシートやブックのセルを参照できます。これにより、マスターデータシートに定義された条件や結果に基づいて、メインのシートで処理を行うといった柔軟な運用が可能です。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事