IFS関数とは
IFS関数とは、Excelやスプレッドシートにおいて、条件を満たすかどうかチェックし、値を返す関数です。1つの条件から使用することができますが、主に条件がいくつか同時に設定される場面で活用します。ここでは、実際にIFS関数を用いて条件を設定し集計する方法を図解します。
IFS関数の概要
IFS関数は、IF関数を複数条件の際にも利用できるように拡張した関数です。構文は、次のように記述します。
IFS(論理式1, 論理式1が真の場合の値, [論理式2, 論理式2が真の場合の値[, [論理式3, 論理式3が真の場合の値],... )
論理式とその論理式が真の場合の値を、セットで記述します。この記述は最大127個まで対応でき、複数の条件が設定されている場合は記述が簡単になります。IFS関数はExcel 2019以降およびMicrosoft 365で利用可能です。IFS関数が使えない場合は、使用するExcelのバージョンを確認しましょう。
そもそもIF関数とは
IF関数とは、論理式の真偽に応じて値を返す関数です。構文は次の通りです。
IF(論理式, 真の場合の値, [偽の場合の値])
論理式が真の場合、指定した値を返します。偽の場合も指定することができますが、未指定の際にはFALSEを返します。なお、論理式は要望に合わせてセルを比較演算子で直接比較したり、計算式を入れて比較したりすることができます。
先に紹介したIFS関数は、Excel2016あるいはそれ以前のバージョンでは使用できません。そのため、複数の条件を記述するにはIF関数をネストしてIF関数を追記するなどを行う必要があります。
IFS関数の使い方
ここでは、IFS関数を実際に使用して記述の仕方を学んでいきます。例えば、次のような試験結果がある場合、GPAに換算する方法を考えてみます。
GPAはスコアの分布に応じて集計する必要があります。90点以上=4、80点以上=3、70点以上=2、60点以上=1、それ以下=0のように分布します。IFS関数は複数の条件を記述できますので、このような集計にうってつけです。
ここからは、最初にIFS関数の前提となるIF関数を学び、その後IFS関数を解説していきます。
IF関数で複数の条件を記述する
IF関数は、条件を1つしか記述できません。複雑な集計を行うには複数の条件が求められますが、その場合は、IF関数をネストつまり入れ子にして使用することができます。例えば、IF関数の条件が1つ、2つ、そしてそれ以上の場合は次のように記述します。
IF(論理式, 真の場合の値)
IF(論理式, IF(論理式, 真の場合の値))
IF(論理式, IF(論理式, IF(論理式, 真の場合の値),,))
:
これを利用すると、GPAは次のように計算できます。最初に、学籍番号90001の英語のGPAであるI3セルに、試験結果が入力されているE3セルを用いて計算します。
最初のIF関数の前には、数式を表すイコール(=)を先に入力します。その後条件式を、「E3>=90」、「E3>=80」、「E3>=70」、「E3>=60」で示し、それぞれをIF関数のネストで記述しています(①②③④)。
いずれでもない場合は0を返します(⑤)。式の括弧を閉じる際は数を間違えずに行う必要があります。
上の例では、I3セルに対して英語の試験結果を示すE3セルを用いて計算しましたが、入力した値をもう1度見ておきます。
=IF(E3>=90,4, IF(E3>=80,3, IF(E3>=70,2, IF(E3>=60,1,0))))
以上の手順で、E3セルの値が計算できたら、他のセルに値をコピーすることができます。ここでは最初に行方向に数式をドラッグアンドドロップし(①)、その後列方向にドラッグアンドドロップしています(③)。最終的には、オートフィル機能によって値が全セルにコピーされます(③)。
これらの手順で、IF関数を使ってGPAの換算結果を算出することができますが、入力した式をメンテナンスする際には項目や括弧の抜けに注意する必要があります。
IFS関数で複数の条件を記述する
ここでは、複数条件に対応するIFS関数を用いて計算を行います。IFS関数を使うには、条件を条件式と値のセットで記述するだけです。最初に真となった時点で値が戻ります。実際の使用例は次の通りです。
IF関数同様に、学籍番号90001の英語のGPAであるI3セルに、試験結果が入力されているE3セルを用いて計算します。
GPAの換算方法にしたがって90点以上(①)、80点以上(②)、70点以上(③)、60点以上(④)、そして60点未満を記述します(⑤)。ここでは、IF関数とは異なり、偽を表す「それ以外」の指定は使わずに、全て論理式と値の組み合わせで記述していきます。「それ以外」の使い方は、後述します。
実際の記述内容は、E3セルの集計に次のように数式を記述しました。
=IFS(E3>=90,4, E3>=80,3, E3>=70,2, E3>=60,1, E3<60,0)
ここでは、GPAの値の換算を順に行うだけでネストなどせずに、簡単に記述できることが分かります。E3セルの計算が終了したらIF関数の場合と同様に、全体のセルにドラッグアンドドロップで必要な値をコピーし、次の結果が得られます。
このようにIF関数と比べると、条件式の記述を単純化できるのがIFS関数の特徴と言えます。
IFS関数のまとめ
これまでに、IF関数とIFS関数を使って複数条件の記述方法を学びました。ここで、内容のポイントをもう1度整理します。次の図は、英語のGPAであるI3セルに、試験結果が入力されているE3セルの値からGPAを計算したIF関数およびIFS関数の記述の違いです。
IF関数はネストを使用して複数条件を記述できますが、記述が大変でした(①)。括弧の数の入力間違いや保全性に問題が起きやすい欠点があります。
IFS関数は、あらかじめ論理式と真の時に返す値をセットで記述します(②)。そのため、記述がシンプルです。
この違いを見ると、IFS関数は論理式と値のセットだけを気にすればよく、簡単なことが分かるでしょう。なお条件の評価は左の論理式から順に行われますので、IF関数とIFS関数では違いがありません。
IFS関数で「それ以外」を表すには
これまでに、IFS関数は条件式が真の場合のセットで扱うことを学んできました。ここでは、IF関数で表す偽つまり「それ以外」について、どのように記述するのか解説します。
IF関数で用いた偽を表す「それ以外」の指定が面倒と感じるかもしれませんが、次のように記述すると「それ以外」を表すことができます。最初がIF関数、2番目がIFS関数の構文です。
IF(論理式, 真の場合の値, [偽の場合の値(=それ以外)])
IFS(論理式, 真の場合の値, TRUE, 偽の場合の値(=それ以外))
IFS関数の場合、論理式の最後に「TRUE」を入れると偽「それ以外」を表すため、IF関数とIFS関数は同じ意味合いに解釈されます。
以上のことから、今回GPAの換算で用いた数式は次のように記述することもできます。GPAスコア0を示す場合の、1番目の例が通常の記述方法、2番目が「それ以外」の記述方法です。
=IFS(E3>=90,4, E3>=80,3, E3>=70,2, E3>=60,1, E3<60,0)
=IFS(E3>=90,4, E3>=80,3, E3>=70,2, E3>=60,1, TRUE,0)
TRUEを最後に使用するのが、「それ以外」を表すポイントです。この使い方が分かれば、記述の理解も進むでしょう。
特定の式に対しては他の選択肢もある
IFS関数同様に、SWITCH関数と呼ばれる式の評価関数が提供されています。Excel 2019以降およびMicrosoft 365でサポートされます。定義した式に対して、値と対応結果を記述します。
SWITCH(式, 値1, 結果1, [規定値 または 値2, 結果2],,)
特定の値に対して結果を指定できるので、日付から1週間の曜日を求める場合などに役立つ関数です。関数の使い方をIFS関数と合わせて覚えておきましょう。
【参考】:Microsoft サポート: SWITCH 関数
IFS関数はIF関数よりも使いやすい
IFS関数は複数条件を入れられるため、IF関数よりも複雑な計算などを行うことができます。また、論理式と値をセットで記述するため、メンテナンス性に優れています。1つの条件でも使用できるため、まずはIFS関数を試してみることをおすすめします。
その他の関連記事
その他に関連する内容は、下記の記事でも紹介しています。ぜひ参考にしてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから