9/22/2020

Excel。まだIFIFIFIF関数で条件分岐させているの?IFS関数使ってみませんか?【IFS】

Excel。まだIFIFIFIF関数で条件分岐させているの?IFS関数使ってみませんか?

<IF関数・IFS関数>

昔から使っているファイルで使用している関数をそのまま使うのもいいのですが、最近のExcelには、新しい関数が追加されています。

もしかしたら、使う使わないは別として、知っていればよかったというケースもあるかもしれません。


そこで、今回は、多重分岐でお馴染みのIF関数の大量ネストをIFS関数でおこなったらどうなるのか、確認していきます。


次の表を用意しました。

 

やりたいことは、D列にアルファベット評価を算出したいわけです。

その区分の条件が、90点以上がA。70点以上がB。60点以上がC。50点以上がDで、それ以外はEとしております。


Excel経験者だと、「VLOOKUP関数でやればいいじゃん。」って思うところですが、今回は、ご了承のほど。


IF関数を多重に使用したネストで数式を確認してみます。

D2の数式は、

=IF(C2>=90,"A",IF(C2>=70,"B",IF(C2>=60,"C",IF(C2>=50,"D","E"))))


ご覧のように、IF関数が4回使用することで、A~Eを算出しておりますが、結構大変ですし、面倒。

しかも、繰り返すことで、ミスも発生しやすくなります。


当然のことながら、区分の条件がさらに増えれば、それだけIF関数を繰り返す回数が増えるわけで、大変です。


そこで、新しく登場したIFS関数を使うことで、かなりスマートな数式で対応することができるようになりました。


今度は、IFS関数で、算出してみます。

D2をクリックして、IFS関数ダイアログボックスを表示しましょう。


 

論理式1に条件を設定して、それが真の場合なら、どうする?というのを繰り返していきます。

IF関数の中にIF関数をつくるよりも、条件を繰り返し設定していくだけで完成します。


それでは、D2にIFS関数でつくった、数式を確認しておきます。

=IFS(C2>=90,"A",C2>=70,"B",C2>=60,"C",C2>=50,"D",TRUE,"E")


とても、IF関数を繰り返すネストよりも、シンプルな数式で算出することができるようになりました。

このIFS関数。毎日毎日作るわけではないので、忘れがちになるのが、最後の「TRUE」です。

条件と完全合致ならば、いいのですが、今回のように、50未満は全部「E判定」なわけです。


つまり、『それ以外は~』の部分。


これがある場合には、最後の論理式に、「TRUE」を入力する必要があります。


 

Excel関数のスキルアップには、どうしても、「ネスト」というスキルは必要なので、昔から、IF関数にお世話になっていましたが、IFS関数も覚えておいて損はなさそうです。


なお、「値が真の場合」には、IF関数同様に、IF関数をネストすることもできます。


あまり意味がありませんが、このようにすることもできます。

=IFS(C2>=90,IF(B2="豊田","Y","A"),C2>=70,"B",C2>=60,"C",C2>=50,"D",TRUE,"E")


もし90点以上だったら、氏名が「豊田」だったら、「Y」にして、それ以外は、「A」のんままという数式を作ることもできます。


 

IFS関数も、アイディアによって、色々使える可能性がありそうですね。