「スプレッドシートで条件が3つ以上あるとき、IF関数のネストがどんどん深くなって読めなくなる」。こんな悩み、ありませんか?
括弧の数を数えながら修正するのは本当にストレスですよね。条件を1つ追加するだけなのに、数式全体を読み直す必要があります。
そんなときに使えるのが、スプレッドシートのIFS関数です。この記事では構文と基本の使い方から、IF関数との違い、実務での応用パターン、エラー対処法まで丁寧に解説します。
スプレッドシートのIFS関数とは?複数条件分岐の基本
IFS関数(読み方: イフス関数)は、複数の条件を順番に判定し、最初にTRUEになった条件の値を返す関数です。名前の由来はIF関数の複数形で、「IFs(もし〜ならを複数並べる)」という意味です。
たとえば「テストの点数が80点以上ならA、60点以上ならB、それ以外はC」という3段階の評価を考えてみましょう。IF関数のネストだと括弧が入り組んでしまいますが、IFS関数なら条件と値のペアを並べるだけです。
IFS関数でできることをまとめると、次のとおりです。
- 3段階以上の条件分岐をフラットに書ける
- IF関数のネスト(入れ子)を解消して読みやすくする
- 条件の追加や変更がカンタンにできる
- 最大127組の条件と値のペアを指定できる
「IF関数のネスト地獄から脱出する関数」と覚えておくとわかりやすいですよ。
NOTE
IFS関数はGoogleスプレッドシートの全バージョンで使えます。Excelでは2019以降またはMicrosoft 365で対応しています。
IFS関数の書き方(構文・引数)
基本構文
=IFS(条件1, 値1, 条件2, 値2, ..., 条件N, 値N)
条件と値をペアで指定するのがポイントです。条件がTRUEなら対応する値を返し、FALSEなら次の条件に進みます。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 条件1 | 必須 | 最初に判定する条件式(例: B2>=80) |
| 値1 | 必須 | 条件1がTRUEのときに返す値 |
| 条件2, 値2 | 省略可 | 2番目以降の条件と値のペア |
| … | 省略可 | 最大127組まで追加可能 |
TIP
引数は必ず偶数個で指定します。条件だけ書いて値を省略すると、構文エラーになるので注意してください。
IFS関数の基本的な使い方
ここでは、テストの点数をA・B・Cの3段階で評価する例を使って基本をマスターしましょう。
サンプルデータ
| A | B | C | |
|---|---|---|---|
| 1 | 名前 | 点数 | 評価 |
| 2 | 田中 | 85 | (ここに数式を入力) |
| 3 | 佐藤 | 72 | |
| 4 | 鈴木 | 55 | |
| 5 | 高橋 | 90 |
数式の入力
セルC2に次の数式を入力します。
=IFS(B2>=80, "A", B2>=60, "B", TRUE, "C")
この数式は次のように動作します。
- B2が80以上なら「A」を返す
- B2が60以上なら「B」を返す
- どちらでもなければ「C」を返す(TRUEで受け取る)
田中さんの点数は85なので、最初の条件 B2>=80 がTRUEになり、「A」が返ります。
結果
| A | B | C | |
|---|---|---|---|
| 1 | 名前 | 点数 | 評価 |
| 2 | 田中 | 85 | A |
| 3 | 佐藤 | 72 | B |
| 4 | 鈴木 | 55 | C |
| 5 | 高橋 | 90 | A |
ポイントは最後の条件にTRUEを指定することです。これはIF関数のFALSE値(どの条件にも合致しない場合の値)に相当します。TRUEを省略すると、すべての条件がFALSEの場合に#N/Aエラーになってしまいますよ。
NOTE
IFS関数は上から順番に条件を評価して、最初にTRUEになった時点で処理を終了します。条件の順番が結果に影響するので、判定したい順に並べてくださいね。
IFS関数の実践的な使い方・応用例
応用1: 売上ランクの自動判定
営業成績を4段階で自動分類する例です。
Before(手作業): 売上データを見ながら1行ずつランクを手入力
After(IFS関数で自動化):
=IFS(B2>=1000000, "S", B2>=500000, "A", B2>=200000, "B", TRUE, "C")
100万円以上はSランク、50万円以上はAランク、20万円以上はBランク、それ以外はCランクです。条件は大きい値から順番に並べるのがコツですよ。
小さい値から並べると、たとえば100万円の売上でも B2>=200000 が先にTRUEになってしまい、Bランクと判定されてしまいます。
応用2: AND関数・OR関数との組み合わせ
IFS関数の条件にAND関数やOR関数を組み合わせることもできます。AND関数(読み方: アンド関数)は複数条件をすべて満たすか判定する関数です。OR関数(読み方: オア関数)は複数条件のいずれかを満たすか判定します。
たとえば「部署が営業で、かつ売上50万円以上なら”MVP候補”」と判定する例です。
=IFS(AND(A2="営業", B2>=500000), "MVP候補", AND(A2="営業", B2>=200000), "優秀", TRUE, "-")
この数式では、AND関数で2つの条件を同時に判定しています。「営業部で売上50万以上」ならMVP候補です。「営業部で売上20万以上」なら優秀、それ以外は「-」を返します。
応用3: 文字列の判定
IFS関数は数値だけでなく、文字列の条件判定にも使えます。
=IFS(A2="完了", "対応不要", A2="進行中", "フォロー", A2="未着手", "要アサイン", TRUE, "確認必要")
ステータス列の値に応じて次のアクションを自動で表示する使い方です。タスク管理シートで活用してみてください。
IFS関数でよくあるエラーと対処法
IFS関数を使うときによく遭遇するエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #N/A | すべての条件がFALSEになった | 最後の条件に TRUE, "デフォルト値" を追加する |
| 構文エラー(数式の解析エラー) | 引数が奇数個(条件に対応する値がない) | 条件と値がペアになっているか確認する |
| #VALUE! | 条件式がTRUE/FALSEを返さない | 条件式に比較演算子(=, >, <など)が含まれているか確認する |
| #REF! | 参照先のセルが削除された | 数式内のセル参照を修正する |
| #ERROR! | 数式の書き方が正しくない | カンマの位置やダブルクォーテーションの閉じ忘れを確認する |
| 意図しない結果 | 条件の順番が間違っている | 条件を大きい値(優先度の高い方)から並べ直す |
#N/Aエラーの対処法
最もよくあるエラーがこの#N/Aです。IFS関数はどの条件にもTRUEにならないと#N/Aを返す仕様です。
=IFS(B2>=80, "A", B2>=60, "B")
この数式だと、60点未満の場合に#N/Aエラーが出ます。最後に TRUE, "C" を追加して対処しましょう。
=IFS(B2>=80, "A", B2>=60, "B", TRUE, "C")
条件の順番による意図しない結果
IFS関数でもう1つ注意したいのが、条件の並び順です。
=IFS(B2>=60, "B", B2>=80, "A", TRUE, "C")
この数式だと、85点でも B2>=60 が先にTRUEになるため「B」と判定されてしまいます。大きい値の条件を先に書くのが鉄則ですよ。
IFS関数とIF関数・SWITCH関数の違い・使い分け
IFS関数とIF関数(ネスト)の比較
同じ3段階評価をIF関数のネストとIFS関数で書き比べてみましょう。
IF関数のネスト:
=IF(B2>=80, "A", IF(B2>=60, "B", "C"))
IFS関数:
=IFS(B2>=80, "A", B2>=60, "B", TRUE, "C")
| 比較項目 | IF関数(ネスト) | IFS関数 |
|---|---|---|
| 書き方 | IFの中にIFを入れる | 条件と値のペアを並べる |
| 可読性 | ネストが深くなると低下 | 条件が増えてもフラット |
| 条件追加 | 括弧の位置を慎重に調整 | ペアを追加するだけ |
| デフォルト値 | FALSE値で指定(必ず設定される) | TRUE+値で明示的に設定が必要 |
| 2択の分岐 | シンプルで最適 | 冗長になりがち |
使い分けの目安: 条件が2つまでならIF関数、3つ以上ならIFS関数がおすすめです。IF関数の詳しい使い方は「スプレッドシートのIF関数の使い方」で解説しています。
IFS関数とSWITCH関数の比較
SWITCH関数(読み方: スイッチ関数。特定の値と一致するかで分岐する関数)は「値の一致判定」に特化しています。
SWITCH関数:
=SWITCH(A2, "東京", "関東", "大阪", "関西", "名古屋", "中部", "その他")
IFS関数:
=IFS(A2="東京", "関東", A2="大阪", "関西", A2="名古屋", "中部", TRUE, "その他")
| 比較項目 | IFS関数 | SWITCH関数 |
|---|---|---|
| 判定方法 | 条件式(比較演算子を使える) | 値の完全一致 |
| 範囲条件 | 対応(>=80など) | 非対応 |
| 等値判定 | やや冗長 | スッキリ書ける |
| デフォルト値 | TRUE+値 | 最後の引数 |
使い分けの目安: 「80点以上」のような範囲条件ならIFS関数、「東京」「大阪」のような値の一致判定ならSWITCH関数を使いましょう。
まとめ
この記事ではスプレッドシートのIFS関数について解説しました。ポイントをおさらいしておきましょう。
- IFS関数は条件と値のペアを並べるだけで複数条件の分岐ができる
- 最後の条件にTRUEを指定して、デフォルト値を必ず設定する
- 条件は大きい値(優先度の高い方)から順番に並べる
- 2択の分岐はIF関数、3つ以上の分岐はIFS関数が便利
- 値の完全一致ならSWITCH関数のほうがスッキリ書ける
IFS関数を使えば、IF関数のネストで複雑になっていた数式がぐっと読みやすくなります。ぜひ実務で試してみてくださいね。
