残業を減らす!Officeテクニック
エクセルの「IFS関数」⇔「IF関数」変換のコツを覚えよう!
Excel 2013以前に作ったIF関数の式をIFS関数で扱いやすく改良するには?
2022年6月6日 11:52
セルの値が「A」の場合は「B」のように、条件によって結果を取り出す関数といえば「IF」ですよね。複数条件も指定できます。しかし、複数のIF関数を入れ子(ネスト)にするのも、3つくらいが限界ではないでしょうか。「IF」「IF」「IF」「IF」…、と続くと混乱してしまいます。
そんな時は新定番の「IFS」(イフ・エス)関数が便利。Excel 2016以降、Microsoft 365のExcelで利用できます。複数の条件を簡潔にできて処理の内容も理解しやすくなります。
「S」が付いていることから連想できると思いますが、IFS関数は、条件(IF)の複数指定に特化しています。結論から言えば、旧バージョンのExcelで開くことがなく、複数の条件分岐が必要なら「S」なしの「IF関数」を使う必要はないでしょう。
とはいえ、Excel 2013以前でファイルを開く可能性がある場合は「IF関数」の出番。IFS関数に慣れていると、IF関数のネストってどうやるんだっけ? と悩むこともあります。今回は、IFS→IFへの書き換えとIF→IFSへの書き換える際のコツを紹介します。
「IFS関数」と「IF関数」はどこが違う?
最初に「IFS関数」の基本を振り返っておきましょう。IFS関数はネスト不要で「条件」と「結果」を並列に記述可能です。「論理式」に指定した条件式を満たせば「真の場合」の値が返されます。「どの条件にも一致しない」場合の指定も簡潔です。
「IFS関数」と「IF関数」で得点に応じてランク付けする式を作ってみる
簡単な例として、得点に応じて「A」「B」「C」「F」と表示する数式を考えてみます。IFS関数では「=IFS(A2>=80,"A",A2>=70,"B",A2>=60,"C",TRUE,"F")」となります。最後のセット「TRUE,"F"」は「どの条件にも一致しない」場合の指定です。定型句と考えてもいいと思います。
また、IFS関数の「論理式」と「真の場合」は先頭から判定されます。比較演算子を含む数式では、厳しい条件(ここでは「A2>=80」)から順番に指定するのがポイントです。このルールはIF関数も共通です。
IF関数では「=IF(A2>=80,"A",IF(A2>=70,"B",IF(A2>=60,"C","F")))」と記述できます。「どの条件にも一致しない」場合の結果("F")は、一番内側のIF文に含めます。
さらに条件を追加してみます。以下の2つの数式はどちらも同じ結果を得られますが、IFS関数のほうが短く、スッキリとして見やすいですよね。
=IF(A2>=80,"A",IF(A2>=70,"B",IF(A2>=60,"C",IF(A2>=50,"D",IF(A2>=40,"D",IF(A2>=30,"E","F"))))))
=IFS(A2>=80,"A",A2>=70,"B",A2>=60,"C",A2>=50,"D",A2>=40,"D",A2>=30,"E",TRUE,"F")
なお、IFS関数にひとつの条件を指定して、IF関数の代わりに使う時は「どの条件にも一致しない」場合の「TRUE,(結果)」の指定を忘れずに。これを省略して、「論理式」を満たさない場合「#N/A!」エラーとなります。
「IF関数」と「IFS関数」を変換するときのコツ
前述の古いExcelでファイルを開く場合以外にも、古いExcelで作ったIF関数入りファイルを編集して使いまわす場合には、IFS関数へ書き換えておいたほうが後で楽になります。でも、使いやすくしようとして式を壊してしまっては元も子もありません。書き換えるときのコツを覚えておきましょう。
IF関数をIFS関数に書き換える
IF関数からIFS関数への書き換えは単純です。ネストされている「IF(」をすべて削除し、最後の条件として「TRUE,」を追加するだけです。IF関数の最後の閉じカッコ「)))」は「)」が正しいのですが、修正はExcelに任せればいいでしょう。
IFS関数をIF関数に書き換える
IFS関数のデメリットは、バージョンが古いExcelで利用できないことです。IFS関数を含むファイルを旧バージョンのExcelで開くと「=_xlfn.IFS(A2>=80,"A",A2>=70,"B",A2>=60,"C",TRUE,"F")」のように表示されます。修正して欲しいと言われた時に悩まないように修正のコツを覚えておきましょう。
「真の場合」に続く「,」の後ろに「IF(」を挿入することを意識して「TRUE,」を削除すればOK。数式の修正確認のメッセージが表示されるので[はい]をクリックします。これはIF関数の「)」を補完してもいいかどうかの確認です。IF関数の数だけ「)」が必要になるのですが、自分で数えて入力するのは面倒なので、IF→IFSの書き換えと同様にExcelに任せます。