IFS・SWITCH・CHOOSE関数で多分岐条件を制する|IF入れ子の複雑化を解消する実務パターンとMOS試験対策

「IFをネストしすぎて数式が読めなくなった」「条件が5段階あるとIF関数では限界を感じる」——これはExcelユーザーが必ず経験する壁です。Excel 2019以降・Microsoft 365ではIFS関数・SWITCH関数・CHOOSE関数という3つの多分岐専用関数が使えます。IF入れ子を解体し、条件ロジックをシンプルに保てる強力なツールです。

本記事では、IFS・SWITCH・CHOOSEの基本構文・使い分けの判断軸・実務シナリオ別の活用パターン・よくあるエラーの対処法・MOS Excel試験の出題ポイントを体系的に解説します。

目次

IFS関数の基本構文

IFS関数は複数の条件を順番に評価し、最初に真(TRUE)になった条件に対応する値を返します。

=IFS(条件1, 値1, 条件2, 値2, 条件3, 値3, ...)
引数説明省略
条件NTRUE/FALSEを返す論理式(比較演算子・AND/OR等との組み合わせ可)必須
値N条件NがTRUEのときに返す値(文字列・数値・数式・セル参照)必須

基本例:セルB2の点数に応じて評価ラベルを返す場合、IF入れ子では4段階のネストが必要でしたが、IFSならフラットに書けます。

=IFS(B2>=90, "S", B2>=75, "A", B2>=60, "B", B2>=40, "C", TRUE, "D")

最後のTRUE, "D"が「それ以外すべて」を受け持つデフォルト値です。IFSにはELSEに相当する専用引数がないため、最後の条件をTRUEにすることでデフォルト値を設定します。この記述を省略すると、どの条件にも一致しない場合に#N/Aエラーが返るので注意が必要です。

SWITCH関数の基本構文

SWITCH関数は1つの値(式)を複数の候補値と照合し、一致した候補に対応する結果を返します。プログラミングのswitch文に相当します。

=SWITCH(式, 候補1, 結果1, 候補2, 結果2, ..., [既定値])
引数説明省略
評価する値またはセル参照(比較の左辺)必須
候補N式と照合する値(完全一致のみ対応)必須
結果N候補NとマッチしたときにSWITCHが返す値必須
既定値どの候補にも一致しない場合に返す値(省略するとエラー)省略可

基本例:セルC2に入力された月番号(1~12)を四半期ラベルに変換する場合、IFSを使うと12の条件を並べる必要がありますが、SWITCHなら同じ式を一度だけ書けばよいため可読性が大幅に向上します。

=SWITCH(C2, 1,"Q1", 2,"Q1", 3,"Q1", 4,"Q2", 5,"Q2", 6,"Q2", 7,"Q3", 8,"Q3", 9,"Q3", 10,"Q4", 11,"Q4", 12,"Q4", "不明")

最後の"不明"が既定値です。C2が1~12以外の値の場合に返ります。SWITCHは完全一致のみ対応しており、「以上・以下」のような範囲条件には使えません。

CHOOSE関数の基本構文

CHOOSE関数はインデックス番号(1始まりの整数)に対応するリストの値を返します。条件分岐というよりも「番号で選択肢を切り替える」用途に向いています。

=CHOOSE(インデックス, 値1, 値2, 値3, ...)
引数説明省略
インデックス1以上の整数(どの値を返すかを指定する)必須
値NインデックスがNのときに返す値(最大254個指定可能)値1のみ必須

基本例:セルD2に1~3の優先度番号が入っていて、それを日本語ラベルに変換する場合:

=CHOOSE(D2, "高", "中", "低")

D2=1なら「高」、D2=2なら「中」、D2=3なら「低」が返ります。シンプルな構文ですが、インデックスが範囲外(0以下・リスト数超過)になると#VALUE!エラーが返るため、入力元のデータが正しい範囲内に収まることを前提とした使い方が基本です。

3関数の比較と使い分け

IFS・SWITCH・CHOOSEはいずれも多分岐ロジックを扱いますが、得意な場面が異なります。

関数得意な条件タイプ典型的な使用場面注意点
IFS不等号・AND/ORを含む柔軟な論理式点数評価区分・年齢層判定・売上ランク付け最後にTRUEのデフォルト値を置く習慣が必要
SWITCH完全一致のみ(等号判定)月→四半期・コード→名称・記号→区分範囲条件(以上・以下)には使えない
CHOOSE1始まりの連番インデックス優先度・曜日番号→表示名・ステップ番号→手順名インデックスが整数かつ1以上が必須

