エクセルのIFS関数・SWITCH関数の使い方|多重分岐・IFの入れ子との違い

エクセルのIFS関数・SWITCH関数の使い方|多重分岐・IFの入れ子との違い

エクセルで、3つ以上の条件に分けて、表示を切り替えるには、IFS関数が便利です。IF関数を何重にも入れる必要がなく、=IFS(B3>=90,"S",B3>=80,"A",B3>=70,"B",B3>=60,"C",TRUE,"D") のように、「条件」と「結果」を、順に並べるだけです。値によって、結果を変えるなら、SWITCH関数です。

この記事では、IFS関数の使い方、IF関数の入れ子との違い、「#N/A」になる原因、SWITCH関数の使い方、既定値の指定、SWITCH関数で範囲を判定する方法を、1つの表を使って説明します。下の練習ツールで、得点やコードを書き換えて、結果の変わり方を試せます。

目次

IFS関数とSWITCH関数|使い分けの早見表

やりたいこと使う関数式(例)
得点を、S・A・B・C・Dに分けるIFS関数=IFS(B3>=90,”S”,B3>=80,”A”,…,TRUE,”D”)
どの条件にも、当てはまらないときIFS関数(最後にTRUE)=IFS(…,TRUE,”D”)
コードの値によって、結果を変えるSWITCH関数=SWITCH(D3,1,”東日本”,2,”西日本”,”不明”)
範囲で判定して、結果を変えるSWITCH(TRUE,…)=SWITCH(TRUE,B3>=90,”S”,B3>=80,”A”,”B”)
2つに分ける(合格・不合格)IF関数=IF(B3>=60,”合格”,”不合格”)
ポイントポイント:IFS関数は、上から順に条件を調べて、最初に当てはまったものの結果を返します。点数のように、大きい値から並べる条件は、順番が大切です。小さい値の条件を先に書くと、大きい値も、先の条件に当てはまってしまいます。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

IFS関数の使い方(3つ以上に分ける)

得点が90点以上はS、80点以上はA、70点以上はB、60点以上はC、それ以外はDと、5段階に分けます。結果は、C3セルに求めます。

1
結果を出したいセル(C3)を選びます。
2
「=IFS(」と入力します。
3
1つ目の条件(B3>=90)と、その結果(”S”)を、「,」でつなげて入力します。
4
2つ目以降の条件と結果も、同じように、続けて入力します。
5
最後は、「TRUE,”D”」で、どれにも当てはまらないときの結果を入力して、「)」を入力し、Enter キーを押します。
IFS関数の式
数式=IFS(B3>=90,"S",B3>=80,"A",B3>=70,"B",B3>=60,"C",TRUE,"D")
ひとことでIFS
B3>=90
です
"S"
です
B3>=80
です
"A"
です
B3>=70
です
"B"
です
B3>=60
です
"C"
です
TRUE
です
"D"
です
エクセルでIFS関数とSWITCH関数を使った表(得点、評価、コード、地域、各式の結果)
エクセルでIFS関数とSWITCH関数を使った表(得点、評価、コード、地域、各式の結果)

梅は92点なので、1つ目の条件に当てはまり、結果は S です。桜は78点で、70点以上なので、B になります。竹は40点で、どの得点の条件にも当てはまらないので、最後の「TRUE」の結果で、D になります。詳しくは、得点をA・B・C・Dに振り分ける方法を参照してください。

IF関数の入れ子との違い

IFS関数は、IF関数を、何重にも入れた式と、同じ結果になります。IF関数で書き直すと、次のとおりです。

IF関数の式
数式=IF(B3>=90,"S",IF(B3>=80,"A",IF(B3>=70,"B",IF(B3>=60,"C","D"))))
ひとことで条件で結果を切り替える
B3>=90
条件です
"S"
真の場合です
IF(B3>=80,"A",IF(B3>=70,"B",IF(B3>=60,"C","D")))
偽の場合です

結果は、同じ S です。IF関数の入れ子は、「)」の数が増えて、読みにくくなります。IFS関数なら、条件と結果が、横に並ぶだけなので、あとから、条件を足したり、直したりしやすくなります。IF関数の基本は、IF関数の使い方で説明しています。

