【Excel】IF関数のネストが深すぎて読めない!ExcelのIFS関数で多段分岐をシンプルにする方法

【Excel】IF関数のネストが深すぎて読めない!ExcelのIFS関数で多段分岐をシンプルにする方法
🛡️ 超解決

Excelで複数の条件分岐を行う際、IF関数を重ねて(ネストして)使用することがあります。しかし、条件が増えるにつれてIF関数のネストは複雑化し、数式が読みにくく、管理が困難になります。このような状況を解決するために、Excel 2019以降で利用可能なIFS関数が役立ちます。IFS関数を使えば、深いネストを解消し、条件分岐をよりシンプルに記述できます。本記事では、IFS関数の使い方と、IF関数のネストとの比較を通じて、そのメリットを解説します。

IF関数のネストが深くなり、数式が読みにくくて困っている方は多いでしょう。条件が増えるたびにIF関数を入れ子にすると、括弧の数が膨大になり、どの条件がどの結果に対応しているのか把握するのが難しくなります。この問題を解決するのがIFS関数です。IFS関数は、複数の条件を順番に評価し、最初に真(TRUE)となった条件に対応する値を返します。これにより、複雑なIF関数のネストを大幅に簡略化できます。本記事を読むことで、IFS関数の基本的な使い方から、IF関数との使い分けまでを理解し、より効率的な条件分岐の記述が可能になります。

【要点】IFS関数でIF関数ネストの複雑さを解消する

  • IFS関数: 複数の条件を順番に評価し、最初に真となった条件の結果を返すことで、IF関数のネストを簡略化します。
  • IF関数ネスト: 条件が増えるごとにIF関数を入れ子にするため、数式が長くなり、可読性・保守性が低下します。
  • 使い分け: 条件が少ない場合はIF関数、条件が多い場合はIFS関数が適しています。

ADVERTISEMENT

IF関数ネストの課題とIFS関数の概要

Excelで複数の条件に基づいて異なる結果を返したい場合、IF関数を組み合わせるのが一般的です。例えば、試験の点数に応じて成績(優・良・可・不可)を判定する場合を考えます。点数が90点以上なら「優」、80点以上なら「良」、60点以上なら「可」、それ以外なら「不可」としたい場合、IF関数をネストして以下のような数式を作成します。

しかし、この数式は条件が4つ程度でもすでに読みにくさを感じます。もし条件がさらに増えた場合、IF関数はどんどん入れ子になり、数式は括弧の羅列となってしまいます。例えば、成績判定に加えて「追試」「補習」などの判定も追加しようとすると、数式はさらに複雑化し、どこかで間違いがあっても修正が困難になります。この「IF関数のネストが深すぎる」という問題を解決するために登場したのが、IFS関数です。

IFS関数は、Excel 2019、Excel for Microsoft 365で利用可能な関数です。IF関数とは異なり、複数の「条件」と「その条件が真の場合の値」のペアを順番に指定するだけで、多段階の条件分岐を記述できます。これにより、数式の可読性が大幅に向上し、管理が容易になります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

IFS関数の基本的な使い方

IFS関数の構文は以下の通りです。

IFS(条件1, 真の場合の値1, 条件2, 真の場合の値2, ... [条件n, 真の場合の値n])

この構文は、「条件1が真なら値1を返す」「そうでなければ条件2を評価し、真なら値2を返す」というように、指定された順序で条件を評価していきます。最初に真となった条件に対応する値を返すと、それ以降の条件は評価されません。

先ほどの試験の成績判定の例をIFS関数で記述してみましょう。

この数式は、IF関数をネストした場合と比較して、はるかにシンプルで理解しやすいことがわかります。条件と結果のペアが横に並んでいるため、どの条件がどの結果に対応しているかが一目で把握できます。

IFS関数を使用する際の注意点として、すべての条件が偽(FALSE)となった場合の処理を指定する機能はありません。もし、どの条件にも一致しない場合に特定の値(例えば「不明」など)を返したい場合は、最後の条件として `TRUE` を指定し、その場合の値を設定します。例えば、上記の例で90点未満で、かつ60点未満の場合に「不可」としたい場合、最後の条件を `TRUE` にして、その結果を「不可」とすることで、それまでの条件に当てはまらなかった場合に「不可」が返るようにできます。