判断の目安:「条件が不等号や複合式なら IFS」「同じ値と複数の候補を突き合わせるなら SWITCH」「番号で選択肢を引き当てるなら CHOOSE」と覚えておくと、場面ごとの選択を素早く判断できます。

実務シナリオ別の活用パターン

シナリオ1:IFSで成績評価区分を5段階判定する

B列に点数が入った成績表で、C列に評価ランク(S/A/B/C/D)を表示する場合です。IF入れ子だと4段階のネストになりますが、IFSでは1つの関数で完結します。

=IFS(B2>=90, "S", B2>=75, "A", B2>=60, "B", B2>=40, "C", TRUE, "D")

IFSは条件を上から順番に評価して最初に一致した結果を返すため、条件の順序が重要です。B2=92の場合、最初のB2>=90がTRUEになった時点で「S」を返し、後続の条件は評価しません。逆に条件を昇順(40・60・75・90)で書くと正しく分岐しないため、大きい閾値から降順に並べることが原則です。

シナリオ2:SWITCH関数で月番号を四半期に変換する

C2に月番号(1~12)が入っており、D2にQ1/Q2/Q3/Q4を表示したい場合です。

=SWITCH(MONTH(C2), 1,"Q1",2,"Q1",3,"Q1", 4,"Q2",5,"Q2",6,"Q2", 7,"Q3",8,"Q3",9,"Q3", 10,"Q4",11,"Q4",12,"Q4", "不明")

C2が日付の場合はMONTH関数で月番号を取り出してSWITCHに渡します。SWITCHは同じ結果を複数の候補に割り当てられるため、1・2・3すべてに「Q1」と書くだけで対応できます。CHOOSE関数でも実現できますが(=CHOOSE(MONTH(C2),"Q1","Q1","Q1","Q2","Q2","Q2","Q3","Q3","Q3","Q4","Q4","Q4"))、インデックスが12まで必要なのでSWITCHの方が読みやすいケースが多いです。

シナリオ3:CHOOSEで優先度番号を日本語ラベルに変換する

タスク管理シートでE列に優先度番号(1=高・2=中・3=低)が入っており、F列に日本語ラベルを表示します。

=CHOOSE(E2, "高", "中", "低")

インデックスが1始まりの連番で固定されている場合は、CHOOSEが最もシンプルです。さらに発展させて、IFERRORと組み合わせてインデックス範囲外の入力を処理することも実務でよく使われます。

=IFERROR(CHOOSE(E2, "高", "中", "低"), "入力エラー")

E2に4以上・0以下・文字列が入力された場合の#VALUE!エラーをIFERRORで処理します。入力規則(ドロップダウン)でE2の入力を1~3に制限しておけば、IFERRORは不要になります。

シナリオ4:IFSとANDを組み合わせた複合条件判定

「売上が100万円以上かつ在庫が50個以上」のように、複数の条件を同時に満たすケースで区分を付ける場合にIFSとAND関数を組み合わせます。

=IFS(AND(F2>=1000000, G2>=50), "最優先", AND(F2>=500000, G2>=20), "優先", F2>=100000, "通常", TRUE, "要確認")

IFSの各条件にAND(またはOR)を使えば複合条件を自然な形で表現できます。IF入れ子でこれを書くと深いネストになりますが、IFSでは条件と結果が1対のペアで並ぶため、ロジックをひと目で確認できます。

よくあるエラーと原因・対処法

エラー関数主な原因対処法
#N/AIFSすべての条件がFALSEでデフォルト値(TRUE)を指定していない最後にTRUE, "デフォルト値"を追加する
#N/ASWITCHどの候補にも一致せず既定値を省略している最後に既定値の引数を追加する
#VALUE!CHOOSEインデックスが0以下・整数でない・値の個数を超えているインデックスが1以上の整数かつ値の個数以内に収まることを確認する
#VALUE!IFS条件式の構文エラー(比較演算子の誤り・文字列を”で囲んでいない)条件を単体でTRUE/FALSEになるか別セルで確認する
意図しない結果が返るIFS条件の順序が誤り(昇順に書いてしまっている)より厳しい(大きい)閾値を先に書き、降順に並べる
意図しない結果が返るSWITCH比較したい値が数値なのに文字列として比較している(”1″と1の不一致)VALUE関数で文字列を数値に変換するか、候補を文字列にそろえる

IFSのデバッグ手順:条件が多いとどの分岐に入っているか分かりにくくなります。問題のセルを選択した状態で「数式」タブ→「数式の評価」を使うと、IFSが条件を評価するステップを1つずつ確認できます。各条件式を別セルで=B2>=90のように単体テストするのも有効です。

IF入れ子との比較:可読性の差

