-
Home »
-
エクセル関数一覧表 »
-
IFS関数(IFのネストが簡潔になります)
2023/1/19
論理式が真の場合の値を返します。
イフズ
=IFS(論理式1,1が真の場合,[論理式2,2が真の場合],・・・)
Excel2019,Excel for Microsoft 365 で使用することができます
IF関数とIFS関数の使い方の違い
- 論理式(条件)を満たす場合に指定した値を返します。
以前からあるIF関数は =IF(論理式,真の場合,偽の場合) といった構文でしたので、複数の条件を1つのIF関数で指定するには、
=IF(論理式1,1が真の場合,IF(論理式2,2が真の場合,2が偽の場合))
といった具合にネストした数式を組み立てる必要がありました。
ネストしたIF関数は作成するのや解読するのがちょっと面倒な感じがするものでした。
- IFS関数では論理式(条件式)を順番に並べて書く方式なので作成しやすくまた理解しやすくなると考えます。
=IFS(論理式1,1が真の場合,論理式2,2が真の場合)
- IFS関数はExcel2019,Excel for Microsoft 365 で使用することができます。
なお、似た関数としては、CHOOSE関数やSWITCH関数があります。
- 論理式で使用する比較演算子
演算子 |
意味 |
A = B |
AはBは等しい |
A <> B |
AとBは等しくない |
A > B |
AはBより大きい |
A >= B |
AはB以上 |
A < B |
AはBより小さい |
A <= B |
AはB以下 |
IFS関数の使い方の例
【問題1】
- 得点が0以上30以下は×、60以下は△、60を超え100以下は○と評価することにします。
|
B |
C |
D |
2 |
名前 |
得点 |
評価 |
3 |
井上 |
80 |
○ |
4 |
上野 |
54 |
△ |
5 |
内田 |
30 |
× |
6 |
榎田 |
15 |
× |
7 |
岡本 |
77 |
○ |
8 |
大野 |
91 |
○ |
【問題1の解答例】
- 30以下なら”×”、60以下なら”△”、100以下なら”○” と判定します。
フローチャートにするとこんな感じになります。
FALSEとなった場合は何も指定していませんので、エラー #N/A が返されます。
数式は =IFS(C3<=30,"×",C3<=60,"△",C3<=100,"○") としています。
- D3:D8セルを選択して、D3セルに =IFS(C3<=30,"×",C3<=60,"△",C3<=100,"○") と入力し、[Ctrl]+[Enter]キーで確定します。
1回の入力操作ですみます。
- D3セルに =IFS(C3<=30,"×",C3<=60,"△",C3<=100,"○") と入力し、[Ctrl]+[Enter]キーで確定します。
フィルハンドルをダブルクリックして、D8セルまで数式をコピーします。
アクティブセルが移動しないように、数式を入力する時に[Enter]だけではなく、[Ctrl]+[Enter]とすると、一手間が減ります。
- なお、Excel for Microsoft 365をお使いで、Spillの機能が使える場合
D3セルに =IFS(C3:C8<=30,"×",C3:C8<=60,"△",C3:C8<=100,"○") と入力するだけです。
論理式でセル範囲を C3:C8 とします。
- ちなみに、IF関数で書くと =IF(C3<=30,"×",IF(C3<=60,"△",IF(C3<=100,"○",NA()))) といった感じです。
【問題2】
- C列の年齢を30歳代、40歳代、50歳代と区分けをしなさい。なお、50歳以上は50歳代とします。
【問題2の解答例】
- D3セルの数式は =IFS(C3>=50,"50歳代",C3>=40,"40歳代",C3>=30,"30歳代") とします。
- この数式は前から順番に「C3>=50」を満たせば「50歳代」を返し、「C3>=40」を満たせば「40歳代」を返し、「C3>=30」を満たせば「30歳代」を返すといった具合になっています。
- なお、IF関数を使って数式を作成することもできます。
D3セルに =IF(C3>=50,"50歳代",IF(C3>=40,"40歳代","30歳代")) とします。
- 最後の論理式に、TRUE を入れて、それ以前の条件を満たさない時に返す値を書きます。
=IFS(論理式1,1が真の場合,[論理式2,2が真の場合],TRUE,条件を満たさないとき)
【問題3】
- C列にB列の得点の評価を表示しなさい。平均点以上は「平均以上」、平均点未満は「平均未満」と表示しなさい。

【問題3の解答例】
- IFS関数を使うと、 =IFS(C3>=AVERAGE($C$3:$C$8),"平均以上") と、ここまでは書けると思います。
ところがIFS関数は真となる場合に値を返すのみですので、偽になる場合(条件を満たさない場合)は #N/A とエラーになります。
- 条件を満たさない場合を数式内に書く必要があります。
IFS関数を使う場合は
=IFS(C3>=AVERAGE($C$3:$C$8),"平均以上",TRUE,"平均点未満")
とします。
最後の論理式に、TRUE を入れて、それ以前の条件を満たさない時に返す値"平均点未満"を書きます。
つまり、以前の条件を満たさないもの = TRUE で、この場合に返す値を指定するといった感じです。
ちなみに、IF関数では =IF(C3>=AVERAGE($C$2:$C$8),"平均以上","平均未満") と書きます。
- または、平均点未満の条件式を書きます。
=IFS(C3>=AVERAGE($C$3:$C$8),"平均以上",
C3<AVERAGE($C$3:$C$8),"平均点未満")
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 »
IFS関数(IFのネストが簡潔になります)
PageViewCounter

Since2006/2/27