Excelを使っていると、条件分岐が複数必要になる場面は多いものです。
たとえば、成績に応じて評価を「S・A・B・C・D」と分けたい場合や、売上金額によってランクを細かく設定したい場合など、条件の数が増えれば増えるほど、IF関数だけでは対処が難しくなってきます。
そこで今回の記事では、「【Excel】エクセルのIF関数で複数条件を10個以上設定する(IFS・SWITCH・ネスト上限)方法」というテーマで、Excelの複数条件設定に使えるさまざまな関数や手法をわかりやすく解説していきます。
IFS関数やSWITCH関数の使い方、ネストの上限と回避策など、実務ですぐに役立つ情報をまとめていますので、ぜひ最後までご覧ください。
IF関数の複数条件はIFS・SWITCH・ネストで対応できる
それではまず、IF関数で複数条件を扱う方法の全体像について解説していきます。
ExcelのIF関数は「条件を満たすか・満たさないか」の2択で処理を分岐させる関数です。
しかし、実際の業務では「AならX、BならY、CならZ……」という具合に、10個以上の条件を設定したいケースも少なくありません。
そのような場面で活躍するのが、以下の3つのアプローチです。
複数条件に対応するための主な方法
① IF関数のネスト(入れ子構造)で条件を重ねる
② IFS関数で複数条件をフラットに並べる
③ SWITCH関数で特定の値ごとに処理を振り分ける
それぞれに得意な場面や制限があるため、状況に応じて使い分けることが重要です。
次のセクションから、各方法を詳しく確認していきましょう。
IF関数のネストとは何か・上限はいくつまでか
ネスト(入れ子)とはどういう意味か
続いては、IF関数のネスト構造について確認していきます。
ネストとは、関数の中にさらに別の関数を入れ込む構造のことを指します。
IF関数においては、「偽の場合」や「真の場合」の引数に、再びIF関数を記述する方法がネストに当たります。
たとえば、点数に応じて「優・良・可・不可」を返すような式は以下のように書くことができます。
=IF(A1>=90,”優”,IF(A1>=70,”良”,IF(A1>=50,”可”,”不可”)))
この例では3段階の条件を設定していますが、条件が増えるほどネストが深くなり、数式が非常に読みづらくなっていきます。
ネストの上限は何個まで可能か
Excelにおけるネストの上限は、バージョンによって異なります。
| Excelバージョン | ネストの上限 |
|---|---|
| Excel 2003以前 | 7階層まで |
| Excel 2007以降 | 64階層まで |
Excel 2007以降では最大64階層までネストが可能になっており、理論上は10個以上の条件も設定できます。
ただし、64階層のネストを実際に書くのは現実的ではなく、数式の可読性や保守性が著しく低下するため注意が必要です。
ネストが深くなることで生じる問題点
ネストが深くなると、以下のような問題が発生しやすくなります。
ネストが深くなることで生じる主な問題
・数式が長くなり、どこで条件が分かれているか把握しにくくなる
・括弧の数が増え、閉じ忘れによるエラーが起きやすい
・条件の追加・変更・削除が困難になる
・他のユーザーが数式を見たときに理解しにくい
このような理由から、条件が5個以上になってくる場合は、IFS関数やSWITCH関数の使用を検討するとよいでしょう。
IFS関数で10個以上の複数条件をすっきり書く方法
IFS関数の基本的な使い方
続いては、IFS関数の使い方を確認していきます。
IFS関数はExcel 2019およびMicrosoft 365から使えるようになった関数で、複数の条件を順番に評価し、最初に真となった条件に対応する値を返します。
基本的な構文は以下のとおりです。
=IFS(条件1, 値1, 条件2, 値2, 条件3, 値3, …)
IF関数のようにネストを重ねる必要がなく、条件と値のペアをカンマで区切って並べるだけでよいため、非常に見やすい数式になります。
たとえば、点数に応じて5段階の評価を返す場合は次のように書けます。
=IFS(A1>=90,”S”,A1>=80,”A”,A1>=70,”B”,A1>=60,”C”,A1>=50,”D”,TRUE,”F”)
最後の「TRUE,”F”」は「どの条件にも当てはまらない場合」のデフォルト値として機能します。
IFS関数で10個以上の条件を設定する際の注意点
IFS関数では、最大127組の条件と値のペアを設定できるため、10個以上の条件でも十分対応可能です。
ただし、以下の点には注意が必要です。
| 注意点 | 詳細 |
|---|---|
| 条件の順序 | 上から順に評価されるため、広い範囲の条件を後に書くと意図しない結果になる |
| デフォルト値の設定 | どの条件にも当てはまらない場合にエラーが出るため、最後にTRUEを使う |
| 対応バージョン | Excel 2016以前では使用できないため、バージョン確認が必要 |
古いバージョンのExcelとの互換性が必要な場面では、ネストやSWITCH関数との使い分けを検討しましょう。
IFS関数とネストの書き方を比較してみる
同じ処理をIF関数のネストとIFS関数で書いた場合の違いを比較してみましょう。
【IFネストの場合】
=IF(A1>=90,”S”,IF(A1>=80,”A”,IF(A1>=70,”B”,IF(A1>=60,”C”,IF(A1>=50,”D”,”F”)))))
【IFS関数の場合】
=IFS(A1>=90,”S”,A1>=80,”A”,A1>=70,”B”,A1>=60,”C”,A1>=50,”D”,TRUE,”F”)
IFS関数のほうが条件と結果の対応が一目でわかりやすく、条件が増えても数式が横に伸びるだけで構造が崩れない点が大きなメリットです。
SWITCH関数で特定の値に対応した複数条件を設定する方法
SWITCH関数の基本的な使い方
続いては、SWITCH関数について確認していきます。
SWITCH関数は、指定した値と一致するケースを探し、対応する結果を返す関数です。
IFS関数が「条件式(不等号なども使える)」を評価するのに対し、SWITCH関数は「値の一致」を見るため、使い分けが重要になります。
基本的な構文は以下のとおりです。
=SWITCH(式, 値1, 結果1, 値2, 結果2, …, デフォルト値)
たとえば、曜日の数字(1〜7)に対して曜日名を返す場合は次のように書けます。
=SWITCH(WEEKDAY(A1,2),1,”月”,2,”火”,3,”水”,4,”木”,5,”金”,6,”土”,7,”日”,”不明”)
このようにSWITCH関数は、特定の値に対して決まった返り値を設定したいケースに非常に向いています。
SWITCH関数とIFS関数の使い分けポイント
SWITCH関数とIFS関数はどちらも複数条件に対応できますが、得意な場面が異なります。
| 比較項目 | IFS関数 | SWITCH関数 |
|---|---|---|
| 条件の種類 | 比較式(大小・以上・以下なども可) | 値の完全一致のみ |
| 得意な場面 | 範囲による条件分岐 | 特定の値ごとの振り分け |
| 可読性 | 条件が多いと長くなる | 値と結果の対応が見やすい |
| デフォルト値 | TRUEを最後に置く | 最後の引数として記述 |
点数や売上金額などの「範囲での条件分岐」はIFS関数、コードや種別など「決まった値への対応」はSWITCH関数を選ぶのが賢明です。
SWITCH関数で10個以上の条件を設定する場合の書き方
SWITCH関数でも多くの条件を設定できます。
たとえば、都道府県コードに対応した地方名を返す処理のように、10個以上の値を列挙する場合でも、以下のように書けます。
=SWITCH(A1,
1,”北海道”,
2,”青森”,
3,”岩手”,
4,”宮城”,
5,”秋田”,
6,”山形”,
7,”福島”,
“その他”)
SWITCH関数は最大126組の値と結果のペアを設定できるため、10個以上の条件でも問題なく対応可能です。
条件の数が多い場合でも、値と結果が交互に並ぶ構造のおかげで、どの値にどの結果が対応しているかが一目でわかりやすいのが特徴といえるでしょう。
まとめ
今回は「【Excel】エクセルのIF関数で複数条件を10個以上設定する(IFS・SWITCH・ネスト上限)方法」について解説しました。
IF関数のネストは手軽に複数条件を設定できる一方、条件が増えるにつれて可読性が落ちるという大きなデメリットがあります。
Excel 2007以降であれば最大64階層のネストが可能ですが、実務での使用は5〜6階層程度にとどめておくのが現実的な選択です。
10個以上の複数条件を設定したい場合は、IFS関数またはSWITCH関数の活用が強くおすすめできます。
条件が「範囲・大小比較」であればIFS関数、条件が「特定の値への一致」であればSWITCH関数が最適な選択肢です。
それぞれの関数の特性を理解したうえで使い分けることで、数式の可読性・保守性・実用性が大幅に向上します。
今回の内容を参考に、Excelの条件分岐をより効率的に活用してみてください。