IFS関数について
前回、IF関数のネストで「3段階以上の判定」を扱いました。ただ、ネストが深くなると 数式が読みにくく なりますよね。
=IF(B2>=80, "A", IF(B2>=60, "B", IF(B2>=40, "C", "D")))
括弧が連なって、どこで区切れているのか分かりにくい。
これをスッキリ書けるのが、IFS関数(イフス関数) です。「IF」の複数形、「条件をいくつも並べられる」という意味の関数です。
SUMIFS や COUNTIFS と同じく、「Sが付いたら複数バージョン」というExcelの命名パターンですね。

IFS関数の構文
=IFS(論理式1, 値1, 論理式2, 値2, 論理式3, 値3, ...)

引数ダイアログには、最初は2組しか表示されませんが、カーソルを置くごとに増えていきます。
ここに、論理式と値のペアを好きなだけ並べていけます。最初にTRUEになった論理式の「値」が返る という仕組みです。
たとえば、
=IFS(B2>=80, "A", B2>=60, "B", B2>=40, "C")
これは、
ステップ1:B2 が80以上なら 「A」
ステップ2:そうでなく、B2 が60以上なら 「B」
ステップ3:そうでもなく、B2 が40以上なら 「C」
という流れです。前回のIFネストと同じことを、もっとフラットに書けています。
具体例で見てみる
テストの点数で4段階の評価をつけます。
:::excel
A1=名前
B1=点数
C1=評価
A2=田中
B2=85
C2=★
A3=鈴木
B3=72
A4=佐藤
B4=55
A5=山田
B5=38
A6=高橋
B6=65
:::
セルC2 ★ に次の数式を入れます。
=IFS(B2>=80, "A", B2>=60, "B", B2>=40, "C", B2<40, "D")
下にコピーすると、
- 田中(85) → A
- 鈴木(72) → B
- 佐藤(55) → C
- 山田(38) → D
- 高橋(65) → B
IFのネストよりも、条件が 上から順に並んでいる ので読みやすいですね。
ネストとの比較
同じ判定を、IFネストとIFSで並べて見てみましょう。
IFネスト(前回の書き方)
=IF(B2>=80, "A", IF(B2>=60, "B", IF(B2>=40, "C", "D")))
IFS(今回の書き方)
=IFS(B2>=80, "A", B2>=60, "B", B2>=40, "C", B2<40, "D")
IFSのほうが、条件と値のペアが横に並ぶ だけなので、見通しが良くなります。条件が増えても、ペアを末尾に追加するだけ。実務では IFS のほうが圧倒的に使いやすいです。
引数ダイアログを使うときの注意
引数ダイアログは、最大5項目まで しか画面に表示しません。
それ以上の引数ボックスを表示する場合は、ダイアログ内をスクロール して、6つ目以降の入力欄を表示する必要があります。

慣れてくれば、直接セルに入力するほうが早いです。引数ダイアログは「最初のうち」「条件の整理がしたいとき」に活用しましょう。
「TRUE」で最後を強制的に抜ける
IFS関数には、ひとつ実用的なテクニックがあります。
先ほどの例で、最後の条件 B2<40, "D" の部分。これは「40未満ならD」という条件を、わざわざ書いています。しかし実は、ここを TRUE, "D" と書く書き方があります。
=IFS(B2>=80, "A", B2>=60, "B", B2>=40, "C", TRUE, "D")
これはどういう意味かというと、「どの条件にも当てはまらなかった場合は、強制的にここで『D』を返す」ということです。
IFS関数は「最初にTRUEになった論理式の値を返す」と説明しました。論理式の場所に TRUE をそのまま書くと、その行は 必ず成立する ことになるので、上から順に評価してきて、どれにも引っかからなかったケースは、最後にここで必ず受け止められます。
つまり、
- 80以上 → A(ここで終わる)
- 60以上 → B(ここで終わる)
- 40以上 → C(ここで終わる)
- それ以外 → 最後の TRUE で必ず引っかかる → D
「どの条件にも当てはまらないケースの受け皿」として、最後に TRUE を置く ── これは IFS のお決まりのパターンです。「それ以外」を表現するイディオムだと覚えてください。
TRUE を入れないとどうなる?
最後に TRUE を入れず、また B2<40 のような条件も書かなかった場合、どの条件にも該当しないと #N/A(該当なし)エラー が返ります。
=IFS(B2>=80, "A", B2>=60, "B") ← 60未満は #N/A になる
エラーが出ると見た目が悪く、後続の集計にも影響します。だから、「それ以外」のケースを必ず受け止める ように、TRUE を最後に入れておくのが安全です。
「IFS関数の最後は TRUE で締める」 ── これは実務での鉄則です。
ちょっとした実務シーン
1. 年齢層の分類
=IFS(B2<20, "10代", B2<30, "20代", B2<40, "30代", B2<50, "40代", TRUE, "50代以上")
最後の TRUE が「50歳以上ぜんぶ」を受け止めています。
2. 売上ランクの判定
=IFS(B2>=1000000, "S", B2>=500000, "A", B2>=100000, "B", TRUE, "C")
10万未満は全部「C」に分類。
3. 部署別の特別手当
=IFS(B2="営業部", 50000, B2="開発部", 40000, B2="人事部", 30000, TRUE, 0)
該当しない部署は「0円」(手当なし)として返します。数値を返す ケースでも、まったく同じように使えます。
IF / IFネスト / IFS の使い分け
LEVEL 5でここまで学んだ3つの書き方の使い分けです。
| 状況 | 使う関数 |
|---|---|
| 条件が1つ(2分岐) | IF |
| 条件に AND/OR を絡める | IF + AND/OR |
| 条件が複数で、段階的な判定 | IFS |
「シンプルなIF」「条件を組み合わせるIF+AND/OR」「多段階のIFS」。場面に応じて使い分けてください。
まとめ
- IFS関数で 多段階の判定 をスッキリ書ける
- 構文:=IFS(論理式1, 値1, 論理式2, 値2, ...)
- 最初にTRUEになった論理式の値が返る
- 最後に TRUE, "○○" を入れて「それ以外」を受け止めるのが定番
- TRUEを入れないと #N/A エラーになることがある
次回は、そのエラーを処理する IFERROR関数 です。エラーが出たときに、見た目をきれいに整える方法を学びます。
ショートカット
※このレッスンに対応するショートカットはありません。