売上をレポートする際、目標達成率が120%以上なら「S」、100%以上なら「A」、それ以外は「B」といった感じに記号を振り分ける作業がありますが、記号の種類が増えるとIFをネストするのが大変ですね・・・。
数式が見にくいですし、カッコ()の付け忘れも多くなってしまいます・・・。
もっと楽になる方法はありますかね?
その場合は、関数の「IFS」を活用すると良いですよ!
では、IFSの使い方について解説していきますね。
はじめに
この記事は関数の概要とIFの詳細を把握していることが前提です。
関数の概要とIFの使い方の詳細は以下の記事をご参照ください。
はじめに この記事は数式の概要を把握していることが前提です。 参考記事 数式の概要の詳細は以下の記事をご参照ください。 関数とは 関数とは、数式の構成要素の1つであり、固有の計算/処理の機能がセットされた数式のことです。 …
はじめに この記事は関数の概要を把握していることが前提です。 参考記事 関数の概要については以下の記事をご参照ください。 条件判定の結果を値で表示したい場合は「IF」が有効 実務では、既存データに対して基準値を条件に評価 …
3種類以上に条件分岐させる数式をシンプルにしたい場合は「IFS」が有効
IFは1つの数式で2種類の分岐まで対応可能です。
よって、3種類以上に分岐させたい場合は、通常は複数のIFをネストします。
たとえば、集計した売上金額の目標達成率ごとに「S」~「B」の3種類のランク分けを行う場合、以下のような数式になります。
今回は3種類の分岐なので2つのIFで済んでいるため、まだ見やすい範囲ですが、IFの数に比例して数式の可読性が悪くなり、数式設定時のエラー発生率も上がります。
この場合、関数の「IFS」を使うとよりシンプルな数式で同じ結果を得ることが可能です。
IFSは「イフス」と読む。
IFSを使うことで、1つの数式で3種類以上の条件分岐に対応できます。
なお、IFSはExcel2019以降または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つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。
ベースの数式をセットしたら、他のセルへペーストしましょう。
なお、今回は各引数で参照している評価基準のセル(H4・G4・H5・G5・G6)は全レコードで参照を固定するため、絶対参照にしています。
絶対参照/相対参照の詳細については以下の記事をご参照ください。
関数の数式を直接入力できるようになってきました! もっと関数を実務で役立てていくために、他に覚えておいた方が良いことはありますか?? …
IFSの数式の挿入手順
上記の結果を得るための手順は以下の通りです。
- 関数を挿入するセルを選択
※今回はG5セル - 「=ifs」等と入力
- サジェストから「IFS」を選択し、「Tab」キーで確定
- 1つ目の論理式を入力
※今回は「D4>=$H$4」 - コンマ(,)を入力
- 1つ目の「値が真の場合」の値を入力 or セルを選択
※今回はG4セル(絶対参照) - コンマ(,)を入力
- 2つ目の論理式を入力
※今回は「D4>=$H$5」 - コンマ(,)を入力
- 2つ目の「値が真の場合」の値を入力 or セルを選択
※今回はG5セル(絶対参照) - コンマ(,)を入力
- 「TRUE」を入力
- コンマ(,)を入力
- 3つ目の「値が真の場合」の値を入力 or セルを選択
※今回はG6セル(絶対参照) - 「Enter」キーで確定
- 1行目の数式をコピーし、以降のセルへペースト
※今回はE5~E7セルへペースト
手順②の際にIMEを半角英数モードにすること。
4つ目以降の論理式を加える場合、手順⑫の手前で手順⑧~⑪を繰り返す。
手順⑫は「tru」等と入力し、サジェストから「TRUE」を選択し、「Tab」キーで確定する方法でも良い。
テーブルの場合、手順⑯は不要(全レコードへ数式が自動的にコピーされる)。
【参考】条件分岐の種類が多い場合はVLOOKUP等での代替も要検討
IFSが最大127種類に条件分岐できると言っても、分岐の種類が増えると数式が複雑化する傾向は変わりません。
条件によっては、VLOOKUPやXLOOKUP等を活用すると、よりシンプルな数式で対応できるケースもあります。
具体的には、次の2つの条件に該当するケースです。
- 等しい(A=B)
- 以上(A>=B)
条件1ならVLOOKUP等の完全一致、条件2なら近似一致でそれぞれ対応できます。
VLOOKUPの完全一致、近似一致の詳細については以下の記事をご参照ください。
はじめに この記事は関数の概要を把握していることが前提です。 参考記事 関数の概要の詳細は以下の記事をご参照ください。 別表からのデータ転記を自動化したい場合は「VLOOKUP」が有効 実務でデータ集計/分析を行う際、1 …
はじめに 本題に入る前に、この記事がおすすめな人を挙げてみます。 データの転記・集約作業が多い人 エクセルを使う頻度が高い人 事務職の人 ちなみに、最低限「VLOOKUP関数の基礎」を把握している想定での記事となります。 …
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)
- 関数を挿入するセルを選択
※今回はG5セル - 「=ifs」等と入力
- サジェストから「IFS」を選択し、「Tab」キーで確定
- 1つ目の論理式を入力
※今回は「D4>=$H$4」 - コンマ(,)を入力
- 1つ目の「値が真の場合」の値を入力 or セルを選択
※今回はG4セル(絶対参照) - コンマ(,)を入力
- 2つ目の論理式を入力
※今回は「D4>=$H$5」 - コンマ(,)を入力
- 2つ目の「値が真の場合」の値を入力 or セルを選択
※今回はG5セル(絶対参照) - コンマ(,)を入力
- 「TRUE」を入力
- コンマ(,)を入力
- 3つ目の「値が真の場合」の値を入力 or セルを選択
※今回はG6セル(絶対参照) - 「Enter」キーで確定
- 1行目の数式をコピーし、以降のセルへペースト
※今回はE5~E7セルへペースト
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
IFSは既存データに対する条件判定を自動化するのに役立つ関数の一つです。
Excel2019以降のバージョンを使える環境であり、かつ3種類以上の条件分岐を行う機会があるなら、ぜひ覚えておいた方が良いですね。
なお、IFS以外にもExcel関数の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m
IFSは便利ですが、使用環境が限定されるため、ブックの共有先の方のExcelバージョンがExcel2016以前かどうかは確認しておくことが無難ですね。
なお、その場合はIFSではなく、従前のIFのネストやVLOOKUP等で代替しましょう。