AさんAさん

条件分岐が多くなるとIF関数をネストする数が増えて数式が複雑になりますね。もっと良い方法はないですかね??

森田森田

Excel2016以降ならIFS関数という1つの関数で、複数の条件分岐に対応できますよ!
つまり、今まで複数のIF関数をネストしなければ実現できなかったことを1つの関数で実現できてしまうわけなので、数式もすっきりしますよ。
では、詳細を解説していきますね。

はじめに

本題に入る前に、この記事がおすすめな人を挙げてみます。

  • 条件に応じて入力内容が変わる作業が多い人
  • エクセルを扱う機会がある人
  • Excel2016を使用できる環境にある人

ちなみに、最低限「複数のIF関数のネスト」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
【初心者向け】複数のIF関数を入れ子(ネスト)にして条件分岐を増やす方法

IF関数だけで記述した複数の条件分岐の数式は読みにくい。。

たとえば、「テストの成績に応じて5クラスに振り分けをしたい」といったような場合は、5つの条件分岐が必要なため、IF関数を4つ入れることになるので以下のような数式になりますね。

4つのIF関数がネストされているため、IF関数や”()”[カッコ]の数が多くて数式が若干読みにくいです。

こちらをすっきりさせるには、Excel2016から登場したIFS関数が最適ですよ。

IFS関数とは?

読み方はイフズ関数と読みます。関数名の”IFS”は「もしも~」を意味する英単語”IF”の複数形として”S”が追加されていると推測できますね。(Microsoftの公式見解がないので)

数式ライブラリ上のカテゴリは「論理」です。

IFS関数は名前のとおり、複数のIF関数をひとまとめにできる関数です。

ちなみに、IFS関数はExcel2016から実装された新しい関数なので、実務で使っている人は少ないかもですね。

私も職場はExcel2010がメインなので、実務では使ったことがなく、もっぱら自宅でしか使っていないですが、今後Excel2016が普及したらメジャーになることが期待できる関数です。

IFS関数の構文を理解しよう!

IFS関数を記述する際の構文は次のとおりです。

※引数名を[]で囲っているものは省略可能

=IFS(論理テスト1,値が真の場合1,…)

引数

引数名 必須 データ型 説明
論理テスト1 論理値 判断基準となる条件を指定します。
実質IF関数の引数「論理値」と同じです。
値が真の場合1 どの型でも可 論理式の結果が真(TRUE)の場合に返す値を指定します。
実質IF関数の引数「真の場合」と同じです。

上記の引数は、IF関数の引数と名称が若干違いますが、それぞれ中身は一緒です。

ちゃんと確認しておきたい方は、IF関数の構文の復習をしてくださいね。→こちら

IFS関数の補足説明

引数「論理テスト1」「値が真の場合1」は最大127セットまで増やすことができますよ。

この2つの引数は必ずセットで増やす必要がありますので注意しましょう。

この増やしたセットの条件分岐は数式の左側から順番に行われていきますので、数式を記述する際の順番には気をつけましょう。

また、IFS関数のIF関数との最大の違いは「偽の場合」に該当する引数がないことです。

TRUE条件に該当しない場合は、IFS関数の戻り値が「#N/A」のエラー値が返ります。

今までの話をフローチャートにまとめると、以下のとおりとなります。(3つのセットがある場合)

なお、IFS関数の戻り値が「#N/A」のエラー値を回避するためには、「偽の場合」に該当する「論理テスト」「値が真の場合」のセットも用意してあげる必要があります。

おすすめは、最後の「論理テスト」の値を”TRUE”にし、「値が真の場合」へIF関数でいうところの「偽の場合」で入れる値を指定すれば良いですよ。

最後の「論理テスト」が”TRUE”確定なので、上記のフローチャートでいう最後の分岐で絶対にFALSEになりません。

サンプルファイルで練習しよう!

では、実際にIFS関数の練習してみましょう!

サンプルの条件

今回の題材は次のとおりです。

「クラス分け」というシートのA・B列に「得点」・「ランク」という項目があります。

また、「ランク」を振り分ける条件として、D~F列にA~Eの5つのクラスの振り分ける基準となる「クラス分け基準」を用意しています。

今回、「得点」を示すA2セルが”79点”の場合、「クラス分け基準」に照らし合せるとA~Eのどのクラスが振り分けられるか、B2セルへIF関数の数式を入れてみましょう。

実際に練習してみよう!

可能であれば、以下のサンプルファイルをダウンロードして実際に操作してみてください。

サンプルファイル_IFS関数

ファイルを開いたら次の手順を実施してください。

  1. 「クラス分け」シートを選択
  2. B2セルへ「=IFS($A$2>=$E$2,$D$2,$A$2>=$E$3,$D$3,$A$2>=$E$4,$D$4,$A$2>=$E$5,$D$5,TRUE,$D$6)」を入力
    ※赤字の部分をコピーして貼り付けてください。

問題なく”B”という値がB2セルへ表示されたらOKです!

A2セルの値を変えてみて、B2セルの値がどう変わるかもいろいろ試してみてくださいね。

もし、表や数式を加工してしまった場合は、上記手順を実施済みの「クラス分け (関数あり)」シートもサンプルファイル内に用意していますので、必要に応じてご活用くださいね。

数式がどれだけスッキリしたか確認しよう!

IF関数のネストしたものとIFS関数の数式を見比べると、IFS関数の方がより短い数式になったことがわかります。

特に、”IF(“と”)”が少なくなったことでスッキリしましたね。

【参考】「○以上の場合は□」の条件分岐ならVLOOKUP関数の方がおすすめな場合もある!

ちなみに、「条件分岐」というとIF関数かIFS関数が思い浮かびがちですが、VLOOKUP関数も検索するキーワードによって戻り値をいろいろ用意することができるため、見方を変えると条件分岐とも捉えることができるのです。

特に、今回のサンプルにあったような「○以上の場合は□」の条件分岐なら、VLOOKUP関数の近似一致参照で同じことをもっと短い数式で実現することができますよ。

詳細はこちらの記事をご参照くださいね。

さいごに

IFS関数は新しい関数ですが、IF関数のネストを使う頻度が高い人ほど、代用できるシーンは多いですね。

もちろん、そもそも条件分岐が多ければ多いほど、IFS関数の数式も複雑になりますので、条件分岐を増やすことはほどほどにしましょう。

その注意点だけ意識すれば、IFS関数はIF関数の延長線上で考えれば、まったく同じノリで使いこなせるはずです。

そのためには、IF関数の応用テクニックを知っておく必要がありますので、私の書籍もご参考にしていただければと思います。

ご参考になれば幸いですm(_ _)m

森田森田

Excel2016から「あったらいいなー」と思っていた新しい関数がけっこう加わったので、関数でできることが増えたり、今までの数式よりも短いもので代用できたりできて良いですね。
何事も定期的に勉強して最新のものをキャッチアップできると良いことがありますよ。

この記事が気に入ったら
いいね ! しよう