【Excel】SWITCH関数で値ごとに処理を分ける!ExcelのネストIF代替で可読性を高める方法

【Excel】SWITCH関数で値ごとに処理を分ける!ExcelのネストIF代替で可読性を高める方法
🛡️ 超解決

Excelで複数の条件分岐を行いたい場合、IF関数を入れ子にするネストIF関数を使うことがあります。しかし、条件が多くなると数式が複雑になり、読みにくくなるのが難点です。このような場合に役立つのがSWITCH関数です。SWITCH関数を使えば、条件ごとに異なる処理を分かりやすく記述できます。この記事では、SWITCH関数の基本的な使い方から、ネストIF関数との比較、実際の活用例までを解説します。

SWITCH関数を使いこなすことで、Excelの数式作成における可読性が格段に向上します。複雑な条件分岐もスマートに処理できるようになるため、ぜひ習得しておきましょう。

【要点】SWITCH関数で値ごとの処理を効率化する

  • SWITCH関数: 指定した式の値が、定義された値のいずれかに一致するかどうかを評価し、最初の一致に対応する結果を返します。
  • ネストIF関数との比較: SWITCH関数は、複数の条件分岐をよりシンプルに記述できるため、数式の可読性を高めます。
  • 基本的な構文: SWITCH(式, 値1, 結果1, [値2, 結果2], …, [既定値]) の形式で記述します。

ADVERTISEMENT

SWITCH関数の仕組みとネストIF関数との違い

ExcelのSWITCH関数は、ある式の結果を複数の値と比較し、最初の一致した値に対応する結果を返す関数です。これは、IF関数を繰り返し入れ子にするネストIF関数と似た機能を提供しますが、構文が大きく異なります。ネストIF関数は、条件を一つずつ評価していくのに対し、SWITCH関数は、評価対象の式を一度だけ指定し、その結果と複数の候補値を比較します。

この違いにより、SWITCH関数は数式が短くなり、どの値とどの結果が対応しているかが一目で分かりやすくなります。特に、条件分岐の数が多い場合に、ネストIF関数では読解が困難になる傾向がありますが、SWITCH関数はそのような状況で威力を発揮します。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

SWITCH関数の基本的な使い方

SWITCH関数の構文は以下の通りです。

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

各引数の意味は以下の通りです。

  • 式: 評価する対象となる値または数式を指定します。
  • 値1, 値2, …: 式の結果と比較する値です。
  • 結果1, 結果2, …: 式の結果が対応する値と一致した場合に返される結果です。
  • 既定値 (省略可能): 式の結果がどの値とも一致しなかった場合に返される値です。

最初の「式」が評価され、その結果が「値1」と一致すれば「結果1」が返されます。もし「値1」と一致しなければ、「値2」と比較され、一致すれば「結果2」が返されます。これを順番に繰り返し、どの「値」とも一致しなかった場合に、省略されていなければ「既定値」が返されます。

例1: 数値に基づいて処理を分ける

例えば、A1セルの数値が1なら「A」、2なら「B」、3なら「C」を返す場合、SWITCH関数は以下のように記述できます。

=SWITCH(A1, 1, "A", 2, "B", 3, "C")

もしA1セルが1, 2, 3のいずれでもない場合は、この数式では何も返されません。この場合、既定値として例えば「その他」を指定するには、次のようにします。

=SWITCH(A1, 1, "A", 2, "B", 3, "C", "その他")

この数式は、A1セルの値が1, 2, 3のいずれとも一致しない場合に「その他」を返します。

例2: 文字列に基づいて処理を分ける

文字列に対してもSWITCH関数は利用できます。例えば、B1セルの値が「りんご」なら「果物」、「にんじん」なら「野菜」、「牛乳」なら「乳製品」を返す場合、以下のように記述します。

=SWITCH(B1, "りんご", "果物", "にんじん", "野菜", "牛乳", "乳製品")

この場合、B1セルに「りんご」と入力されていれば「果物」が返されます。もしB1セルに「みかん」と入力された場合、定義された値のいずれとも一致しないため、既定値が指定されていなければ空白が返されます。

既定値として「不明」を指定するには、次のようにします。

=SWITCH(B1, "りんご", "果物", "にんじん", "野菜", "牛乳", "乳製品", "不明")

例3: 複数条件を組み合わせる(応用)

