- 作成日 : 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を指定し、その後の引数に各条件式と対応する結果を記述しています。
- まずA2>=90が評価されます。もしTRUEであれば「A評価」が返されます。
- A2>=90がFALSEであれば、次にA2>=70が評価されます。もしTRUEであれば「B評価」が返されます。
- 同様に、A2>=50が評価されます。
- どの条件式もTRUEにならなかった場合、最後の「D評価」が既定値として返されます。
このように、「=SWITCH(TRUE, …)」は、複数の条件式を順番に評価し、最初に合致した条件に対する結果を返すという点で、非常に強力で読みやすい代替手段となります。
SWITCH関数とIF関数の比較
SWITCH関数とIF関数は、どちらも条件に基づいて異なる結果を返すという点で共通していますが、それぞれに得意な場面があります。
- 構文:IF(論理式, 真の場合, 偽の場合)
- 特徴:一つの論理式を評価し、真か偽かで結果を分岐させます。
- 得意な場面:
- シンプルな二者択一の条件分岐
- 複数の論理演算子(AND, ORなど)が含まれた複雑な論理式を条件とする場合
- 構文: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関数も他のエクセル関数と同様に、別のシートやブックのセルを参照できます。これにより、マスターデータシートに定義された条件や結果に基づいて、メインのシートで処理を行うといった柔軟な運用が可能です。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートの保存方法と保存場所は?ダウンロード保存や注意点まで解説
Googleスプレッドシートは入力内容が自動保存されるため、保存し忘れの心配がほとんどありません。ただし、バックアップを取りたいときやExcel・PDFなど他の形式で利用したいときには、手動保存やダウンロードが必要です。この記事では、自動保…
詳しくみるスプレッドシートのカラースケールとは?データを色で可視化する方法と活用テクニック
Googleスプレッドシート(Google Sheets)のカラースケール機能を活用することで、数値データを色のグラデーションで視覚的に表現し、パターンや傾向を瞬時に把握できます。本記事では、カラースケールの基本概念とメリットから、条件付き…
詳しくみるスプレッドシートにラジオボタンを設置するには?代替手段で単一選択するテクニック
Googleスプレッドシート(Google Sheets)でアンケートフォームや入力画面を作成する際、複数の選択肢から一つだけを選ぶラジオボタンを使いたいと考える場面もあるでしょう。しかし、残念ながらスプレッドシートには、HTMLフォームや…
詳しくみるエクセル(Excel)を開くのが遅い!原因と調べ方、軽くする対策を徹底解説
エクセル(Excel)を使っていると、ファイルを開くのに時間がかかったり、計算がなかなか終わらなかったり、セルを移動するだけで固まってしまったりと、動作が重くてイライラした経験は誰にでもあるのではないでしょうか。 この記事では、Excelの…
詳しくみるエクセルで〇の数を数える関数とは?数えられない場合はどうする?
エクセルを使ってデータを分析する際、「〇」といった特定の記号や値を数えたい場合がありますが、そのためには適切な関数を利用することが重要です。この記事では、エクセルで〇の数を数えるための代表的な関数であるCOUNTIF関数やCOUNTIFS関…
詳しくみるスプレッドシートでシートやセルをロック・保護するには?
Googleスプレッドシートで重要なデータを扱う際、誤った編集や意図しない変更を防ぐため、特定のシートやセルを保護したいという場面は多いでしょう。特にチームで共同作業を行う場合や、計算式を含む重要な領域を保護したい場合には、シートや範囲の保…
詳しくみる



