IFS関数で複数条件分岐をすっきり書く方法

「もし90点以上ならA、80点以上ならB、それ以外はC」のように条件が3つ以上に分かれる判定を組みたいとき、結論から言うとIFS関数を使えば、IFのネスト(入れ子)をせずに条件と結果のペアを並べるだけですっきり書けます。この記事では基本の書き方、従来のネストIFとの違い、TRUEを使った「それ以外」の受け皿の作り方まで解説します。

目次

IFS関数で複数条件分岐を書く基本の書き方

基本の形は次の通りです。

=IFS(条件1,結果1,条件2,結果2,条件3,結果3,...)

「条件1が成立すれば結果1」「条件1が不成立で条件2が成立すれば結果2」というように、先頭から順番に条件を判定し、最初に成立した条件の結果だけを返す関数です。条件と結果を交互に並べていくだけなので、IFを何重にも入れ子にする必要がありません。

なぜネストIFではなくIFSなのか

従来はIF関数の中に別のIFを入れ子にして分岐を増やす書き方が一般的でした。

=IF(B2>=80,"A",IF(B2>=50,"B","C"))

条件が2〜3個程度なら読めますが、分岐が4つ、5つと増えるとカッコの対応が追いづらくなり、後から条件を1つ挿入したいときも、どのIFの中に入れるべきか分かりにくくなります。IFSは条件と結果を並べるだけなので、分岐が増えても数式の構造がフラットなまま保てるのが利点です(Excel 2019・Microsoft 365以降で利用可能)。

具体例:点数から評価(A・B・C)を判定する

次のようなテスト結果の表(A1:B6)があるとします。A列が氏名、B列が点数です。

A(氏名) B(点数)
2 佐藤 92
3 鈴木 68
4 田中 45
5 山本 75
6 高橋 30

B列の点数をもとに、80点以上は「A」、50点以上は「B」、それ未満は「C」と評価したい場合、A列=氏名、B列=点数のこの表に対して、次のように書きます。

=IFS(B2>=80,"A",B2>=50,"B",TRUE,"C")

B2(佐藤の点数92)は最初の条件「80以上」に一致するため「A」が返ります。B3(鈴木の68)は「80以上」には該当せず、次の「50以上」に一致するため「B」になります。B6(高橋の30)はどちらの条件にも一致しないため、最後の「TRUE」(=それ以外すべて)に該当し「C」が返ります。

「それ以外」の受け皿としてTRUEを使う

IFSにはIF関数の第3引数のような「それ以外はこうする」という専用の書き方がありません。代わりに、最後の条件にTRUEを指定すると、それまでのどの条件にも当てはまらなかった場合の受け皿として機能します。この最後のTRUE,”C”を書き忘れると、どの条件にも一致しない値が出たときに次に説明するエラーになるため、分岐の抜け漏れを防ぐ意味でも入れておくと安全です。

よくあるエラー・注意点

  • #N/Aエラーになる: すべての条件に一致しない値があると、IFSは#N/Aエラーを返します。上記のTRUEのような「それ以外」の受け皿を必ず用意しておきましょう。
  • 条件の順番が結果を左右する: IFSは先頭から順に判定し、最初に成立した条件で確定します。例えば「B2>=50」を「B2>=80」より先に書いてしまうと、92点でも先に50以上の条件に一致してしまい「A」ではなく「B」が返ってしまいます。条件は厳しい方(範囲が狭い方)から先に並べるのが基本です。
  • 古いExcelでは使えない: IFSはExcel 2019以降・Microsoft 365で追加された関数です。それより古いバージョンで開くと#NAME?エラーになるため、共有先の相手の環境にも注意が必要です。

まとめ

IFS関数は条件と結果のペアを並べるだけで多分岐の判定を組めるため、ネストIFで起きがちなカッコの対応ミスを防ぎ、あとから条件を追加する際の見通しも良くなります。複数条件で件数や合計を集計したい場合はCOUNTIFSで複数条件を満たすセルの個数を数える方法、エラーへの備え方はVLOOKUPとIFERRORを組み合わせてエラー表示を防ぐ方法で紹介している考え方が参考になります。条件付き集計の代表例として条件付きで中央値(MEDIAN)を計算する方法もあわせてご覧ください。

目次