【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧はこちら【エクセル時短まとめ】
セルの値によって異なる結果を求める。Excelでよく行う作業ですね。
従来、複数の条件を判定したい場合は「IF」(イフ)関数の組み合わせ、つまりネストすることで求めていました。これがExcel 2016では、「IFS」(イフエス)関数によって1つの関数で行えます。
【エクセル時短】第16回では、Excel 2016の新関数「IFS」を解説します。
※IFS関数はExcel 2016に加えて、Office 365の定額制サービスを購入している場合に利用できます
「論理式」と「真の場合」のセットを複数指定
さっそくIFS関数の構文を見てみましょう。
IFS
(論理式1, 真の場合1, 論理式2, 真の場合2, ..., 論理式127, 真の場合127)
ここでは、試験結果が「90」以上であれば「出荷可」、「80」以上であれば「再検査」、それ以外は「開発中止」と表示する例を紹介します。
1IFS関数を入力する
セルD3に「=IFS(C3>=90,"出荷可",C3>=80,"再検査",TRUE,"開発中止")」と入力します。
2入力したIFS関数をコピーする
判定の結果が表示されました。入力した関数式をコピーします。
IFS関数の注意点は、最初の[論理式]に一致した場合、続きの[論理式]は判定されないことです。
上の例のように数値を判定する場合は、厳しい条件から順に指定しないと、思い通りの結果が得られません。例えば「=IFS(C3>=80,"再検査",C3>=90,"出荷可")」のように指定すると、セルC3が「80」以上の場合、すべて「再検査」と表示されてしまいます。
どの条件も満たさない場合の結果を指定するには、最後の[論理式]に「TRUE」と指定します。ここでは「TRUE,"開発中止"」と指定しました。
Excel 2013以前ではどうなる?
上記と同じことをExcel 2013以前のバージョンで行うとどうなるのか、見てみましょう。
IF関数をネストして入力することになりますが、考え方は簡単です。IF関数の「偽」の条件に、続きの条件を指定するだけです。IFS関数と同じ結果を得るためには、セルF3に「=IF(C3>=90,"出荷可",IF(C3>=80,"再検査","開発中止"))」と入力します。
セルC3の値が「90」以上であれば「出荷可」と表示し、そうでなければ、「偽」の条件に指定した「IF(C3>=80,"再検査","開発中止")」が判定がされる形です。
1IF関数を入力する
Excel 2013以前のバージョンではIFS関数が使えないため、IF関数を使って「=IF(C3>=90,"出荷可",IF(C3>=80,"再検査","開発中止"))」と入力します。
2入力したIF関数をコピーする
判定の結果が表示されました。入力した関数式をコピーします。
なお、Excel 2016でIFS関数を入力し、そのファイルをExcel 2013以前のバージョンで開いた場合、IFS関数を含む数式は「=_xlfn.IFS(C3>=90,"出荷可",C3>=80,"再検査",TRUE,"開発中止")」のように変換され、結果のみが表示されます。
Excel 2016では「複数の条件指定はIFS」と覚えておきましょう!