Excel(エクセル)IFS関数の使い方|IF関数のネスト不要で複数条件
IFS関数について、その使い方を初心者にも分かりやすく解説しています。IFS関数とは? IFS関数で複数条件の指定方法、IFS関数の「偽の場合」の書き方、AND関数と組み合わせて効率的に条件を指定する方法、IFS関数が使えるExcelのバージョン情報など。
使用関数:IFS、AND
IFS(イフエス)関数とは?
IF関数で3つ以上4つ以上の複数条件を指定したい時、今まではIF関数の引数に計算式をネスト(入れ子)していました。ですが、IFS関数を使うと、もっとスッキリした数式で複数条件を指定することができます。
IF関数とIFS関数の構造を比較した図です。IF関数ではIF関数の中にIF関数をネスト(入れ子)しています。それと比べて、IFS関数はシンプルで分かりやすい構造になっていますね。
論理式の指定はIF関数と同じで等号=・不等号< >を使って組み立てます。
IFS関数の論理式に使う「以上・以下・未満」などを示す等号=・不等号< >の表記一覧
- = イコール。等しい。一致する
【表記例】A1=500 - <> 異なる。一致しない
【表記例】A1<>500 - > 大きい。一致を含まない
【表記例】A1>500 - < 小さい。未満。一致を含まない
【表記例】A1<500 - >= 以上。一致を含む
【表記例】A1>=500 - <= 以下。一致を含む
【表記例】A1<=500
日付を比較演算子(等号=、不等号)で指定する例
- > 古い日付。一致を含まない
【表記例】 A1>”2022/5/1″ - < 新しい日付。未満。一致を含まない
【表記例】 A1<“2022/5/1” - >= 古い日付。一致を含む
【表記例】 A1>=”2022/5/1″ - <= 新しい日付。一致を含む
【表記例】 A1<=”2022/5/1″
文字列を比較演算子(等号=、不等号)で指定する例
- = イコール。等しい。一致する
【表記例】A1=”男性” - <> 異なる。一致しない
【表記例】A1<>”女性”
IFS関数が使えるExcelバージョン
IFS関数はExcel2016(Office365に格納されたもののみ使用可能)から加わった関数です。単体のExcelでは2019から装備されています。Excel2016以前のバージョンでは使えませんので、ご注意ください。
IFS関数の引数と書式
「数式」タブ「関数ライブラリ」→「論理」→ IFSをクリックします。
IFS関数の引数は「論理式1」「値が真の場合1」のセットが必須で、「論理式2」「値が真の場合2」~「論理式127」「値が真の場合127」まで指定可能です。
IFS関数の書式の構成はこうなります。
IFS関数を使う|4つ以上の条件を指定して判定
では、実際にIFS関数を使って複数条件を指定してみましょう。
月間購入金額に応じて顧客をランク付けします。この例では「100000以上でプラチナ」「70000以上でゴールド」「20000以上でシルバー」「それ以外はブロンズ」の4条件を分岐させます。
第一引数「論理式1」の指定
「論理式1」には複数の条件の内、ハードルの最も高いものから指定していきます。「論理式」は前述したように比較演算子「等号=」「不等号<>」を用いて組み立てます。
この例では、「ランク」の最初のセルを選択してIFS関数の引数ダイアログボックスを開き、「論理式1」に「月間購入金額」の最初のセルをクリックして「B2」を入力、続けて「>=100000」と入力します。「B2>=100000」は「B2セルにある金額が100000以上なら」という条件です。
第二引数「値が真の場合1」の指定
「値が真の場合1」には「論理式1」の条件を満たした場合に表示させるランク名を文字列で「”プラチナ”」と入力します。ダイアログで数式を組み立てる場合、「” “」は文字列の入力後にTabキーを押せば自動で付きます。
「論理式1」と「値が真の場合1」がワンセットになって、「100000以上でランクがプラチナ」という条件を指定できました。
「論理式2」「値が真の場合2」~「論理式3」「値が真の場合3」の指定
2以降は「論理式1」と「値が真の場合1」の操作の繰り返しになります。IFS関数の構造はシンプルで、「論理式:もし~なら」「値が真の場合:~する」の組み合わせを2.3.4.5…と繰り返していくだけです。
この例では「論理式2:B2>=70000」「値が真の場合2:”ゴールド”」、「論理式3:B2>=20000」「値が真の場合3:”シルバー”」と指定します。
さて、ここで、気がつくのは「真の場合」だけで「偽の場合」がないということですね。
IFS関数の「偽の場合」の書き方
上記例で「シルバー」までの条件は書きましたが、「20000未満」のランク分けができていません。もちろん、「論理式4:B2<20000 値が真の場合4:"ブロンズ"」と書けばすむわけですが、ここでは「IF関数」における「偽の場合」のように「もし~でなければ、~とする」という書き方にしたいと思います。
結論を言うと「論理式1・論理式2・論理式3のどれにもあてはまらなかったら・・・」とするためには「論理式4」にTRUEと書き入れます。一番最後の「論理式」に「TRUE」を入力すれば「偽の場合」と同じ指定ができるということです。
この例では「論理式4」にTRUE、「値が真の場合4」に”ブロンズ”と入力します。「それまで指定した1~3条件全てに合致しなかったら、ランクはブロンズ」ということです。
なぜTRUEなのか?というと、「論理式1~論理式3」で20000以上は検索済みなので残った検索対象をTRUE関数で確認して「値が真の場合4」に振り分けるという流れらしいです。とりあえず、「IF関数」における「偽の場合」を「IFS関数」に組み込みたい場合は「一番最後の論理式にTRUE」と覚えておきましょう。
IFS関数による月間購入金額に応じた顧客のランク付けが実装できました。
最終的な数式 =IFS(B2>=100000,”プラチナ”,B2>=70000,”ゴールド”,B2>=20000,”シルバー”,TRUE,”ブロンズ”)
IFS関数とAND関数を組み合わせた使い方
IFS関数の複数条件は「AまたはB、さもなければC」のOR条件です。これに「AかつB」のAND条件を入れて「AかつB、さもなければC」という論理式にしたいと思います。「AかつB」のところはAND関数をネストして実装します。
以下の表で、「英語と数学の両科目とも80点以上がAクラス、合計点が140点以上がBクラス、それ以外がCクラス」に分けます。
まず、「英語と数学の両科目とも80点以上」をAND関数で組み立て、=を除く数式をコピーしておきます。
この数式「AND(B2>=80,C2>=80)」をIFS関数の「論理式1」にペーストし、「値が真の場合1」には”Aクラス”と文字列を入力します。「論理式2」には「合計点が140点以上」を「D2>=140」と入力、「値が真の場合2」には”Bクラス”と文字列を入力します。
最後の条件「論理式3」にはTRUEと入力、「値が真の場合3」には”Cクラス”と文字列を入力します。
最終的な数式 =IFS(AND(B2>=80,C2>=80),”Aクラス”,D2>=140,”Bクラス”,TRUE,”Cクラス”)
オートフィルコピーしてクラス分けの完了です。
このようにIFS関数にAND関数をネストすることで、AND条件とOR条件を併用した複数条件の指定ができます。IF関数でもできますが、IFSの方が数式の組み立てが簡単なので効率的です。
- IFS関数は、IF関数でネストを繰り返して組み立てた数式を一つにまとめて効率的に実装できます
- IFS関数はExcel2019(Office365では2016)から装備された関数で、Excel2016以前のバージョンでは使えません
- IFS関数は複数の条件を指定して判定結果を分岐させる場合に使います
- IFS関数の引数は「論理式」と「値が真の場合」がセットで、最大127セットまで指定可能です
- 最後の「論理式」にTRUEを指定することで、IF関数における「偽の場合」で締めくくることができます
- IFS関数とAND関数を組み合わせれば、AND条件とOR条件を併用した複数条件の指定が比較的簡単にできます。