ExcelのIFS関数の使い方|IFネストを卒業して複数条件をスッキリ書く方法

スポンサーリンク

「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関数一覧」もあわせてどうぞ。

タイトルとURLをコピーしました