Office 365 の 最新バージョンの Excel を使用していると、アップデート時に新しい関数が追加されることがあります。
今回はその中の 1 つである IFS 関数について紹介します。

たとえば、COUNTIFS だったら複数の条件に一致するセルの個数を求められるし、SUMIFS だったら複数の条件に一致するときの数値の合計を求めることができるので、IFS 関数は、「IF」に「S」がついているので “複数” の何かに対応できるってことかな、というイメージはできます。


ヘルプによる IFS 関数の説明はこれ↓(太字のところ。構文は日本語に変えて色分けしてあります。)

IFS 関数は、1 つ以上の条件が満たされているかどうかをチェックして、最初の TRUE 条件に対応する値を返します。IFS は、複数のネストした IF ステートメントに置き換えることができるため、複数の条件を読み込むのがより簡単です。
IFS 関数では、最大 127 個のさまざまな条件をテストすることができます。

■構文
IFS(論理式1,論理式1が TRUEの場合,論理式2,論理式2が TRUE の場合,...,論理式127,論理式127が TRUE の場合)

■例
=IFS(A1=1,1,A1=2,2,A1=3,3)
A1 が 1 と等しい場合は 1 を表示し、A1 が 2 と等しい場合は 2 を表示し、A1 が 3 と等しい場合は 3 が表示されます。

このヘルプを読み解くと、論理式の結果が TRUE となる (すなわち条件と一致する) かどうかをチェックするときに、1 つ目をチェックして該当すれば 1 つ目の処理を行い、該当しなければ 2 つ目をチェック、それにも該当しなければ 3 つ目・・・というように、該当するかどうかを順番にチェックして (現実的ではないけれど) 上記で色分けしている 127 個のチェックと処理の組み合わせを指定できるということですね。
 

IF関数とIFS関数

今回は、ヘルプにあった「複数のネストした IF ステートメントに置き換えることができる」というのをテーマに、IF 関数を使用する場合と IFS 関数を使用する場合の違いを例にご紹介しようと思います。

本当は、数値データで利用することのほうが多いのかもしれませんが、分かりやすさを優先して今回はこんな例にしてみました。

下図の表の C 列 (赤枠のところ) に、A 列の値に応じた文字列を表示するために IF 関数を使用した例です。
S001.png


文章にするとイメージはこんな感じ↓

S02.png

 

この文章を IF 関数を使ったざっくりした数式で表すとこんな感じ↓

S003.png


ちゃんとした数式で表すとこんな感じ↓

S004.png


IF 関数の数式の中でさらに分岐をするために IF 関数をネストしています。ヘルプにあった「複数のネストした IF ステートメント」ってやつです。
S005.png


こちらは IFS 関数を使用した例です。
S006.png


文章にするとイメージはこんな感じ↓

S07.png


この文章を IFS 関数を使ったざっくりした数式で表すとこんな感じ↓
S008.png


ちゃんとした数式で表すとこんな感じ↓。
関数は 1 度 (1 つ) しかでてきません。複数のネストした IF 関数での処理と同じことができています。(つまり 複数のネストした IF ステートメントに置き換えることができる といっているのがコレ)
S009.png


ということで、IFS 関数でなければ絶対にできない、というわけではないけれど、1 つの関数 (数式) でシンプルに処理を行うことができるというのがメリットでしょう。

ちなみに、文章で表したときの「上記の 3 つに一致しなかったら」というのを指定するために、数式の最後に「TRUE,”その他”」という引数の組み合わせを指定してあります。
前 3 つで全部 FALSE が返ってきた= 3 つ以外の場合にTRUE が返る → TRUEが返ったら “その他” と表示せよ、いうことですね。

おまけ

数値 (日付) を例にした説明をおまけに。

日付をもとに四半期を表示するときに選択される方法 (数式) は、1 つではありません。(IF とか CHOOSE とかでできる)
4月スタート (4月から6月が第1四半期) とした場合のケースを例に IF 関数と IFS 関数によって表示しているのが下記の例です。

IF 関数を使用した例がこちら。
A 列の日付をもとに B 列に MONTH 関数によって月が表示されています。
この B 列の値を判定材料とし、IF 関数をネストして四半期を求めています。
S010.png

IFS 関数を使用した例がこちら。
A 列の日付をもとに B 列に MONTH 関数によって月が表示されているのは IF 関数と同じです。
この B 列の値を判定材料とし、IFS 関数で四半期を求めています。
S011.png

 


新しい関数の魅力は、今までは複数の関数をネストして処理してきたけれど、それが 1 つの関数で対応できるといういうことです。
なので、これを使わないと絶対できない!ということはなくて、工夫次第でなんとかなるのですが、1 つの関数 (数式) でシンプルに処理を行うことができるというのがメリットでしょう。(数式は短くシンプルであるほうがよろしい)

ただし、Office 365 のサブスクリプションを使用していて最新の状態になっている Excel なら新しい関数を使用できますが、Excel 2010 などの対応していないバージョンでは IFS 関数に限らず新しい関数を認識できませんので、更新時にエラーになります。そのファイルを使用するユーザーとのことを考えて選択し、関数を利用してください。

石田 かのこ