4大分岐関数の使い分け(IF/IFS/SWITCH/CHOOSE)
Excelには複数の「分岐関数」がありますが、実はそれぞれ得意分野が違います。
「IF関数だけで何でも力技で書いていた……」
という人も多いかもしれませんが、適切に使い分けると数式は圧倒的に読みやすくなります。
「条件によって返す結果を切り替える関数」のことです。
たとえば「テストの点数が80点以上なら『合格』、それ以外なら『不合格』にする」という処理を指します。
ページ内目次
1. IF関数:すべての基本!単純な2択なら迷わずこれ
2. IFS関数:3つ以上の複雑な条件を上から順に判定
3. SWITCH関数:「この値ならこれ!」という完全一致の分岐
4. CHOOSE関数:1, 2, 3…の「番号」に対応する候補を選択
応用:実務では関数に埋め込まず「マスタ表」化を検討しよう
まとめ:迷ったときのフローチャート
分岐関数の特徴まとめ
| 関数名 | 得意な用途 | 特徴 |
| IF | 2択 | 最も基本。「〇〇か、それ以外か」の判定向き。 |
| IFS | 多段階判定 | 3つ以上の条件を上から順番に評価する。 |
| SWITCH | 完全一致 | 特定の値と「一致するか」だけを判定。同じ値を何度も書かない。 |
| CHOOSE | 番号選択 | 1, 2, 3...という「連番」に対応した結果を返す。 |
1. IF関数:すべての基本!単純な2択なら迷わずこれ
「〇〇か、それ以外か」を判定するときに使います。構文Excel=IF(条件式, 真の場合, 偽の場合)
=IF(A1>=80, "合格", "不合格")
条件が2つ(合格か不合格か)だけなら、IF関数が最もシンプルです。
2. IFS関数:3つ以上の複雑な条件を上から順に判定
そのため、条件を書く順番を間違えると正しく動作しません。
一見正しそうですが、これだと「80点」の場合、最初の条件(A1>=60)をクリアしてしまうため、その時点で「可」が返されてしまいます。
このように、条件の厳しい順番(または数値の大きい順番)に書くのが実務で事故を防ぐ鉄則です。
※最後に TRUE を指定すると、それまでの条件にどれも当てはまらなかった場合の「その他(デフォルト値)」を設定できます。
3. SWITCH関数:「この値ならこれ!」という完全一致の分岐
=SWITCH(A1, "部長", 50000, "課長", 30000, "係長", 10000, 0)
IFS関数と違って、同じセル名(例:A1)を何度も書く必要がないため、数式がスマートになります。
4. CHOOSE関数:1, 2, 3…の「番号」に対応する候補を選択
条件式を書く必要がないため、シンプルで分かりやすい数式になります。
(※WEEKDAY関数で日曜日=1、月曜日=2……となっている場合)
=CHOOSE(WEEKDAY(A1), "日", "月", "火", "水", "木", "金", "土")
- 「1」から始まる連番しか扱えない(0やマイナスの数値、文字列は不可)。
- 番号と結果の対応関係(なぜ1番目が"日"なのか等)が数式内でしか分からないため、後から見たときに保守性が下がる(可読性が落ちる)場合がある。
応用:実務では関数に埋め込まず「マスタ表」化を検討しよう
数式が長くなり、修正時のミス(実務事故)に繋がるからです。
中級者へのステップアップとして、データ量が多い場合は「別の場所(別シートなど)に対応表(マスタ表)を作り、検索関数で引っ張る」という設計に切り替えましょう。
IFS・SWITCH の代わりに → 「マスタ表 + XLOOKUP関数 / VLOOKUP関数」
CHOOSE の代わりに → マスタ表 + INDEX関数 / OFFSET関数」
数式を入れるセル: =INDEX(マスタの範囲, 番号)
CHOOSE関数は候補が増えるたびに関数の中に , "候補4", "候補5" と手動で書き足さなければならず、数式がどんどん長くなってしまいます。
まとめ:迷ったときのフローチャート
└ YES ──👉 【IF関数】
└ NO(3択以上)
│
├─ 範囲判定(〇〇以上など) ──👉 【IFS関数】(※条件の順番に注意!)
│
└─ 完全一致(〇〇なら、△△なら)
│
├─ 文字列や不連続な値 ──👉 【SWITCH関数】
└─ 1, 2, 3...のキレイな連番 ──👉 【CHOOSE関数】
ワークシート関数全一覧(最新版) ・・・ これが最新版です。詳細解説ページへのリンクあり
同じテーマ「エクセル入門」の記事
MAXIFS関数、MINIFS関数(条件付き最大値最小値)
IFS関数(複数条件)
SWITCH関数(複数値での切替)
4大分岐関数の使い分け(IF/IFS/SWITCH/CHOOSE)
XLOOKUP関数とスピル入門
スピルについて
FILTER関数(範囲をフィルター処理)
SORT関数、SORTBY関数(範囲を並べ替え)
UNIQUE関数(一意の値)
RANDARRAY関数(ランダム数値)
SEQUENCE関数(連続数値)
新着記事NEW ・・・新着記事一覧を見る
2つのシート名を交換するVBAをGeminiに作らせてみた。|VBA技術解説(2026-05-22)
ヘッダーに合わせて列をソートして値貼り付けするスマートな方法|VBAサンプル集(2026-05-20)
4大分岐関数の使い分け(IF/IFS/SWITCH/CHOOSE)|エクセル入門(2026-05-19)
Excel主要関数 習得難易度 10段階(文字列・日付除く)|エクセル雑感(2026-04-27)
Excelのシート5分類|エクセル雑感(2026-03-27)
グループ別に全員共通の重複期間を算出|エクセル練習問題(2026-03-12)
ハイフン区切り文字列の『最初』と『最後』を抽出・結合|エクセル練習問題(2026-02-23)
AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.FILTER関数(範囲をフィルター処理)|エクセル入門
4.変数宣言のDimとデータ型|VBA入門
5.Excelショートカットキー一覧|Excelリファレンス
6.繰り返し処理(For Next)|VBA入門
7.RangeとCellsの使い方|VBA入門
8.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.
