- 作成日 : 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関数も他のエクセル関数と同様に、別のシートやブックのセルを参照できます。これにより、マスターデータシートに定義された条件や結果に基づいて、メインのシートで処理を行うといった柔軟な運用が可能です。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルのグループ化とは?使い方やショートカットの解説
エクセルには、多くの機能が備わっていますが、その中でも「グループ化」は特に便利な機能のひとつです。グループ化を活用することで、データの整理や視覚の強化を図ることができ、大量の情報を扱う際に煩雑さを軽減します。この記事では、エクセルのグループ…
詳しくみるエクセルで斜線を入れる方法・消す方法まとめ
エクセルを利用していると、時には斜線を使って情報を整理したい場合があります。斜線は、特定のデータを強調したり、セルの内容を分けたりするのに適した方法です。本記事では、エクセルで斜線を入れる方法や消す方法、さらには複数のセルに斜線を加えたり、…
詳しくみる顧客管理の無料Excel(エクセル)テンプレート!作り方やカスタマイズを解説
顧客管理を効率化したいけれど、費用は抑えたいとお考えの場合、Excelでの顧客管理が役立ちます。テンプレートを使えば、作成する時間も効率化され、顧客情報を一元管理できるようになります。この記事では、Excelを使った顧客管理表の作り方、必要…
詳しくみるWEEKNUM関数とは?使い方や月曜始まり、週の基準設定を解説
Excelで日付データを扱っていると、「この日付が年の何週目にあたるのか」を知りたい場面もあるでしょう。ここで役立つのが、ExcelのWEEKNUM(ウィークナム)関数。 日付からその年の「週番号」を自動で算出でき、曜日単位ではなく週単位で…
詳しくみるエクセルで偏差値を簡単に求める方法を解説
エクセルを活用して偏差値を求めるのは、意外と簡単です。データの分析や成績の評価に役立つこの方法をマスターすれば、迅速に必要な情報を得られるようになります。偏差値は、試験や調査結果の平均からの偏りを示す指標であり、特定の数値によって他のデータ…
詳しくみるエクセルで電話番号の「0」が消える!原因と一括設定テクニック
エクセルに電話番号を入力すると、先頭の「0」が勝手に消えてしまって困った経験はありませんか?これは、エクセルが数字データを自動的に「数値」として認識し、数学的な意味を持たない先頭のゼロを省略してしまうために起こります。 この記事では、なぜ電…
詳しくみる