水曜日, 2月 07, 2018

Office365新関数
IFS(イフ・エス)

Office365から加わった便利な関数を備忘録してみます。
今回はIFS(イフ・エス)関数です。
これは、複数の条件を順に調べた結果に応じて異なる値を返す関数です。
具体例として図のような試験結果の表データを作成しました。
この表を元に取得した得点ごとの成績を付けます。

■IFS(イフ・エス)
IFS(論理式1, 真の場合1, 論理式2, 真の場合2, ・・・, 論理式127, 真の場合127)

■論理式
TRUE(真)かFALSE(偽)を返す式を指定。[論理式]と[真の場合]の組み合わせは127個まで指定できる。

■真の場合
直前に指定した[論理式]の値が真の場合(条件を満たす場合)に返す値を指定。省略すると0が指定されたとして処理される。

B列の該当する成績が、
90点以上であればS合格
80点以上であればA合格
70点以上であればB合格
60点以上であればC合格
どれにも該当しなければ再履修

結果IFSにてC2のセルに以下の関数式を代入します。
=IFS(B2>=90,"S合格",B2>=80,"A合格",B2>=70,"B合格",B2>=60,"C合格",TRUE,"再履修")

ただし、このままの処理で問題無いのですが、何かのトラブルで取得得点が101点以上だった場合はデータ入力ミスを示すために、

101点以上であればエラー

という項目を追加しておいた方が良いでしょう。

=IFS(B2>=101,"エラー",B2>=90,"S合格",B2>=80,"A合格",B2>=70,"B合格",B2>=60,"C合格",TRUE,"再履修")

ちなみに同等の処理はIF関数でも可能ですのでOffice365よりも前のバージョンでも処理は出来ますが、制約もあります。

=IF(B2>=101,"エラー",IF(B2>=90,"S合格",IF(B2>=80,"A合格",IF(B2>=70,"B合格",IF(B2>=60,"C合格","再履修")))))

IFのネスト処理は、Excel 2007よりも古いバージョンでは7回、Excel2007以降は64回までしか使えません。しかし、IFSであれば127個まで指定することができます。