複数の条件に応じて表示する値を変えたい場面は多いです。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関数で二択を表現する
- 基本的なIF式を入力する
セルA1に点数が入っている場合、合格ラインが70点以上なら「合格」、それ以外は「不合格」と表示するには「=IF(A1>=70, “合格”, “不合格”)」と入力します。 - 条件が2つだけの場合はIFが適切
このように分岐が2つだけで済むなら、IF関数で十分です。IFSを使う必要はありません。
IFS関数で複数条件をスマートに書く
- IFS関数を入力する
例えば点数に応じてA〜Fの評価を付けたい場合、セルB1に「=IFS(A1>=90, “A”, A1>=80, “B”, A1>=70, “C”, A1>=60, “D”, A1<60, "F")」と入力します。上から順に評価され、最初に真になった段階で値が返ります。 - デフォルト値を設定する
上記の例では最後の条件「A1<60」がデフォルトの役割を果たしています。すべての条件が偽になる場合は最後にTRUEを指定します。「=IFS(..., TRUE, "該当なし")」のようにします。 - 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で細分化する方法です。
- IFの中でIFSを使う
「=IF(条件, IFS(複数条件), デフォルト値)」のように記述します。これにより、ある条件が真の時だけ複数分岐を行えます。 - 実例
合否判定と成績評価を一緒に行う場合「=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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】複合グラフで棒と折れ線を同時表示!2軸グラフの作り方
- 【Googleスプレッドシート】FILTER関数で条件に合う行だけ抽出!数式1つで動的な絞り込み
- 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
- 【Googleスプレッドシート】重複データを抽出して表示!COUNTIFと条件付き書式の併用
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】ARRAYFORMULAで列全体に数式を一括適用!セル分の入力を不要に
- 【Googleスプレッドシート】データ範囲を動的に伸縮させる!INDIRECTと参照範囲のコツ
- 【Googleスプレッドシート】共有解除と権限の取り消し!アクセスを完全に閉じる手順
