【関数】1つの数式で3種類以上に条件分岐できる「IFS」の使い方
AさんAさん

売上をレポートする際、目標達成率が120%以上なら「S」、100%以上なら「A」、それ以外は「B」といった感じに記号を振り分ける作業がありますが、記号の種類が増えるとIFをネストするのが大変ですね・・・。
数式が見にくいですし、カッコ()の付け忘れも多くなってしまいます・・・。
もっと楽になる方法はありますかね?

森田森田

その場合は、関数のIFSを活用すると良いですよ!
では、IFSの使い方について解説していきますね。

はじめに

この記事は関数の概要とIFの詳細を把握していることが前提です。

参考記事

関数の概要とIFの使い方の詳細は以下の記事をご参照ください。


3種類以上に条件分岐させる数式をシンプルにしたい場合は「IFS」が有効

IF1つの数式で2種類の分岐まで対応可能です。

よって、3種類以上に分岐させたい場合は、通常は複数のIFをネストします。

たとえば、集計した売上金額の目標達成率ごとに「S~B」の3種類のランク分けを行う場合、以下のような数式になります。

今回は3種類の分岐なので2つのIFで済んでいるため、まだ見やすい範囲ですが、IFの数に比例して数式の可読性が悪くなり、数式設定時のエラー発生率も上がります。

この場合、関数のIFSを使うとよりシンプルな数式で同じ結果を得ることが可能です。
IFSは「イフス」と読む。

IFSを使うことで、1つの数式で3種類以上の条件分岐に対応できます。

なお、IFSExcel2019以降またはMicrosoft365のバージョンで使用可能です。

IFSの構文

IFSの構文は以下の通りです。

=IFS(論理式1,値が真の場合1,[論理式2,値が真の場合2],…)
1つ以上の条件が満たされるかどうかを確認し、最初の真条件に対応する値を返します。

引数名 必須 データ型 説明
論理式1 論理 結果が真(TRUE)または偽(FALSE)となる論理式を指定します。
値が真の場合1 すべて 「論理式1」の結果が真(TRUE)の場合に返す値を指定します。
論理式2
※論理式3以降も同様
論理 結果が真(TRUE)または偽(FALSE)となる論理式を指定します。
値が真の場合2
※値が真の場合3以降も同様
すべて 「論理式2」の結果が真(TRUE)の場合に返す値を指定します。

引数[論理式n,値が真の場合n]は最大127セットまで設定可能。
引数「値が真の場合n」が引数「論理式n」より少ない場合、「この関数に対して、少なすぎる引数が入力されています。」というエラーメッセージが表示。
※引数[論理式n,値が真の場合n]は必ず同数セットで設定が必要。

最後の引数「論理式n」は必ず「TRUE」を指定する。
※指定せずに引数「論理式n」すべてTRUEに該当しない場合はエラー値「#N/A」が表示。

引数「論理式n」の結果が論理値でない場合、エラー値「#VALUE!」が表示。

【参考】IFSは「論理関数」

あくまで参考情報となりますが、IFSはリボン「数式」タブの関数ライブラリの「論理」に分類されています。

実際にIFSを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

IFSの使用結果イメージ

IFSを使い、複数種類の条件分岐を行うイメージは以下の通りです。

今回は「達成率(②/①)」列を対象に120%以上なら「S」、100%以上なら「A」、それ以外は「B」で評価しました。

IFSは引数に「値が偽の場合」がないため、最後の引数「論理式n」(今回は「論理式3」)をTRUEにすることで、前段の条件分岐でFALSEだったものをすべて強制的にTRUE扱いし、最後の引数「値が真の場合n」の値(今回は「B」)を返すことが可能です。

また、上記のように計算列としてIFSを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

ベースの数式をセットしたら、他のセルへペーストしましょう。

なお、今回は各引数で参照している評価基準のセル(H4G4H5G5G6)は全レコードで参照を固定するため、絶対参照にしています。

参考記事

絶対参照/相対参照の詳細については以下の記事をご参照ください。

IFSの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はG5セル
  2. =ifs」等と入力
  3. サジェストから「IFS」を選択し、「Tab」キーで確定
  4. 1つ目の論理式を入力
    ※今回は「D4>=$H$4
  5. コンマ(,)を入力
  6. 1つ目の「値が真の場合」の値を入力 or セルを選択
    ※今回はG4セル(絶対参照)
  7. コンマ(,)を入力
  8. 2つ目の論理式を入力
    ※今回は「D4>=$H$5
  9. コンマ(,)を入力
  10. 2つ目の「値が真の場合」の値を入力 or セルを選択
    ※今回はG5セル(絶対参照)
  11. コンマ(,)を入力
  12. TRUE」を入力
  13. コンマ(,)を入力
  14. 3つ目の「値が真の場合」の値を入力 or セルを選択
    ※今回はG6セル(絶対参照)
  15. Enter」キーで確定
  16. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はE5~E7セルへペースト

手順②の際にIMEを半角英数モードにすること。
4つ目以降の論理式を加える場合、手順⑫の手前で手順⑧~⑪を繰り返す。
手順⑫は「tru」等と入力し、サジェストから「TRUE」を選択し、「Tab」キーで確定する方法でも良い。
テーブルの場合、手順⑯は不要(全レコードへ数式が自動的にコピーされる)。

【参考】条件分岐の種類が多い場合はVLOOKUP等での代替も要検討

IFSが最大127種類に条件分岐できると言っても、分岐の種類が増えると数式が複雑化する傾向は変わりません。

条件によっては、VLOOKUPXLOOKUP等を活用すると、よりシンプルな数式で対応できるケースもあります。

具体的には、次の2つの条件に該当するケースです。

  1. 等しい(A=B
  2. 以上(A>=B

条件1ならVLOOKUP等の完全一致、条件2なら近似一致でそれぞれ対応できます。

参考記事

VLOOKUPの完全一致、近似一致の詳細については以下の記事をご参照ください。


サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_IFS.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はG5セル
  2. =ifs」等と入力
  3. サジェストから「IFS」を選択し、「Tab」キーで確定
  4. 1つ目の論理式を入力
    ※今回は「D4>=$H$4
  5. コンマ(,)を入力
  6. 1つ目の「値が真の場合」の値を入力 or セルを選択
    ※今回はG4セル(絶対参照)
  7. コンマ(,)を入力
  8. 2つ目の論理式を入力
    ※今回は「D4>=$H$5
  9. コンマ(,)を入力
  10. 2つ目の「値が真の場合」の値を入力 or セルを選択
    ※今回はG5セル(絶対参照)
  11. コンマ(,)を入力
  12. TRUE」を入力
  13. コンマ(,)を入力
  14. 3つ目の「値が真の場合」の値を入力 or セルを選択
    ※今回はG6セル(絶対参照)
  15. Enter」キーで確定
  16. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はE5~E7セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

IFSは既存データに対する条件判定を自動化するのに役立つ関数の一つです。

Excel2019以降のバージョンを使える環境であり、かつ3種類以上の条件分岐を行う機会があるなら、ぜひ覚えておいた方が良いですね。

なお、IFS以外にもExcel関数の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。

ご参考になれば幸いですm(_ _)m

森田森田

IFSは便利ですが、使用環境が限定されるため、ブックの共有先の方のExcelバージョンがExcel2016以前かどうかは確認しておくことが無難ですね。
なお、その場合はIFSではなく、従前のIFのネストやVLOOKUP等で代替しましょう。