IFS、SWITCH関数の使い方

エクセル

はじめに:なぜネストしたIFはつらいのか

Excelで「条件によって表示する値を変えたい」とき、まず思い浮かぶのが IF関数 です。条件が1つや2つなら問題ありません。しかし、条件が3つ、4つ、5つと増えてくると、こんな数式が生まれます。

=IF(A1>=90,"S",IF(A1>=80,"A",IF(A1>=70,"B",IF(A1>=60,"C","D"))))

カッコが何重にもネスト(入れ子)になり、末尾の )))) を数えるだけで一苦労。1つでもカッコがずれると動かず、後から条件を1つ追加するのも至難の業です。この 「IFのネスト地獄」 を解消するために登場したのが、IFS関数SWITCH関数 です。

どちらも Excel 2019 / Microsoft 365 以降で使える比較的新しい関数で、複数条件の分岐を、ネストせずにフラットに書ける のが最大の魅力です。

関数得意な場面判定方法
IFS範囲・大小比較など条件式が必要な分岐条件式(TRUE/FALSE)を順に評価
SWITCH「値が◯◯のとき」という固定値の分岐1つの値を複数の候補と照合

1. IFS関数

基本構文

=IFS(論理式1, 値1, 論理式2, 値2, …, 論理式N, 値N)

IFS関数は、論理式を左から順番にチェックし、最初に TRUE になった時点でその値を返して終了 します。「条件 → 結果」のペアを、必要な数だけ並べていくイメージです。

先ほどのネストしたIFは、IFSなら次のようにスッキリ書けます。

=IFS(A1>=90,"S", A1>=80,"A", A1>=70,"B", A1>=60,"C", TRUE,"D")

末尾のカッコは1つだけ。条件と結果が一直線に並ぶので、読むのも修正するのも格段にラクになります。

重要ポイント①:順番がすべて

IFSは 上から順に評価して、最初に当てはまったものを返す という性質を持ちます。これは便利な反面、順番を間違えると意図しない結果になる 落とし穴でもあります。

たとえば点数判定で、条件を緩い順(小さい順)に並べてしまうと——

=IFS(A1>=60,"C", A1>=70,"B", A1>=80,"A", A1>=90,"S")   ← 間違い

95点を入れても、最初の A1>=60 がいきなりTRUEになるため、全員が”C”判定 になってしまいます。範囲判定では必ず「厳しい順(大きい順)」から書く のが鉄則です。

重要ポイント②:「それ以外」は TRUE で受ける

IFSには、IF関数のような「偽の場合(else)」の引数がありません。どの条件にも当てはまらないと #N/A エラー が返ってしまいます。

これを防ぐのが、最後の TRUE です。

=IFS(A1>=90,"S", A1>=80,"A", TRUE,"その他")

TRUE は「常に真」なので、ここまで来たもの(=上のどの条件にも当てはまらなかったもの)をすべて受け止める 「最後の砦」 として機能します。実務では、この TRUE,"〜" をほぼ必ず付けると覚えておきましょう。

実用例:気温による服装アドバイス

=IFS(B2>=30,"半袖でOK", B2>=20,"長袖がおすすめ", B2>=10,"上着を一枚", TRUE,"防寒必須")

数式を見るだけで判定ロジックが一目瞭然です。これがIFSの読みやすさの威力です。


2. SWITCH関数

基本構文

=SWITCH(対象の値, 候補1, 結果1, 候補2, 結果2, …, [既定値])

SWITCH関数は、1つの値を複数の候補と照合し、一致したものに対応する結果を返す 関数です。「この値が◯◯だったら△△」という、等しいかどうか(完全一致) の分岐を得意とします。

実用例:部門コードを部門名に変換

=SWITCH(A1, "A","営業部", "B","経理部", "C","総務部", "該当なし")

A1が”A”なら「営業部」、”B”なら「経理部」…と変換します。最後の "該当なし"既定値(どれにも一致しなかったときの値) で、IFSの TRUE に相当する役割です。

SWITCHは既定値を 最後の引数に値だけ書けば指定できる ので、IFSの TRUE,"〜" よりさらに直感的です。

実用例:曜日番号を曜日名に変換

=SWITCH(WEEKDAY(A1), 1,"日", 2,"月", 3,"火", 4,"水", 5,"木", 6,"金", 7,"土")

WEEKDAY関数が返す1〜7の数値を、対応する曜日名に変換しています。「特定の値 → 特定の結果」 という単純な対応表は、SWITCHの独壇場です。

SWITCHで範囲判定をするテクニック

SWITCHは本来「完全一致」専用ですが、第1引数を TRUE にすると IFSのように範囲判定 もできます。

=SWITCH(TRUE, A1>=90,"S", A1>=80,"A", A1>=70,"B", "D")

A1>=90 が TRUE と一致するか?」という照合になり、結果的に大小比較が可能になります。ただし、範囲判定なら素直にIFSを使うほうが読みやすいので、これは「こういう書き方もできる」という知識にとどめておくとよいでしょう。


3. IFS と SWITCH の使い分け

両者は似ていますが、向き不向きがはっきりしています。

