LEVEL 5 データを整理・抽出する 中級
Lesson 046

IFS関数について

練習用Excelファイル lesson046-practice.xlsx

練習用ファイルは、パソコンからダウンロードしてください。

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関数 です。エラーが出たときに、見た目をきれいに整える方法を学びます。


ショートカット

※このレッスンに対応するショートカットはありません。

次のLessonへ Lesson 047 IFERROR関数について