Excel関数 逆引き集 | ネストIFを簡潔に → IFS

Excel VBA Excel
スポンサーリンク

概要

「IF を 3 段、4 段と重ねていたら、式が長くなって読めない…」
「条件が増えるたびにカッコが増えて、どこがどこだか分からない…」
「もっとスッキリ書ける方法はないの?」

そんなときに ネスト(入れ子)IF を一気に整理してくれる のが
IFS 関数 です。

IFS は、

  • 条件1 → 結果1
  • 条件2 → 結果2
  • 条件3 → 結果3

というように、条件と結果をペアで並べるだけで書けるため、
複雑な IF の入れ子を大幅に簡潔にできます。


IFS の基本

IFS の書式

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

動きはとてもシンプルです。

  1. 上から順に条件をチェック
  2. 最初に TRUE になった条件の結果を返す
  3. どれも TRUE にならないとエラー(#N/A)

つまり、「条件の優先順位を上から書く」 だけで OK です。


ネストIFとの比較

ネストIF(従来の書き方)

点数に応じて「優・良・可・不可」を返す例:

=IF(A2>=80,"優",IF(A2>=60,"良",IF(A2>=40,"可","不可")))

カッコが多く、読みづらいですよね。

IFS(簡潔な書き方)

=IFS(
  A2>=80,"優",
  A2>=60,"良",
  A2>=40,"可",
  TRUE,"不可"
)
  • 条件と結果が横並び
  • カッコが少ない
  • 読みやすい
  • 修正しやすい

IFS の最大のメリットは「見た瞬間にロジックが分かる」ことです。


典型的な使い方:数値の範囲判定

点数で評価を分ける

A2 に点数が入っているとします。

=IFS(
  A2>=80,"A",
  A2>=60,"B",
  A2>=40,"C",
  TRUE,"D"
)
  • 80 以上 → A
  • 60 以上 → B
  • 40 以上 → C
  • それ以外 → D

ネストIFより圧倒的に読みやすいです。


文字列で分岐する

ステータスに応じて表示を切り替える

A2 にステータスが入っているとします。

=IFS(
  A2="未着手","Start",
  A2="進行中","Doing",
  A2="完了","Done",
  TRUE,"不明"
)

複数の文字列条件も IFS ならスッキリ書けます。


数値+文字列の複合条件

売上とステータスで判定する

B2:売上
C2:ステータス

=IFS(
  AND(B2>=1000000, C2="完了"), "優秀",
  AND(B2>=500000,  C2="進行中"), "良好",
  C2="未着手", "要対応",
  TRUE, "その他"
)

ネストIFで書くとカッコだらけになりますが、
IFS なら「条件 → 結果」の並びで読みやすくなります。


IFS を使うときの注意点

どれも TRUE にならないとエラーになる

IFS は「最初に TRUE になった条件の結果を返す」関数ですが、
どの条件も TRUE にならないと #N/A エラー になります。

そのため、最後に

TRUE,"その他"

のような“受け皿”を置くのが安全です。

条件の順番が重要

IFS は上から順に評価するため、
広い条件は下に、厳しい条件は上に書きます。

例:
A2>=60 を上に書いてしまうと、
A2>=80 の判定が無視されてしまいます。


例題

問題1

A2 の点数に応じて、
80以上→「優」、60以上→「良」、40以上→「可」、それ以外→「不可」
と表示する IFS の式を書いてください。

=IFS(
  A2>=80,"優",
  A2>=60,"良",
  A2>=40,"可",
  TRUE,"不可"
)

問題2

A2 のステータスに応じて、
「未着手→Start」「進行中→Doing」「完了→Done」「その他→不明」
と表示する式を書いてください。

=IFS(
  A2="未着手","Start",
  A2="進行中","Doing",
  A2="完了","Done",
  TRUE,"不明"
)

問題3

B2 の売上に応じて、
100万以上→S、50万以上→A、10万以上→B、それ以外→C
と表示する式を書いてください。

=IFS(
  B2>=1000000,"S",
  B2>=500000,"A",
  B2>=100000,"B",
  TRUE,"C"
)

問題4

A2 の値が
0未満→「負」、0→「ゼロ」、0より大きい→「正」
となる IFS の式を書いてください。

=IFS(
  A2<0,"負",
  A2=0,"ゼロ",
  TRUE,"正"
)

問題5

B2 に点数が入っています。
90以上→「特A」、70〜89→「A」、50〜69→「B」、50未満→「C」
と表示する IFS の式を書いてください。

=IFS(
  B2>=90,"特A",
  B2>=70,"A",
  B2>=50,"B",
  TRUE,"C"
)

まとめ

IFS は、ネストIFの悩みを一気に解決してくれる関数です。

  • 条件と結果をペアで並べるだけ
  • カッコが少なく読みやすい
  • 修正しやすい
  • 条件が多いほど効果が大きい

型はこれだけ覚えれば十分です。

=IFS(条件1,結果1, 条件2,結果2, …, TRUE,デフォルト結果)

IF の入れ子で苦しんだ経験があるなら、
IFS を使うだけで Excel の式が驚くほどスッキリします。

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