IFS関数の最大の利点は可読性です。同じ5段階評価をIF入れ子で書いた場合と比較してみます。

' IF入れ子版(読みにくい)
=IF(B2>=90, "S", IF(B2>=75, "A", IF(B2>=60, "B", IF(B2>=40, "C", "D"))))

' IFS版(可読性が高い)
=IFS(B2>=90, "S", B2>=75, "A", B2>=60, "B", B2>=40, "C", TRUE, "D")

IF入れ子はネストが深くなるほど括弧の数が増え、条件の順序変更や追加が困難になります。IFSでは条件と結果が直感的なペアで並ぶため、条件の追加・削除・並べ替えが1ペア単位で行えるメンテナンス性の高さが実務で特に重要です。

一方でIF入れ子はExcel 2007以降のすべてのバージョンで使えます。IFS・SWITCHはExcel 2019/Microsoft 365以降が必要なため、古いバージョンのExcelファイルを扱う場面ではIF入れ子の読み書きも引き続き必要です。

MOS Excel試験でのIFS・SWITCH・CHOOSE出題ポイント

MOS Excel 365では「数式と関数の使用」スキル項目でIFS・SWITCH・CHOOSEが出題対象に含まれます。試験で頻出のポイントを整理します。

  • IFS のデフォルト値設定:最後の条件をTRUEにしてすべての残りケースをカバーする書き方が出題される。省略したときの#N/Aエラーも問われる
  • SWITCH の既定値引数の位置:候補・結果ペアの後に既定値を書く。ペアではなく単独の値が最後に来る点がIFSと異なる
  • CHOOSE のインデックス 1 始まり:0始まりではなく1始まりであることを明示的に問う問題が出る
  • WEEKDAY関数との組み合わせ=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")のようにWEEKDAY関数のシリアル値(1=日~7=土)をインデックスとしてCHOOSEに渡すパターンは頻出
  • IFS と AND/OR の組み合わせ:複合条件を含むIFS数式を問題文の指示通りに作成する操作が出題される

MOS試験 IFS・SWITCH・CHOOSE チェックリスト

確認ポイント操作内容難易度
IFS の基本構文入力=IFS(条件1, 値1, 条件2, 値2, …, TRUE, 既定値)を正しく入力できる★★☆
IFS の条件順序閾値が大きい条件から先に書くことを意識する★★☆
SWITCH の候補・結果ペア式→候補1→結果1→候補2→結果2…の順番を把握する★★☆
SWITCH の既定値ペアの後に既定値を1つ追加する位置を正しく理解する★★☆
CHOOSE+WEEKDAY 組み合わせWEEKDAY関数の戻り値(1=日~7=土)をCHOOSEのインデックスに渡す数式を作成する★★★
IFS+AND 複合条件AND関数の結果をIFSの条件式として使う入れ子数式を作成する★★★

まとめ:多分岐はIFS・SWITCH・CHOOSEの3関数で解決する

本記事のポイントをまとめます。

  • IFS関数:複数の論理式を順番に評価して最初に真になった結果を返す。不等号・AND/ORなど柔軟な条件が書ける。最後にTRUE, 既定値を必ず付ける
  • SWITCH関数:1つの値を複数の候補と完全一致で照合する。コード→名称・月→四半期のような等号変換に最適。既定値を末尾に置けばどの候補にも一致しないケースを処理できる
  • CHOOSE関数:1始まりの整数インデックスでリストの値を選択する。WEEKDAY・MONTHなど整数を返す関数と組み合わせると威力を発揮する
  • 使い分けの判断軸:不等号条件→IFS、完全一致→SWITCH、連番インデックス→CHOOSE
  • IF入れ子からの移行:IFSはIF入れ子を1段階のフラット構造に置き換えられる。メンテナンス性と可読性が大幅に向上する
  • バージョン対応:IFS・SWITCHはExcel 2019/Microsoft 365以降が必要。古いファイルを扱う場合はIF入れ子の読み書きスキルも維持する
  • MOS試験対策:IFSのデフォルト値設定・SWITCH の既定値引数・CHOOSE+WEEKDAYの組み合わせが特に頻出。構文の引数順序を正確に覚えることが高得点への近道

IFS・SWITCH・CHOOSEを使いこなせると、これまでIF入れ子で読みにくかった複雑な条件ロジックをメンテナンスしやすい形で書き直せます。既存シートのIF入れ子をIFSに変換する練習から始めると、3関数の違いと適切な使い分けが実感しやすいです。MOS試験対策としては、各関数の引数の順序と「デフォルト値の置き方の違い」を重点的に確認してください。

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

この記事を書いた人

目次