スプレッドシートのIFS関数の使い方|複数条件分岐をスッキリ書く方法

スポンサーリンク

「スプレッドシートで条件が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段階で評価する例を使って基本をマスターしましょう。

サンプルデータ

 ABC
1名前点数評価
2田中85(ここに数式を入力)
3佐藤72 
4鈴木55 
5高橋90 

数式の入力

セルC2に次の数式を入力します。

=IFS(B2>=80, "A", B2>=60, "B", TRUE, "C")

この数式は次のように動作します。

  1. B2が80以上なら「A」を返す
  2. B2が60以上なら「B」を返す
  3. どちらでもなければ「C」を返す(TRUEで受け取る)

田中さんの点数は85なので、最初の条件 B2>=80 がTRUEになり、「A」が返ります。

結果

 ABC
1名前点数評価
2田中85A
3佐藤72B
4鈴木55C
5高橋90A

ポイントは最後の条件に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関数のネストで複雑になっていた数式がぐっと読みやすくなります。ぜひ実務で試してみてくださいね。

この記事で紹介した関数・関連記事

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