数式・関数

【Excel】IF関数の進化系!「IFS関数」を使ってみよう

スポンサーリンク
この記事は約5分で読めます。
IFS関数 タイトル画像

セルの値が条件を満たしているかいないかで表示する値を変更するといえば「IF関数(イフ)」がまず頭に浮かびますが、IFはそれ単体では1つの式に対し原則1つの条件しか設定できません。

IF関数を入れ子にすれば結構複雑な条件式も作れますが、入れ子方式は条件数が多くなればなる程どうしても式が複雑になりがちです。長い式をせっかく途中まで入れたのに括弧()の置き所をミスってちょっとイライラ・・・なんて経験もきっと私だけじゃないはず(笑)

もし、お手持ちのExcelが2016(Office365)以降のバージョンで、IFの入れ子がちょっと面倒・・・と感じたら、ぜひIFの上位版であるIFS(イフエス)関数を使ってみてください。1つの式の中に複数条件を組み込める、とても便利な関数です。

※解説画像はMicrosoft365のExcelを使用しています

スポンサーリンク

IFS(イフエス)関数とは?

IFS関数は、1つ以上の条件を満たしているかをチェックし、満たしている(TRUEである)時は対応する値を返すものです。

関数のカテゴリはIFと同じ「論理」に属し、引数は以下のようになります。

=IFS(論理式1,値が真の場合1,論理式2,値が真の場合2,・・・)

「論理式」と「値が真の場合」で1セットで、最大127セットまで条件を設定できます。

先頭の論理式から順繰りに条件と合っているかを判定し、合っていなければ次の論理式で判定、合っていなければ更に次の論理式で判定・・・というように、単純に「合っていれば指定の値を表示しますが合っていなければさっさと次に行きます」という式の構成になっています。

そのため、条件を並べる順番を誤ると意図した結果にならない場合があるので注意しましょう。

ところで、ここでIF関数に慣れている方はひとつ疑問に思うかもしれません。IFS関数には「値が偽の場合」という引数が無いのですよね。

「値が偽の場合」が無いという事は、最後に「どの条件にも合わないその他大勢」が出て来た時はどうしたら?というのも謎ですよね。でも心配は要りません。IFSならではの「その他大勢」の設定の仕方がちゃんとありますので、そこは次の項で実際に式を入れながら見ていきましょう。

IFS関数で複数の条件を判定する

それでは、こちらの表を使ってIFS関数で条件判定をしてみましょう。テキストボックス内に書いてある基準に沿って、B3~B8に入力された各点数がA~Dのいずれの判定結果になるかをC列に表示してみたいと思います。

点数によってA~Dの判定値を表示する表

C列の先頭セルC3にカーソルを置き、[数式]タブ⇒「論理」⇒「IFS」を順にクリックします。

数式タブ 論理 IFSを選択

関数の引数ダイアログボックスが開いたら、まず論理式1に「B3の値が80以上」という条件式を入れ、値が真の場合1に「”A”」と入力します。

論理式1、値が真の場合1を入力

続けて論理式2に「B3の値が60以上」という条件式を入れ、値が真の場合2に「”B”」と入力します。論理式1ですでに80以上はAという条件が定まっているので、Bの上限値は自動的に79点以下になります。

論理式2、値が真の場合2を入力

続けて論理式3に「B3の値が40以上」という条件式を入れましたが、表示されていた入力ボックスが下いっぱいまで来てしまいました。この場合は、関数の引数ダイアログボックスの右側に縦スクロールバーが表示されますので、下向き山括弧をクリックしてスクロールしましょう。

論理式3に入力

隠れていた入力ボックスが表示されたら、値が真の場合3に「”C”」と入力します。

値が真の場合3を入力

さて、残るは「39点以下であればDを表示」という条件。ここは論理式4に「TRUE」、値が真の場合4に「”D”」と入力します。

論理式にTRUEを指定すると、「それより前に入れた論理式に当てはまらない値すべてが真となる」という考え方になるので、この例でいうとA~Cと判定される点数のいずれにも属さない、すなわち39点以下の点数であれば何点であってもすべて「D」ですよ、と判定されます。これがIFでいうところの「値が偽の場合」に該当する部分ですね。

論理式4と値が真の場合4を入力

これで式は出来上がりですので、[OK]をクリックしてダイアログボックスを閉じ、C列の他の行はオートフィルで数式をコピーします。結果はこちら、正しく判定されていますね。

C8まで数式をコピー

ちなみに、論理式4に置いた「TRUE」の条件を抜くとどうなるかも見ておきましょう。最後の39点以下はどの条件にも属さなくなるので「#N/A」表示になります。

論理式すべてに該当しない場合のN/Aエラー

同じ条件の数式をIFで作った場合とIFSで作った場合を比べてみましょう。

  • IFを使った場合
    =IF(B3>=80,”A”,IF(B3>=60,”B”,IF(B3>=40,”C”,”D”)))
  • IFSを使った場合
    =IFS(B3>=80,”A”,B3>=60,”B”,B3>=40,”C”,TRUE,”D”)

式の長さ自体は大差ないですが、IFSの方はカッコがあちこち入り組んだりしていない分シンプルで、式の中にどのような条件が含まれるかがわかりやすくなっていますね。

IFSは条件1つだけでも設定できるの?

IFS関数を使う時は必ず条件を複数設定しなければいけないという事はありません。「1つ以上の条件を満たしているか」を見る関数ですので、条件1つだけで「真の場合はA、そうでない場合はB」というIFと同じような使い方も可能です。

簡単な例ですが、こちらのシートのセルC3に、B3の値が90以上であれば「〇」、そうでなければ「×」を表示する式をIFとIFSを使って入れてみます。

まずIFを使った式がこちら。

条件1つのIF式

そしてIFSを使った式がこちらです。

条件1つのIFS式

このように、どちらを使っても同じ結果は求められます。

ただ、ここまでシンプルな処理分岐ですと、IFSの方がかえって式が長くなってしまい、正直IFSを使うメリットが感じられません。

条件や表示したい値の内容に応じ、単純な分岐であれば従来通りIF、複数条件での分岐であればIFSというように、ケースバイケースでうまく使い分けるようにしましょう。

スポンサーリンク