SWITCH関数は単独でも強力ですが、他の関数と組み合わせることでさらに応用範囲が広がります。例えば、C1セルの値が「大」かつD1セルの値が「東京」の場合に特定の処理を行いたい場合、直接SWITCH関数で扱うのは難しいです。しかし、IF関数と組み合わせるなどの工夫で対応可能です。

より単純な例として、C1セルの値が「東京」なら「関東」、「大阪」なら「関西」、「福岡」なら「九州」を返し、それ以外なら「その他」とする場合、以下のように記述できます。

=SWITCH(C1, "東京", "関東", "大阪", "関西", "福岡", "九州", "その他")

このように、SWITCH関数は評価対象の「式」に直接値を指定するだけでなく、他の関数で得られた結果を指定することも可能です。例えば、DATE関数で取得した年や月で処理を分けたい場合にも利用できます。

ネストIF関数との比較とSWITCH関数のメリット

ネストIF関数は、条件分岐を行うための基本的な関数です。例えば、A1セルの値が1なら「A」、2なら「B」、3なら「C」を返す場合、ネストIF関数では以下のように記述します。

=IF(A1=1, "A", IF(A1=2, "B", IF(A1=3, "C", "その他")))

この数式は、SWITCH関数の例と同じ結果を返しますが、IF関数が3回入れ子になっています。条件が増えるにつれて、この入れ子は深くなり、数式は読みにくくなります。特に、数式をコピーして後から修正する際に、どのIF関数がどの条件に対応しているのかを把握するのが困難になることがあります。

一方、SWITCH関数を使用すると、上記の例は以下のように簡潔に記述できます。

=SWITCH(A1, 1, "A", 2, "B", 3, "C", "その他")

この数式は、A1セルが評価対象であること、そして「1」なら「A」、「2」なら「B」、「3」なら「C」という対応関係が明確に示されています。このように、SWITCH関数は以下のようなメリットがあります。

  • 可読性の向上: 条件と結果の対応が分かりやすく、数式が短くなるため、全体として理解しやすくなります。
  • 入力の手間削減: IF関数を繰り返すよりも、引数の数が少なくなる場合があります。
  • メンテナンス性の向上: 条件や結果の修正が必要になった際に、どこを編集すればよいかが一目で分かりやすくなります。

ただし、SWITCH関数はExcel 2019およびMicrosoft 365で利用可能な比較的新しい関数です。Excel 2016以前のバージョンでは利用できないため注意が必要です。

ADVERTISEMENT

SWITCH関数が利用できない場合の代替案

SWITCH関数が利用できない古いバージョンのExcelを使用している場合でも、同様の処理を行う方法はいくつかあります。最も一般的なのは、引き続きネストIF関数を使用する方法です。

しかし、条件が非常に多くなる場合は、ネストIF関数は現実的ではありません。そのような場合には、CHOOSE関数やVLOOKUP関数(またはXLOOKUP関数)と組み合わせる方法が有効です。

CHOOSE関数との組み合わせ

CHOOSE関数は、指定した数値に基づいて、引数リストの中から対応する値を選択する関数です。例えば、A1セルの値が1なら「A」、2なら「B」、3なら「C」を返す場合、CHOOSE関数で以下のように記述できます。

=CHOOSE(A1, "A", "B", "C")

このCHOOSE関数は、A1セルの値が1なら2番目の引数「A」、2なら3番目の引数「B」を返します。ただし、CHOOSE関数では「既定値」を指定する機能がありません。そのため、A1セルの値が定義されていない範囲(例えば4以上)の場合、#VALUE!エラーが発生します。このエラーを回避するには、IFERROR関数と組み合わせる必要があります。

=IFERROR(CHOOSE(A1, "A", "B", "C"), "その他")

CHOOSE関数は、数値インデックスに基づいて選択するため、数値条件に適しています。文字列条件の場合は、IF関数などと組み合わせて数値に変換するなどの工夫が必要です。

VLOOKUP関数/XLOOKUP関数との組み合わせ

多数の条件分岐を扱う場合、VLOOKUP関数やXLOOKUP関数を使って、条件と結果を一覧にした参照テーブルを作成し、そこから値を取得する方法が非常に有効です。この方法は、条件が増えても数式自体はシンプルに保て、参照テーブルの管理も容易です。

例えば、以下のような参照テーブルをD1:E4の範囲に作成したとします。

条件値 結果
1 A
2 B
3 C

この参照テーブルを使って、A1セルの値に対応する結果を取得するには、VLOOKUP関数で以下のように記述します。