「#N/A」になるとき(どの条件にも当てはまらない)

IFS関数は、どの条件にも当てはまらないと、「#N/A」を返します。たとえば、95点以上の条件だけを指定して、梅(92点)を判定すると、次のようになります。

IFS関数の式
数式=IFS(B3>=95,"S")
ひとことでIFS
B3>=95
です
"S"
です

92点は、95点未満なので、結果は #N/A です。最後の条件に「TRUE」を指定すると、どれにも当てはまらないときの、結果を決められます。

IFS関数の構文
数式=IFS(B6>=60,"合格",TRUE,"不合格")
ひとことでIFS
B6>=60
です
"合格"
です
TRUE
です
"不合格"
です

竹(40点)は、60点未満なので、「TRUE」の結果になって、不合格 です。

SWITCH関数の使い方(値によって結果を変える)

「コードが1なら東日本、2なら西日本、3なら海外」のように、値によって、結果を変えるときは、SWITCH関数が便利です。書き方は、SWITCH(調べる値, 値1, 結果1, 値2, 結果2, …, 既定値) です。最後に、どれにも一致しないときの「既定値」を書きます。

SWITCH関数の構文
数式=SWITCH(D3,1,"東日本",2,"西日本",3,"海外","不明")
ひとことでSWITCH
D3
です
1
です
"東日本"
です
2
です
"西日本"
です
3
です
"海外"
です
"不明"
です

梅のコードは「1」なので、結果は 東日本 です。楓のコードは「9」で、どれにも一致しないので、既定値の 不明 になります。既定値を省略すると、一致しないときに、「#N/A」になります。

SWITCH関数の構文
数式=SWITCH(D7,1,"東日本",2,"西日本","その他")
ひとことでSWITCH
D7
です
1
です
"東日本"
です
2
です
"西日本"
です
"その他"
です

楓のコード(9)は、どれにも一致しないので、結果は その他 です。

SWITCH関数で範囲を判定する(SWITCH(TRUE))

SWITCH関数は、本来、「一致するか」を調べる関数ですが、調べる値に「TRUE」を指定すると、「条件が正しいか」で、判定できます。IFS関数と、ほぼ同じ使い方になります。

SWITCH関数の式
数式=SWITCH(TRUE,B3>=90,"S",B3>=80,"A","B")
ひとことでSWITCH
TRUE
です
B3>=90
です
"S"
です
B3>=80
です
"A"
です
"B"
です

梅は、92点で、最初の条件が TRUE なので、結果は S です。最後の「”B”」は、どの条件にも当てはまらないときの、既定値です。

IFS関数・SWITCH関数が使えない・うまくいかないときの確認表

症状考えられる原因対処
「#NAME?」と出るExcel 2016以前など、IFS・SWITCHが使えないIF関数の入れ子や、VLOOKUP関数の近似一致を使う。
「#N/A」と出るどの条件・値にも、当てはまらない最後に「TRUE,…」や、SWITCHの既定値を付ける。
結果が、思った段階にならない条件の順番が、逆になっている大きい値の条件から、順に並べる。
「この関数には引数が足りません」と出る条件と結果が、ペアになっていない条件の数と、結果の数を、そろえる。
SWITCHが、一致しない数値と文字の違い(「1」と1)調べる値と、値の型を、そろえる。
値を変えても、結果が変わらない計算方法が「手動」になっている「数式」タブの「計算方法の設定」を「自動」にする。

IFS関数・SWITCH関数のよくある質問

IFS関数は、どのバージョンで使えますか?

Excel 2019以降と、Microsoft 365で使えます。Excel 2016では、Microsoft 365のサブスクリプション版のみ、使えます。古いバージョンでは、IF関数の入れ子を使います。

IFS関数で、どれにも当てはまらないときを、決めるには?

最後の条件に、「TRUE」を指定します。=IFS(…,TRUE,"それ以外") のように書くと、どの条件にも当てはまらないときの結果になります。

IFS関数と、SWITCH関数は、どう使い分けますか?

値の範囲(点数など)で分けるなら、IFS関数です。値が「一致する」ことで分けるなら(コード、曜日の番号など)、SWITCH関数です。

あわせて読みたい:条件分岐の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次