「IF関数のネストが3段になると、もう何がなんだか分からない……」
Excelで複数の条件分岐を書くとき、こんな経験はありませんか? カッコの対応を間違えてエラーになったり、あとから見返しても条件の意味が読み取れなかったり。 実はExcelには、こうした「IFのネスト地獄」から解放してくれる関数があります。
それが IFS関数 です。 複数の条件をフラットに並べるだけで、ネストなしの分岐処理を実現できます。 この記事では、IFS関数の基本から実務パターン、よくあるエラーの対処法まで丁寧に解説していきますね。
IFS関数とは?IF関数との違いをひとことで
IFS関数(読み方: イフエス)は、複数の条件を上から順に判定して、最初にTRUEになった条件の値を返す関数です。 名前のとおり、IF関数の複数形にあたります。
IF関数との一番の違いは「ネストが不要」なこと。 IF関数で3段階の判定をしようとすると、こうなりますよね。
=IF(A1>=90, "優", IF(A1>=70, "良", IF(A1>=50, "可", "不可")))
これをIFS関数で書くと、こうなります。
=IFS(A1>=90, "優", A1>=70, "良", A1>=50, "可", TRUE, "不可")
カッコのネストがなくなり、条件と結果が一対一で並ぶのでとても読みやすくなります。 「条件が3つ以上になったらIFS関数を検討する」と覚えておくと便利ですよ。
基本構文と引数の意味
IFS関数の構文は次のとおりです。
=IFS(論理式1, 値1, [論理式2, 値2], ...)
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 論理式1 | 必須 | 1つ目の条件(TRUE/FALSEを返す式) |
| 値1 | 必須 | 論理式1がTRUEのときに返す値 |
| 論理式2, 値2 … | 省略可 | 2つ目以降の条件と値のペア(最大127組) |
ポイントは、論理式と値が必ずペアになっていること。 IF関数にある「偽の場合(value_if_false)」という引数はありません。 そのため、すべての条件に当てはまらなかったときの処理は、別の書き方で対応します(後ほど解説しますね)。
使えるバージョン(Excel 2019以降 / Microsoft 365)
IFS関数が使えるのは、Excel 2019以降 または Microsoft 365 です。 Excel 2016以前のバージョンでは #NAME? エラーになります。
もし社内でExcelのバージョンが統一されていない場合は、従来のIFネストを使ったほうが安全です。 共有ファイルを作るときは、相手の環境も確認しておくと安心ですよ。
IFS関数の基本的な使い方
ここからは、実際にIFS関数を使った具体例を見ていきましょう。
3段階判定の例(成績評価)
テストの点数に応じて「優」「良」「可」「不可」を判定する例です。 セルA2に点数が入っているとします。
=IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可", TRUE, "不可")
| A列(点数) | 結果 |
|---|---|
| 95 | 優 |
| 75 | 良 |
| 50 | 可 |
| 30 | 不可 |
IFS関数は条件を上から順番に評価します。 95点なら最初の A2>=90 がTRUEになるので「優」が返ります。 75点なら A2>=90 はFALSE、次の A2>=70 がTRUEなので「良」になります。
「それ以外」はTRUEで受け取る
IFS関数にはIF関数のような「偽の場合」がありません。 すべての条件がFALSEだと、#N/A エラーが返ってしまいます。
これを防ぐために、最後の条件を TRUE にするのが定番テクニックです。
=IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可", TRUE, "不可")
最後の TRUE は「上のどの条件にも当てはまらなければ」という意味になります。 IF関数でいう「偽の場合」の代わりですね。 IFS関数を使うときは、最後にTRUEを入れるのをクセにしておくとエラーを防げますよ。
引数の順番が結果を左右する理由
IFS関数は最初にTRUEになった条件で確定します。 つまり、条件の並び順がそのまま優先順位になります。
たとえば、次の数式を見てください。
=IFS(A2>=50, "可", A2>=70, "良", A2>=90, "優", TRUE, "不可")
この書き方だと、90点でも最初の A2>=50 がTRUEになるので「可」になってしまいます。 正しくは厳しい条件(大きい値)を先に書く必要があります。
=IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可", TRUE, "不可")
「条件は上から優先」という仕組みを意識しておくと、思わぬミスを防げますよ。
IFS × AND関数 / OR関数の組み合わせ
IFS関数の条件部分には、AND関数やOR関数を組み込むことができます。 「〜かつ〜」「〜または〜」の複合条件を表現できるので、実務での活用の幅がぐっと広がります。
AND(〜かつ〜)で複数列を同時チェック
点数(A列)と提出状況(B列)の両方を見て評価を出す例です。
=IFS(
AND(A2>=90, B2="提出済"), "S評価",
AND(A2>=70, B2="提出済"), "A評価",
AND(A2>=50, B2="提出済"), "B評価",
TRUE, "要フォロー"
)
| A列(点数) | B列(提出状況) | 結果 |
|---|---|---|
| 95 | 提出済 | S評価 |
| 80 | 提出済 | A評価 |
| 80 | 未提出 | 要フォロー |
AND関数を使うことで、「点数が90以上 かつ 提出済」のような複合条件を1つの論理式にまとめられます。 提出していなければ点数に関係なく「要フォロー」になる、というロジックも自然に書けますよね。
OR(〜または〜)で広げる条件分岐
勤怠ステータスに応じて区分を振り分ける例です。
=IFS(
OR(A2="欠勤", A2="遅刻"), "要確認",
OR(A2="出勤", A2="テレワーク"), "正常",
TRUE, "未記入"
)
OR関数を使えば、「欠勤 または 遅刻なら要確認」のように、複数の値をまとめて1つの条件として扱えます。 条件ごとに別々の行を書かなくてよいので、数式がコンパクトになりますよ。
実務パターン6選
ここからは、IFS関数が活躍する実務シーンを6パターン紹介します。 そのまま使えるテンプレートとして活用してみてください。
パターン1: 評価・査定ランク付け
売上金額に応じてランクを付ける定番パターンです。
=IFS(C2>=1000000, "Sランク", C2>=500000, "Aランク", C2>=200000, "Bランク", TRUE, "Cランク")
100万以上ならSランク、50万以上ならAランクという具合です。 人事評価やKPI管理にも応用できますよ。
パターン2: 数値の区分分け
残業時間を区分ごとに分類する例です。
=IFS(D2>=80, "要注意", D2>=60, "特別手当", D2>=20, "通常手当", TRUE, "手当なし")
数値の範囲でラベルを振り分ける処理は、IFS関数の得意分野です。
パターン3: 文字列分類
部署名に応じてメッセージを切り替える例です。
=IFS(
F2="営業部", "顧客対応優先",
F2="経理部", "月末処理注意",
F2="総務部", "備品管理確認",
TRUE, "共通事項確認"
)
文字列の完全一致で分岐する場合は、SWITCH関数も候補になります。 ただし「それ以外」をTRUEで拾いたいときは、IFS関数のほうが柔軟に対応できますよ。
パターン4: 日付・期限判定
日付をもとに年度区分を判定する例です。
=IFS(A2<DATE(2025,4,1), "旧年度", A2<DATE(2026,4,1), "当年度", TRUE, "翌年度以降")
DATE関数と組み合わせれば、期限管理やキャンペーン期間の判定にも使えます。
パターン5: 複合条件で複数列参照
3科目の点数を同時にチェックして合否を判定する例です。
=IFS(
AND(B2>=60, C2>=60, D2>=60), "合格",
OR(B2<30, C2<30, D2<30), "不合格(要補講)",
TRUE, "再試験"
)
AND関数とOR関数を混在させることもできます。「全科目60点以上なら合格、1科目でも30点未満なら不合格」というルールも、IFS関数なら1つの数式に収められますよ。
パターン6: IFERRORと組み合わせてエラーを握りつぶさない方法
IFS関数の結果が #N/A になる可能性がある場合、IFERROR関数で一律「エラー」としてしまうのは危険です。 本当のデータ不備を見逃すことにつながります。
おすすめは、IFNA関数でN/Aエラーだけをキャッチする方法です。
=IFNA(IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可"), "判定不能")
IFNA関数なら #N/A だけを処理して、#VALUE! などの想定外エラーはそのまま表示してくれます。 「エラーを握りつぶさず、N/Aだけ拾う」のが安全な使い方ですよ。
IF関数・SWITCH関数との使い分け
条件分岐に使える関数は、IFS以外にもIF関数とSWITCH関数があります。 それぞれ得意なシーンが違うので、使い分けの基準を整理しておきましょう。
IFS関数を選ぶとき
- 条件が3つ以上ある
- 「以上」「未満」のような範囲比較で分岐したい
- 条件にAND/ORを組み込みたい
IFS関数は範囲比較に強く、条件が増えても可読性が落ちにくいのが特徴です。
ネストIFを選ぶとき
- 条件が2つまでのシンプルな分岐
- Excel 2016以前との互換性が必要
- 「TRUE/FALSEの2択」で十分なケース
条件が1〜2つなら、IF関数のほうがシンプルに書けます。 バージョン互換性を重視する場合もIF関数が安全です。
SWITCH関数を選ぶとき
- 特定の値との完全一致で分岐する
- 「1なら月、2なら火、3なら水……」のようなマッピング
SWITCH関数は値の完全一致に特化しています。 「>=」や「<」のような範囲比較には対応していないので注意してください。
| 比較項目 | IFS関数 | IF関数(ネスト) | SWITCH関数 |
|---|---|---|---|
| 条件の数 | 3つ以上に最適 | 1〜2つに最適 | 値の一覧向き |
| 範囲比較 | 対応 | 対応 | 非対応 |
| 完全一致 | 対応 | 対応 | 得意 |
| 可読性(条件多数時) | 高い | 低い(ネスト深い) | 高い |
| 対応バージョン | 2019以降 | 全バージョン | 2019以降 |
迷ったときは「範囲比較ならIFS、完全一致ならSWITCH、2択ならIF」と覚えておくと選びやすいですよ。
もっと詳しく知りたい方は「IF・IFS・IFERROR・IFNAの使い分け」の記事もチェックしてみてください。
よくあるエラーと対処法
IFS関数で発生しやすいエラーと、その原因・対処法をまとめました。
#N/Aエラー
原因: すべての条件がFALSEで、TRUEになる条件が1つもなかった場合に発生します。
対処法: 最後の条件に TRUE を追加して「それ以外」を必ず受け止めるようにしましょう。
× =IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可")
○ =IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可", TRUE, "不可")
IFS関数を書いたら「TRUEで締めているか」を確認するクセをつけておくと安心です。 エラー値の詳細は「Excelエラー値一覧」も参考にしてみてください。
条件の順番ミス
原因: 緩い条件を先に書いてしまい、厳しい条件が評価されないケースです。
× =IFS(A2>=50, "可", A2>=70, "良", A2>=90, "優")
この書き方だと、90点でも A2>=50 が先にTRUEになるので「可」になってしまいます。
対処法: 厳しい条件(大きい値)を先に書きましょう。
○ =IFS(A2>=90, "優", A2>=70, "良", A2>=50, "可", TRUE, "不可")
「上から優先」を意識するだけで、このミスは防げますよ。
そのほかのエラー
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 条件がTRUE/FALSEを返さない式になっている | 論理式を見直す |
| 「引数が少なすぎます」 | 条件と値がペアになっていない | 引数の数が偶数か確認する |
| #NAME? | Excel 2016以前で使用している | バージョンを確認し、IFネストに書き換える |
まとめ
IFS関数は、IF関数のネストをフラットに書き直せる便利な関数です。 この記事のポイントを振り返っておきましょう。
- IFS関数は条件と値のペアを並べるだけで複数条件の分岐ができる
- 「それ以外」を表現するには、最後の条件をTRUEにする
- 条件は上から順に評価されるので、厳しい条件を先に書く
- AND関数やOR関数と組み合わせれば、複合条件も対応できる
- Excel 2019以降 / Microsoft 365で利用可能
IF関数のネストで消耗していた方は、ぜひIFS関数を試してみてください。 数式がスッキリ読みやすくなるのを実感できるはずですよ。
Excel関数の基礎をもっと固めたい方は「Excel関数の基本」、関数を探したい方は「Excel関数一覧」もあわせてどうぞ。

