Excelでデータを整理しているとき、「もし〇〇ならA、△△ならB、それ以外ならC」というように、複数の条件で結果を分けたい場面は多いですよね。
最初はシンプルなIF関数で十分ですが、条件が3つ、4つと増えてくると、数式の中にさらにIF関数を書き込む「入れ子(ネスト)」という状態になります。しかし、これを繰り返すとカッコだらけの複雑な数式になり、「どこで間違えたのかわからない」「修正するのが怖い」という状況に陥りがちです。
そんな悩みを解決するために登場したのが「IFS(イフス)関数」です。今回は、IF関数の入れ子とIFS関数の違いについて、条件が増えたときにどちらを使うべきか、具体的な書き方とともに分かりやすく解説します。
IF関数の「入れ子(ネスト)」とは?
まず、従来のIF関数で複数条件を扱う方法である「入れ子(ネスト)」についておさらいしましょう。
IF関数は本来、「論理式(条件)」「真の場合(条件に一致したとき)」「偽の場合(条件に一致しなかったとき)」の3つの要素で構成されます。しかし、条件が3分岐以上になる場合は、この「偽の場合」の中に、さらに別のIF関数を組み込む必要があります。これが「入れ子(ネスト)」と呼ばれる構造です。
入れ子構造の具体例
たとえば、テストの点数に応じて「0〜30点はD」「31〜60点はC」「61〜100点はB」のように分けたい場合、数式は以下のようになります。
`=IF(点数<=30, "D", IF(点数<=60, "C", "B"))`
この式では、1つ目のIF関数で「30点以下か」を判定し、そうでなかった(偽だった)場合に、2つ目のIF関数で「60点以下か」を判定しています。
入れ子で条件が増えたときのデメリット
条件が2〜3個程度であれば問題ありませんが、さらに条件が増えると以下のような問題が発生します。
- カッコの数が管理しにくい
IF関数の数だけ、数式の末尾に閉じカッコ「)」を付ける必要があります。条件が10個あればカッコも10個必要になり、入力中に数を間違えてエラーになることが増えます。
- 構造が把握しづらい
「条件」→「真」→「さらに条件」→「真」……という階層構造になるため、後から数式を見たときに、どの条件がどこに対応しているのかを判別するのが難しくなります。
- メンテナンス性が低い
途中の条件を変更したり、新しい条件を追加したりする場合、カッコの位置を正確に調整しなければならず、修正ミスが起きやすくなります。
IFS関数で条件分岐をシンプルにする
こうした「ネスト地獄」を解消するために導入されたのがIFS関数です。IFS関数を使えば、複数の条件を「条件1, 結果1, 条件2, 結果2…」と横並びに記述できるため、数式が非常にすっきりとまとまります。
IFS関数の基本構造
IFS関数の構文は以下の通りです。 `=IFS(論理式1, 値1, 論理式2, 値2, …, 論理式127, 値127)`
IF関数のように「偽の場合」を何度も書く必要はなく、単純に「この条件ならこの値」というペアを並べていくだけで完結します。最大127組まで指定可能であるため、実務上のほとんどのケースをカバーできます。
IFS関数への書き換え例
先ほどの点数判定の例をIFS関数で書き換えると、以下のようになります。
`=IFS(点数<=30, "D", 点数<=60, "C", TRUE, "B")`
このように、関数が1回で済むため、視覚的に非常に理解しやすくなります。
IF入れ子とIFS関数の決定的な違い
使い分けを判断するために、両者の主な違いを整理してみましょう。
| 比較項目 | IF関数の入れ子(ネスト) | IFS関数 |
|---|---|---|
| 構造 | 階層構造(入れ子状) | 並列構造(ペアの羅列) |
| 記述量 | 条件が増えるほどIFとカッコが増える | 条件と結果のペアを増やすだけで済む |
| 可読性 | 低い(複雑になりやすい) | 高い(直感的に分かりやすい) |
| 保守性 | 修正や追加に時間がかかる | 追加や変更が容易 |
| 対応バージョン | すべてのバージョンで利用可能 | Excel 2019以降 / Microsoft 365など |
最大のメリットは「可読性」と「保守性」の向上です。自分だけが使うファイルならまだしも、チームで共有するファイルの場合、IFS関数で書かれている方が他の人が意図を理解しやすく、ミスを防ぐことにつながります。
IFS関数を使う際の3つの重要ポイント
便利に使えるIFS関数ですが、正しく動作させるためには知っておくべきルールがあります。
1. 条件は「厳しい順」に並べる
IFS関数は、左側から順番に条件を判定し、「最初に合致した条件」の結果を返して終了します。一度条件に合致すると、それより右側にある条件は無視されます。
そのため、数値の範囲を判定する場合は、必ず条件が厳しい(限定的な)順に並べる必要があります。
- 正しい例(厳しい順):
「90点以上ならA」「80点以上ならB」「60点以上ならC」 この順で書けば、95点の人は最初に「90点以上」に合致し、正しく「A」が返ります。
- 間違いやすい例(緩い順):
「60点以上ならC」「80点以上ならB」「90点以上ならA」 この順で書くと、95点の人でも最初に「60点以上」に合致してしまうため、結果は「C」になってしまいます。
2. 「それ以外(偽の場合)」の処理は「TRUE」で設定する
IF関数には標準で「偽の場合」という引数がありましたが、IFS関数にはそれがありません。すべての条件に合致しなかった場合、そのままではエラー(#N/A)が表示されてしまいます。
これを防ぐためには、数式の最後に「TRUE」という条件を設定します。
`=IFS(条件1, 結果1, 条件2, 結果2, TRUE, 「それ以外の場合の結果」)`
「TRUE」は常に真となるため、ここまでの条件に一つも当てはまらなかったデータがすべてこの「受け皿」に入ることになります。これにより、エラーなくデフォルト値を表示させることができます。
3. 利用可能なExcelバージョンを確認する
IFS関数は比較的新しい関数です。Microsoft 365やExcel 2019以降のバージョンでは利用可能ですが、それより古いバージョン(Excel 2016以前など)で作成したファイルを開くと、関数が正しく認識されずエラーが表示されます。
外部にファイルを送る必要がある場合や、社内で古いバージョンが混在している場合は、あえて互換性の高い「IF関数の入れ子」で作成するか、相手のバージョンを確認した上で利用しましょう。
さらに条件が増えて管理しきれないときは?
IFS関数を使っても、条件が10個、20個と増えてくると、数式が長くなりすぎて管理が大変になります。もし条件数が極端に多い場合は、関数だけで解決しようとせず、「テーブル参照方式」への切り替えを検討してみてください。
具体的には、別シートに「条件」と「結果」をまとめた対応表(マスタ)を作成し、VLOOKUP関数やXLOOKUP関数でその表を参照する方法です。
- 関数で書く場合: 数式を直接書き換える必要がある。
- テーブル参照の場合: 表の中身を書き換えるだけで、すべての計算結果が自動的に更新される。
条件が頻繁に変わる場合や、数が多い場合はこちらの方が圧倒的に効率的でミスも少なくなります。
まとめ:条件の数と環境で使い分けよう
条件分岐で迷ったときの判断基準をまとめます。
- 条件が2つまで: シンプルな「IF関数」で十分です。
- 条件が3つ以上あり、最新のExcelを使っている: 視認性の高い「IFS関数」が最適です。
- 古いExcelバージョンとの互換性が必要: 面倒でも「IF関数の入れ子」を利用しましょう。
- 条件が非常に多く、管理を楽にしたい: 「VLOOKUP関数」などで対応表を参照する方法を検討してください。
「数式が複雑になって、自分でも何を書いたか分からなくなった」というときは、IFS関数への書き換えを試してみてください。それだけで、作業効率と安心感が大きく変わるはずです。
ピックアップ記事



