条件分岐(IF, IFS, CHOOSE, SWITCH)の違いと使い分け


ExcelのIF関数は、条件分岐を行うために使われる代表的な関数の一つです。

しかし、複雑な条件式を書く場合、IF関数のネストが必要になることがあります。

さらに、IF関数の改良版であるIFS関数や、CHOOSE関数やSWITCH関数といった関数も存在します。

IF, IFS, CHOOSE, SWITCHの関数の違いや、どのように使い分けるべきか

について解説します。

各関数の違い(まとめ)

関数名条件分岐数条件指定の制約処理速度
(条件数が少ない場合)
処理速度
(条件数が多い場合)
可読性
IF関数のネスト1~64特になし×
IFS関数1~127特になし
CHOOSE関数1~2541から始まる連番
SWITCH関数1~1261特になし×
  • 条件分岐数
    • 各関数が処理できる条件分岐の数を示す
    • IFのネストやCHOOSEは条件分岐数に制限があるが、IFSやSWITCHは制限がなく、多数の条件分岐に対応可能
  • 条件指定の制約
    • CHOOSE関数のみ、1から始まる連番である必要
    • 連続していない数字や、文字列ごとに分岐させるなら、CHOOSE関数は使用できない
  • 処理速度
    • IF関数
      • 最も基本的な条件分岐構文であり、単純な条件に対して高速に処理可能
      • ただし、条件が複雑になると、処理速度が低下する
    • IFS関数
      • 複数の条件を評価する必要がある場合に使用される
      • IFよりも条件を簡潔に表現できるため、処理速度がやや高速
    • CHOOSE:複数の値の中から1つを選択する場合に使用されます。 一般的には、IFよりも速い処理速度を持ちます
    • SWITCH:多数の条件分岐がある場合に使用されます。条件分岐が多い場合でも、複雑な条件でも高速に処理できる
      ただし、条件分岐の数が少ない場合は、IFよりも遅くなる可能性がある
  • 可読性
    • 各関数の関数式の読みやすさを示す
    • IF関数のネストやCHOOSE関数は条件分岐が増えるとネストが深くなってしまい、読みにくくなる傾向
    • IFS関数やSWITCH関数は条件分岐を一覧できるため、比較的読みやすい

各関数の違い(詳細)

IF関数のネスト

IF関数のネストは、具体例を挙げると、以下のようになります。

=IF(条件1=1,"りんご",IF(条件2=2,"バナナ",IF(条件3=3,"オレンジ","該当なし"))) 


条件1がTRUEの場合は「りんご」、
条件1がFALSEで条件2がTRUEの場合は「バナナ」が返ります。
条件1と条件2が共にFALSEで、
条件3がTRUEの場合は「該当なし」が返ります。

IFS関数

IFS関数は、具体例を挙げると、以下のようになります。

=IFS(条件1, "りんご", 条件2, "バナナ", 条件3, "オレンジ",条件4, "該当なし") 

条件1がTRUEの場合は「りんご」、
条件2がTRUEの場合は「バナナ」、
条件3がTRUEの場合は「オレンジ」が返ります。
条件1~3の範囲外の場合は「該当なし」になります。

CHOOSE関数

CHOOSE関数は、具体例を挙げると、以下のようになります。

=CHOOSE(条件, "りんご", "バナナ", "オレンジ","非該当") 


この場合、条件が1の場合は「りんご」、
条件が2の場合は「バナナ」、
条件が3の場合は「オレンジ」が返ります。
「りんご」「バナナ」「オレンジ」にも該当しない場合は、「該当なし」が返ります。

SWITCH関数

SWITCH関数は、具体例を挙げると、以下のようになります。

=SWITCH(A1,1,"A",2,"B",3,"C","該当なし") 


この場合、条件が1の場合は「りんご」、
条件が2の場合は「バナナ」、
条件が3の場合は「オレンジ」が返ります。
条件が1~3の範囲外の場合は、「該当なし」が返れされます。
排他条件の指定が可能で、条件が1~3の範囲外の場合もエラーしない点が特徴です。

各関数の使い分け

それぞれの関数は使い方によって最適なケースが異なるため、以下の順序でフィルタリングすることで使い分けの判定を行いましょう。

  1. 【条件数】
    • 条件が2つだけであれば、IF関数を使用できる
    • しかし、3つ以上の条件がある場合は、IF関数、IFS関数、SWITCH関数のどれかを使用する必要がある。 「処理速度」「判読性」の観点から
  2. 【条件指定の制約】
    • 条件が1から始まる連番の場合、CHOOSE関数の使用を検討
    • 連続していない数字や、文字列ごとに分岐させる必要がある場合は、IF関数、IFS関数、SWITCH関数を使用することが適している
  3. 【CHOOSE関数とSWITCH関数で迷ったら】
    • 一般的に、CHOOSE関数は制限が多く、SWITCH関数の使用がお勧め
  4. 【IFS関数とSWITCH関数で迷ったら】
    • 条件が複雑な場合は、SWITCH関数の使用が適する。ただし、保守的な人がいる場合は、IFS関数を使用することを検討する

次に、「どの関数を使用すべきか」のフローチャート図を記載しました。

[開始]
|
[条件数]
 |__ 1つ   → IF関数を使用
 |__ 2つ以上 → IF関数、IFS関数、SWITCH関数のいずれかを使用
|
[条件指定の制約があるか? ]
 |__ 1から始まる連番 → CHOOSE関数を使用
 |__ それ以外 → SWITCH関数を使用
|
[CHOOSE関数とSWITCH関数で迷ったら?]
 |__ SWITCH関数を使用
|
[IFS関数とSWITCH関数で迷ったら? ]
 |__SWITCH関数を使用
 |__ただし、保守的、且つ、小うるさい人が目を光らせている場合はIFS関数を使用
|
[終了]


以上が、IF関数、IFS関数、CHOOSE関数、SWITCH関数の使い分け方法の判定基準です。

適切な関数を選択することで、より効率的な処理が実現できます。

最後に

以上の説明を踏まえて、
IF関数のネスト、IFS関数、CHOOSE関数、SWITCH関数の違いと使い分けについて理解することができたはずです。

各関数の使い分けとしては、
「フローチャート図」を活用していただければと思います。

Excel関数を使用することで、
より複雑な計算や分析を簡単に行うことができます。

また、関数を適切に使い分けることで、
より効率的かつ正確なデータ処理を行うことができます。


参考記事

Excel関数を操作するための基本概念です。基本概念を理解すると、各関数の理解がより深まります。

構文に関する記事

Excel関数の引数と戻り値は何だっけ?という時に、役立つ記事です。

ダイアログボックスの使い方に関する記事

Excel関数名は何だっけ?VLOOKUP関数の使い方は何だっけ?という時に、ダイアログボックスを使うと便利です。
下記はそのダイアログボックスに関する記事です。

参照形式に関する記事

関数式をコピーする時はどうしたらいい? $マークは、どう付けたらいいだろう?
といった悩みをお持ちの方は以下をご覧ください。


  1. 値と結果の引数をペア換算 ↩︎