IF関数ネストとIFS関数の比較

IF関数ネストとIFS関数を、具体的な例で比較してみましょう。ここでは、顧客の購入金額に応じて、割引率を適用するケースを考えます。

IF関数ネストでの記述

条件は以下の通りとします。

  • 10,000円以上: 10%割引
  • 5,000円以上: 5%割引
  • 1,000円以上: 2%割引
  • それ以外: 0%割引

この数式は、括弧が多く、どこで区切られているのかを追うのが大変です。特に、条件を増やしたり、割引率を変更したりする際には、数式の構造を理解するのに時間がかかります。

IFS関数での記述

同じ条件をIFS関数で記述すると、以下のようになります。

IFS関数を使用した数式は、条件と結果のペアが明確に分かれており、非常に読みやすいです。どの条件がどの割引率に対応しているかが一目瞭然です。

比較表

両者を比較すると、以下のようになります。

項目 IF関数ネスト IFS関数
可読性 低い(条件が増えると低下) 高い(条件が増えても低下しにくい)
保守性 低い(修正が困難) 高い(修正が容易)
数式の複雑さ 高い(括弧が多くなる) 低い(シンプルに記述できる)
利用可能なバージョン Excel 2007以降 Excel 2019, Microsoft 365
「すべて偽」の処理 IF関数の最後の引数で指定 最後の条件にTRUEを指定して指定

ADVERTISEMENT

IFS関数利用時の注意点とよくある誤解

IFS関数は非常に便利ですが、利用する上でいくつか注意すべき点があります。これらの点に留意することで、より効果的にIFS関数を活用できます。

条件の順序が結果を左右する

IFS関数は、指定された条件を上から順に評価します。そのため、条件の順序を間違えると、意図しない結果が返されることがあります。例えば、先ほどの購入金額の例で、条件の順序を逆にしてみましょう。

この数式では、例えば購入金額が5,000円だった場合、最初の条件「購入金額 >= 1000」が真と判定され、「2%割引」が返されてしまいます。本来は「5%割引」が返されるべきです。このように、条件の順序は非常に重要です。一般的には、より具体的な条件(範囲が狭い条件)を先に記述し、次に一般的な条件(範囲が広い条件)を記述する順番が、意図した結果を得やすくなります。

すべての条件が偽の場合の挙動

前述の通り、IFS関数には「すべての条件が偽の場合に値を返す」という直接的な引数はありません。もし、すべての条件に一致しない場合に特定の値(例えば「条件外」など)を返したい場合は、最後の条件として `TRUE` を指定し、その真の場合の値として目的の値を設定します。

例:購入金額が1,000円未満の場合に「対象外」と表示したい場合

この方法で、どの条件にも当てはまらない場合に「対象外」と表示させることができます。

Excelのバージョンによる利用可否

IFS関数は、Excel 2019およびMicrosoft 365のExcelで利用可能です。Excel 2016以前のバージョンではIFS関数はサポートされていません。古いバージョンのExcelでこの関数を使用しようとすると、「#NAME?」エラーが表示されることがあります。もし、古いバージョンのExcelでも多段分岐を行いたい場合は、IF関数のネストを使用するか、またはVBA(Visual Basic for Applications)によるカスタム関数の作成を検討する必要があります。

まとめ

IF関数のネストは、条件が増えるにつれて数式が複雑化し、可読性や保守性が著しく低下するという課題があります。Excel 2019以降で利用可能なIFS関数は、この課題を解決するための強力なツールです。IFS関数を使用することで、複数の条件分岐をシンプルかつ分かりやすく記述できます。本記事では、IFS関数の基本的な構文、IF関数ネストとの比較、そして利用上の注意点について解説しました。IFS関数の使い方をマスターすれば、Excelでのデータ分析やレポート作成がより効率的になります。次に、実際のデータを用いて、IF関数で作成した複雑な数式をIFS関数に置き換える作業を試してみてください。さらに、IFS関数と他の論理関数(AND関数、OR関数など)を組み合わせることで、より高度な条件分岐も実現できます。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】