【Excel】ネストから解放!複数の条件をシンプルに判定するIFS関数の使い方と裏ワザ

【Excel】ネストから解放!複数の条件をシンプルに判定するIFS関数の使い方と裏ワザ Excel

「もし○○なら、〇〇。そうでないなら、さらに if…」 複雑な条件分岐が必要なとき、IF関数を何重にも入れ子(ネスト)にして、数式がぐちゃぐちゃになってしまった経験はありませんか?

従来のIF関数ネストは、数式が長くなり、修正や管理が非常に困難でした。 そこで登場したのが、複数の条件を横並びでシンプルに処理できるIFS関数です。

この記事では、IFS関数の基本的な使い方から、IF関数にはない重要な新ルールまで解説します。

IFS関数とは? なぜ「ネスト」が不要なのか

従来の IF関数の問題点

従来のIF関数は、条件が一つ成立しなかった場合、その「偽の場合」に次のIF関数を入れる必要がありました。

  • 例: 4つの評価基準がある場合、IF関数を3回入れ子にする必要があり、数式全体が非常に長く、どこがどの条件なのか判別しづらくなります。

IFS関数の基本

IFS関数は、「論理式と結果」のペアを好きなだけ並べて記述できるため、ネストが不要です。数式が長くなっても、どの条件が何を返すのかが一目瞭然になります。

【対応バージョン】 IFS関数は比較的新しい関数です。以下のバージョンでのみ利用可能です。

  • Excel for Microsoft 365 (サブスクリプション版)
  • Excel 2021
  • Excel 2019

構文

引数(ひきすう)の設定がシンプルになり、論理式と真の場合をセットで記述します。

=IFS(論理式1, 真の場合1, 論理式2, 真の場合2,論理式3, 真の場合3, …, )

IF関数とIFS関数の比較(具体的な使い方)

点数(セルA1)に応じて評価(A, B, C)を判定する例を見てみましょう。

評価条件
A90点以上
B70点以上
Cそれ以外

従来の IF関数(ネストあり)

=IF(A1>=90,”A”,IF(A1>=70,”B”,”C”))

(偽の場合に次のIFが入り、かっこ(())の数が多くなります)

IFS関数(ネストなし)

=IFS(A1>=90,”A”, A1>=70,”B”, TRUE,”C”)

(条件と結果が横並びになり、非常にスッキリします)

IFS関数の重要なルール:優先順位と「TRUE」の役割

IFS関数を使う上で、従来のIF関数にはなかった重要なルールが2つあります。

最初の条件に対応する値を優先する(上から順に判定)

IFS関数は、左から順番に条件(論理式)を判定していきます。最初にTRUEになった時点で、それ以降の条件は無視されます。 そのため、評価基準を設定する際は、厳しい条件(90点以上)から順番に設定していく必要があります。

  • 例: 75点の場合、A1>=70 (70点以上)が先にTRUEになるため、Bが返されます。

「TRUE」は必須の最終条件(新しいルール)

従来のIF関数では、すべての条件が成立しなかった場合に返す値(「偽の場合」)を最後に設定できました。

IFS関数では、それに代わる「すべての条件が満たされなかった場合の最終的な結果」を、最後のペアとして論理式にTRUEを使うことで設定します。

  …, TRUE, 最終結果

  • 論理式にTRUEと入れると、この条件は必ず満たされます。
  • 例: 前述の例での TRUE,"C" がこれにあたり、「それまでの条件がすべてダメだったら、最後に必ずCを返す」という意味になります。

実践:IFS関数で計算

合否の結果を出してみます。

  • 90点以上ならA
  • 70点以上ならB
  • それ以外ならC

手順

  1. 結果を出すセル【C4】をクリックします。
  2. 「関数の挿入」→関数の分類「論理」→「IFS」関数→OKをクリック

3. 論理式1に厳しい条件(90点以上)から順番に設定「B4>=90」 値が真の場合1「A](※ルール①)

4. 論理式2に70点以上「B4>=70」 値が真の場合2「B」

5. 最後の論理式には必ず「TRUE」を使う(※ルール②)

6.下の行が足りないので「スクロール」で下に移動します。

7. 最後の値が真の場合3を「C」

8. 「OK」をクリック

完成

二つのルールを守れば複数の条件をネスト(関数の組み合わせ)しなくてもIFS関数だけで結果がだせます。

IFS関数でエラーが発生する原因と対策

IFS関数で最も多く発生するエラーは、#N/Aエラーです。

エラーが発生する原因

数式内に記述したすべての論理式がFALSEだった場合、IFS関数は返す値を見つけられず、#N/Aエラーを返します。

対策最終条件に必ず「TRUE」を設定する

このエラーを防ぐために、数式の最後に必ず「TRUE, “最終的に返したい値”」というペアを設定してください。

これにより、すべての条件をすり抜けた場合でも、必ずその最終値が返されるため、#N/Aエラーを回避できます。

まとめ

  • IFS関数を使えば、IF関数のネストが不要になり、数式が格段にシンプルになる。
  • 記述は「条件と結果」のペアを横並びに並べるだけ。
  • 判定は上から順番に行われるため、条件の並び順に注意が必要。
  • エラーを防ぐために、最終条件としてTRUEを設定することが必須である。

IFS関数を使いこなして、複雑な条件判定の数式をスッキリさせましょう!

ももねこ

運営者プロフィール

パソコンインストラクターの経験を生かして、シニアの方や初心者の方に、WordやExcelの「できた!」を届けるために活動しています。

ももねこをフォローする