IF関数でテストの成績に応じてA、B、Cと成績をつけたいのですが、どうしたら良いですかね??
IF関数の条件分岐を増やしたいなら、IF関数の中にIF関数を入れてあげれば条件分岐を増やすことができますよ!
では、詳細を解説していきますね。
はじめに
本題に入る前に、この記事がおすすめな人を挙げてみます。
- 条件に応じて入力内容が変わる作業が多い人
- エクセルを扱う機会がある人
- 事務職を目指している人
ちなみに、最低限「IF関数の基礎」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
→【初心者向け】条件に応じてセルの値を変える!IF関数の使い方
IF関数の条件分岐を増やしたい!
IF関数は単独で使うと条件分岐が「真の場合」と「偽の場合」の最大2つのみです。
フローチャートにすると以下のようなイメージですね。
しかし、実際ビジネスでは2つの条件分岐で済むケースはなかなかないですね。
たとえば、「テストの成績に応じて5クラスに振り分けをしたい」といったような場合です。
この場合、どうすれば良いのでしょうか?
結論から言うと、IF関数の中にIF関数を入れてあげれば良いです。
IF関数を入れ子(ネスト)するとは?
IF関数の中にIF関数を入れるとは、実際に以下のようなイメージですね。
このように、IF関数の引数「偽の場合」に新しいIF関数を入れてあげることで条件分岐を増やすことができます。
フローチャートにまとめると、以下のようになり、数式の左側のIF関数から順番に分岐していきますね。
ちなみに、複数のIF関数を入れ子にすることを「ネストする」と表現しますので覚えておきましょう。
このネストですが、無制限にできるわけではありません。
Excel2003までは7つまで、Excel2007以降は64までと、IF関数のネストできる上限が決まっています。
なお、IF関数をネストすると、2つ目以降のIF関数を1つ増やすごとに条件分岐が1つ増えていきますよ。
たとえば、IF関数が2つなら条件分岐は3つ、IF関数が64なら条件分岐は65になるということです。
サンプルファイルで練習しよう!
では、実際にIF関数のネストを練習してみましょう!
サンプルの条件
今回の題材は次のとおりです。
「クラス分け」というシートのA・B列に「得点」・「ランク」という項目があります。
また、「ランク」を振り分ける条件として、D~F列にA~Eの5つのクラスの振り分ける基準となる「クラス分け基準」を用意しています。
今回、「得点」を示すA2セルが”79点”の場合、「クラス分け基準」に照らし合せるとA~Eのどのクラスが振り分けられるか、B2セルへIF関数の数式を入れてみましょう。
実際に練習してみよう!
可能であれば、以下のサンプルファイルをダウンロードして実際に操作してみてください。
サンプルファイル_IF関数_ネスト
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ファイルを開いたら次の手順を実施してください。
- 「クラス分け」シートを選択
- B2セルへ「=IF($A$2>=$E$2,$D$2,IF($A$2>=$E$3,$D$3,IF($A$2>=$E$4,$D$4,IF($A$2>=$E$5,$D$5,$D$6))))」を入力
※赤字の部分をコピーして貼り付けてください。
問題なく”B”という値がB2セルへ表示されたらOKです!
A2セルの値を変えてみて、B2セルの値がどう変わるかもいろいろ試してみてくださいね。
もし、表や数式を加工してしまった場合は、上記手順を実施済みの「クラス分け (関数あり)」シートもサンプルファイル内に用意していますので、必要に応じてご活用くださいね。
【注意点】ネストはほどほどに
IF関数のネストは理解できましたか?
IF関数はネストして使うことが一般的です。
しかし、難点は数式の可読性が落ちることなので、調子に乗って多くのIF関数をネストするのはやめましょう。
今回のサンプルファイル上の数式では、IF関数を合計4つ使用し、5つの条件分岐(クラスへの振り分け)を実現しました。
IF関数をネストし過ぎると、数式のチェックや修正が非常に難しくなります。
私も第三者が記述した数式をチェックしなければならなかったとしたら、かなり労力を要するので「まじか・・・」と思ってしまいます(笑)
複数の条件分岐をしたい場合は以下の2つのテクニックに置き換えた方が数式をすっきりできますよ。
- VLOOKUP関数を使う
- IFS関数を使う
VLOOKUP関数を使う方法
【中級者向け】「○以上の場合は□」の条件分岐ならIF関数よりもVLOOKUP関数の近似一致参照がおすすめ
IFS関数を使う方法
【中級者向け】IF関数をネストしまくるよりも複数の条件分岐をより簡潔な数式にまとめられるIFS関数の使い方
さいごに
IF関数はネストして使えるようになって真価を発揮します。
実際のビジネスでは複数の条件によって条件分岐することは思いのほか多いですからね。
なので、まずは本記事で学んだネストを反復して使いこなせるようになりましょう。
それで物足りなくなった人には、さらにIF関数を便利に使うための応用テクニックを私の書籍で紹介しているので、こちらもご参考にしていただければと思います。
▼IF関数を基本から応用まで体系的に学びたい方向け
▼IF関数の応用テクニックに加えて、その他VLOOKUP関数なども学びたい方向け
ご参考になれば幸いですm(_ _)m
ネストは他の関数でも共通の重要な概念ですが、本文でも注意喚起したとおりネストのし過ぎには注意しましょうね。
かくいう私もIF関数を使えるようになったばかりのとき、複数の条件分岐を実現するためにIF関数をネストしまくった経験あります(笑)
労力の割には数式が見にくいわ、メンテナンスしにくいわで困ったので、私の二の轍を踏まないようにして頂くことをおすすめしますよ。