=VLOOKUP(A1, D1:E4, 2, FALSE)

この数式は、A1セルの値をD1:E4の範囲の1列目で検索し、一致した場合に2列目の値(結果)を返します。最後の引数「FALSE」は、完全一致検索を指定します。A1セルの値が参照テーブルに存在しない場合は#N/Aエラーが発生するため、IFERROR関数で既定値を指定します。

=IFERROR(VLOOKUP(A1, D1:E4, 2, FALSE), "その他")

Microsoft 365やExcel 2021以降では、より高機能なXLOOKUP関数が利用できます。XLOOKUP関数でも同様の処理が可能です。

=XLOOKUP(A1, D1:D4, E1:E4, "その他")

XLOOKUP関数は、検索値、検索範囲、戻り範囲、見つからない場合の既定値を直接指定できるため、IFERROR関数を別途記述する必要がありません。参照テーブル方式は、条件が増えても参照テーブルを更新するだけで済むため、管理が容易な点が大きなメリットです。

SWITCH関数でよくある入力ミスと対処法

SWITCH関数は便利ですが、いくつかの注意点やよくある入力ミスがあります。それらを理解しておくことで、問題を未然に防ぐことができます。

既定値の指定忘れ

SWITCH関数では、既定値を指定しない場合、評価対象の式がどの値とも一致しなかったときに空白(または空文字列)が返されます。意図せず空白が返されると、後続の処理でエラーになったり、データ分析で予期せぬ結果を招いたりする可能性があります。常に、どの値とも一致しない場合の処理を考慮し、必要であれば既定値を明示的に指定しましょう。

例えば、以下は既定値がない場合の例です。

=SWITCH(A1, 1, "A", 2, "B")

A1が1でも2でもない場合、この数式は空白を返します。これを「不明」としたい場合は、以下のように既定値「不明」を追加します。

=SWITCH(A1, 1, "A", 2, "B", "不明")

大文字・小文字の区別

SWITCH関数は、文字列の比較において大文字と小文字を区別します。そのため、「Apple」と「apple」は異なる値として扱われます。

例えば、以下のような場合、

=SWITCH(B1, "apple", "赤い", "orange", "オレンジ色")

B1セルに「Apple」と入力しても、「赤い」とは返されません。もし大文字・小文字を区別せずに処理したい場合は、比較する前に両方の値を統一する必要があります。例えば、EXACT関数で比較するか、UPPER関数やLOWER関数で統一してから比較する方法があります。

=SWITCH(UPPER(B1), "APPLE", "赤い", "ORANGE", "オレンジ色")

このように、UPPER関数でB1セルの値をすべて大文字に変換してから比較することで、大文字・小文字を区別せずに処理できます。

引数の順序の誤り

SWITCH関数の構文は「式, 値1, 結果1, 値2, 結果2, …」の順序で指定します。この「値」と「結果」のペアの順序を間違えたり、「式」を引数のリストの途中に入れてしまったりすると、意図しない結果が返されたり、エラーになったりします。

例えば、以下は誤った記述例です。

=SWITCH(A1, "A", 1, "B", 2, 3) ← 最後の「3」が既定値として解釈されない

これは、A1が「A」なら1、A1が「B」なら2を返しますが、それ以外の場合に何を返すかが定義されていません。もし「3」を既定値にしたかったのであれば、以下のように記述する必要があります。

=SWITCH(A1, "A", 1, "B", 2, 3) ← 正しい記述例

このように、引数の順序を正確に守ることが重要です。数式を入力する際は、Excelのインテリセンス(入力候補表示)を活用すると、構文を理解しやすくなります。

まとめ

SWITCH関数は、Excelで複数の条件分岐を扱う際に、ネストIF関数に代わる強力で分かりやすい選択肢です。そのシンプルで直感的な構文により、数式の可読性とメンテナンス性を大幅に向上させることができます。特に、条件が多くなるほど、そのメリットは顕著になります。

この記事では、SWITCH関数の基本構文、数値や文字列を扱う例、ネストIF関数との比較、そして利用できない場合の代替案としてCHOOSE関数やVLOOKUP/XLOOKUP関数との組み合わせについて解説しました。また、既定値の指定忘れや大文字・小文字の区別といった、よくある入力ミスとその対処法も紹介しました。

SWITCH関数をマスターすることで、より効率的で分かりやすいExcelシートを作成できるようになります。ぜひ、実際の業務で活用してみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】