【Googleスプレッドシート】IFとIFSの違いと使い分け!複数条件の判定をシンプルに書く

【Googleスプレッドシート】IFとIFSの違いと使い分け!複数条件の判定をシンプルに書く
🛡️ 超解決

複数の条件に応じて表示する値を変えたい場面は多いです。IF関数を入れ子にすると式が長くなり、どこで何を判定しているか分かりにくくなります。そこでGoogleスプレッドシートにはIFS関数が用意されています。この記事ではIF関数とIFS関数の違いを理解し、状況に応じた使い分けができるようになることを目指します。

具体的には、両関数の構文や動作の違いを比較し、複数条件を扱う際のベストプラクティスを紹介します。また、IFS関数を使う上での注意点や、IF関数の方が適しているケースも解説します。

【要点】IFとIFSの違いと使い分けのポイント

  • IF関数: 条件が1つまたは2つの分岐に適しています。入れ子にすれば複数条件も書けますが、可読性が下がります。
  • IFS関数: 複数の条件を順に評価し、最初に真となった値を返します。3つ以上の分岐をシンプルに記述できます。
  • 使用分けの基準: 分岐が2つまでならIF、3つ以上ならIFSを選ぶと良いです。ただしIFSはすべて偽の場合にエラーとなるので、最後にTRUEを指定してデフォルト値を設定します。

ADVERTISEMENT

IF関数とIFS関数の構文と動作の違い

まずはそれぞれの関数の基本的な書き方と、どのように条件を判定するのかを確認します。

IF関数の基本

IF関数は次のように記述します。

=IF(論理式, 値が真の場合, 値が偽の場合)

論理式がTRUEなら第2引数、FALSEなら第3引数を返します。3つの引数は必須です。複数条件を扱うにはIF関数の中に別のIF関数を入れます。

IFS関数の基本

IFS関数は次のように記述します。

=IFS(論理式1, 値1, 論理式2, 値2, ..., 論理式127, 値127)

上から順に論理式を評価し、最初にTRUEとなったペアの値を返します。すべての論理式がFALSEの場合、#N/Aエラーが発生します。引数は最大127組まで指定できます。

両関数の動作の違い

IF関数は条件が1つだけで二択を表現するのに向いています。一方、IFS関数は複数の条件をフラットに並べられるため、3つ以上の分岐をスマートに書けます。IF関数の入れ子では条件を階層的に書く必要がありますが、IFSは条件を優先順位の高い順に並べるだけで良いです。

IF関数とIFS関数の具体的な使い分け手順

ここでは実際のデータを使って、IFとIFSをどのように使い分けるかを説明します。

IF関数で二択を表現する

  1. 基本的なIF式を入力する
    セルA1に点数が入っている場合、合格ラインが70点以上なら「合格」、それ以外は「不合格」と表示するには「=IF(A1>=70, “合格”, “不合格”)」と入力します。
  2. 条件が2つだけの場合はIFが適切
    このように分岐が2つだけで済むなら、IF関数で十分です。IFSを使う必要はありません。

IFS関数で複数条件をスマートに書く

  1. IFS関数を入力する
    例えば点数に応じてA〜Fの評価を付けたい場合、セルB1に「=IFS(A1>=90, “A”, A1>=80, “B”, A1>=70, “C”, A1>=60, “D”, A1<60, "F")」と入力します。上から順に評価され、最初に真になった段階で値が返ります。
  2. デフォルト値を設定する
    上記の例では最後の条件「A1<60」がデフォルトの役割を果たしています。すべての条件が偽になる場合は最後にTRUEを指定します。「=IFS(..., TRUE, "該当なし")」のようにします。
  3. IFS関数の利点を実感する
    同じことをIFの入れ子で書くと「=IF(A1>=90, “A”, IF(A1>=80, “B”, IF(A1>=70, “C”, IF(A1>=60, “D”, “F”))))」となります。括弧の対応が煩雑で、誤りやすくなります。

IFとIFSを組み合わせるテクニック

時にはIFとIFSを併用するとさらに柔軟になります。例えば、まずIFで大まかな区分を決め、その中でIFSで細分化する方法です。

  1. IFの中でIFSを使う
    「=IF(条件, IFS(複数条件), デフォルト値)」のように記述します。これにより、ある条件が真の時だけ複数分岐を行えます。
  2. 実例
    合否判定と成績評価を一緒に行う場合「=IF(A1>=70, IFS(A1>=90, “優”, A1>=80, “良”, TRUE, “可”), “不可”)」とします。70点未満は「不可」、70点以上はさらに細分化されます。

IFS関数を使うときの注意点とよくある間違い

IFS関数は便利ですが、いくつか注意すべきポイントがあります。

すべての条件が偽の時にエラーが発生する

IFS関数はどの条件も満たさない場合、#N/Aエラーが返ります。必ず最後にTRUEを条件としたデフォルト値を設定するか、IFERROR関数でエラーを処理してください。「=IFERROR(IFS(…), “該当なし”)」とすると安全です。

条件の優先順位に注意する

IFSは上から順に評価し、最初に真になった条件の値を返します。つまり、条件の並び順が重要です。例えば「=IFS(A1>=80, “B”, A1>=90, “A”)」とした場合、90点以上でも「B」と表示されてしまいます。広い範囲を先に書かないように、範囲が狭い条件(高い点数など)を先に記述しましょう。

IFS関数はGoogleスプレッドシート独自の関数ではない

IFSはExcel 2016以降でも利用可能です。ただし、古いバージョンのExcelや他の表計算ソフトでは使えない場合があります。互換性を考慮するなら、IFの入れ子で代用するか、SWITCH関数を検討しても良いです。

条件式の重複や漏れに気をつける

IFS関数では条件が重複していると、先に書かれた条件だけが使われます。また、すべてのケースをカバーできているか確認する必要があります。最後にTRUEを入れておくと漏れを防げます。

ADVERTISEMENT

IF関数とIFS関数の比較表

項目 IF関数 IFS関数
構文 =IF(論理式,真,偽) =IFS(論理式1,値1,論理式2,値2,…)
扱える分岐数 2(入れ子で増やせる) 最大127
可読性 入れ子が深くなると低下 フラットで見やすい
エラー処理 第3引数で偽の場合を指定 全偽で#N/A(デフォルト値は明示)
推奨使用場面 単純な二択 3つ以上の条件分岐

まとめ

IF関数は二択に、IFS関数は複数条件に適していることが分かりました。IFS関数を使えば入れ子のIFよりも簡潔でミスが減ります。ただし、すべて偽の場合のエラー対策や条件の優先順位に注意してください。まずはIF関数でシンプルな判定を書けるようになり、複数条件が必要になったらIFS関数に切り替えると良いでしょう。

応用として、SWITCH関数やIFERROR関数と組み合わせることで、より堅牢な条件分岐が可能になります。ぜひ実際のシートで試してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。