観点IFSSWITCH
判定の種類範囲・大小・複合条件値の完全一致
比較対象条件ごとに別々でOK基本は1つの値
「それ以外」TRUE,"〜" で指定末尾に値だけ書く
数式の冗長さ条件式を毎回書く値の列挙だけで簡潔

判断の目安:

  • 「◯◯以上」「△△より大きい」など範囲で分けるIFS
  • 「値がAなら」「コードが1なら」など固定値で分けるSWITCH

たとえば「点数→評価」はIFS、「都道府県コード→地方名」はSWITCH、という具合です。

SWITCHのほうがスッキリする典型例

同じ「1つの値を何度も比較する」処理でも、IFSだと対象セルを何度も書く必要があります。

IFS  : =IFS(A1=1,"赤", A1=2,"青", A1=3,"緑", TRUE,"他")
SWITCH: =SWITCH(A1, 1,"赤", 2,"青", 3,"緑", "他")

A1 の繰り返しが消えるぶん、SWITCHのほうが短く、ミスも減ります。「同じセルを = で何度も比較している」と気づいたら、SWITCHへの置き換えを検討 しましょう。


4. ビジネス実務でのユースケース

経理・財務

  • 勘定科目の自動分類:取引コードから勘定科目名を変換(SWITCH)
  • 与信ランク判定:取引先の残高や支払実績スコアからランク付け(IFS)
  • 消費税区分の判定:商品コードから税率区分(10%/8%/非課税)を割り当て(SWITCH)

人事・労務

  • 勤続年数による有給付与日数:勤続年数の範囲で付与日数を判定(IFS)
  • 役職コードの変換:役職コードを役職名や手当額に変換(SWITCH)
  • 評価ランクのコメント生成:評価記号(S/A/B/C)に応じた所見文を出力(SWITCH)

営業・販売

  • 販売価格帯の区分:金額帯ごとに「松・竹・梅」などのランク付け(IFS)
  • エリアコードの地域名変換:店舗コードや郵便番号から担当エリアを割り当て(SWITCH)
  • 達成率による評価:目標達成率の範囲でインセンティブ係数を決定(IFS)

在庫・購買

  • 発注区分の自動判定:在庫数の範囲で「緊急発注/通常発注/発注不要」を表示(IFS)
  • 仕入先ランクの表示:仕入先コードから取引条件区分を変換(SWITCH)

5. 実務で陥りやすい落とし穴

IFS関数の注意点

  • 条件の順番ミス:範囲判定は必ず厳しい順(大きい順)から。緩い条件が上にあると以降が無視される
  • #N/A エラー:TRUE,"〜" を入れ忘れると、どの条件にも当てはまらないセルでエラーになる
  • 比較演算子のミス:>=> を取り違えると、境界値(ちょうど80点など)の判定がズレる

SWITCH関数の注意点

  • 完全一致のみ:大文字小文字や半角全角の違い、前後の空白があると一致しない。TRIMUPPER で前処理を
  • 範囲判定には不向き:「以上・以下」を直接書けない。範囲ならIFSを選ぶ
  • 既定値の書き忘れ:既定値を省略すると、一致しないとき #N/A になる

互換性の注意

  • IFS・SWITCHは Excel 2019 / Microsoft 365 以降専用 です。Excel 2016以前で開くと #NAME? エラーになります。古いバージョンのユーザーとファイルを共有する場合は、従来のIF関数で書く か、事前にバージョンを確認しておきましょう。

💼 経理マンの一言

正直に言うと、私がIFSとSWITCHを覚えて一番ありがたかったのは、「半年後の自分が数式を読めること」 でした。

ネストしたIFは、書いた瞬間は頭に入っているので動きます。でも、決算が一巡して半年後にその数式を見返したとき、)))))) を解読しながら「これ、何を判定してたんだっけ…」と固まるんですよね。IFSなら「条件→結果」が一直線に並ぶので、自分以外の人が引き継いでもロジックが追える。これは属人化を防ぐうえで地味にものすごく大きいんです。

使い分けの実感としては、勘定科目コードや税区分コードのような「コード→名称」の変換はSWITCH一択 です。対応表がそのまま数式になるので、メンテナンスがラク。逆に 与信ランクや価格帯の判定みたいに「いくら以上」で切る話はIFS ですね。

経理の現場で特に強調したいのが、IFSの TRUE,"〜" を必ず入れる こと。これを忘れると、想定外のデータが1件混ざっただけで #N/A が出て、それを合計したセルまで巻き込んでエラーになります。月次の集計表でこれをやると、原因究明に半日溶けます(経験談です)。「想定外は必ず来る」前提で、最後に受け皿を用意しておくのがプロの作法だと思っています。

最後に互換性の話。社内に古いExcelが残っているなら要注意です。私は一度、Microsoft 365で組んだIFSの表を取引先に送ったら #NAME? だらけで返ってきて平謝りした苦い思い出があります。社外に出すファイルは、相手の環境を一度確認する——これも立派なリスク管理です。

関数は便利になりましたが、結局のところ 「誰が見ても判定ロジックが分かること」 が一番の価値です。短く書けることより、読みやすく書けること。そこを意識すると、IFSもSWITCHも本当に頼れる相棒になりますよ。

コメント

タイトルとURLをコピーしました