Excel関数 逆引き集 | 条件別ラベル付け → IFS

Excel VBA Excel
スポンサーリンク

概要

「点数が 80 以上なら“優”、60〜79 なら“良”、40〜59 なら“可”、それ以外は“不可”」
「売上が一定以上なら“達成”、未達なら“未達”」
「ステータス番号に応じて表示を切り替えたい」

こうした “複数の条件に応じてラベルを切り替える” ときに便利なのが IFS 関数 です。

IFS は、
「条件1なら結果1、条件2なら結果2、条件3なら結果3…」
という形で、IF を何段も重ねるよりスッキリ書ける関数です。


IFS の基本

書式と動き

IFS の基本形は次のとおりです。

=IFS(条件1, 結果1, 条件2, 結果2, 条件3, 結果3, …)

動きはとてもシンプルです。

  • 上から順に条件をチェック
  • 最初に TRUE になった条件の「結果」を返す
  • どれも TRUE にならないとエラー(#N/A)

つまり、「条件の優先順位を上から決める」 というイメージです。


IFS を使った条件別ラベル付けの基本

点数に応じて「優・良・可・不可」を表示する

A2 に点数が入っているとします。

=IFS(
  A2>=80, "優",
  A2>=60, "良",
  A2>=40, "可",
  A2<40,  "不可"
)

IFS は上から順に判定します。

  • A2>=80 → TRUE なら「優」
  • 80 未満なら次へ
  • A2>=60 → TRUE なら「良」
  • A2>=40 → TRUE なら「可」
  • 最後に A2<40 → TRUE なら「不可」

IF を4段重ねるより圧倒的に読みやすくなります。


数値範囲でラベルを切り替える

売上に応じてランク付けする

B2 に売上が入っているとします。

=IFS(
  B2>=1000000, "Sランク",
  B2>=500000,  "Aランク",
  B2>=100000,  "Bランク",
  B2<100000,   "Cランク"
)

売上の範囲に応じてランクを自動判定できます。


ステータス番号に応じて表示を切り替える

1→未着手、2→進行中、3→完了

A2 にステータス番号が入っているとします。

=IFS(
  A2=1, "未着手",
  A2=2, "進行中",
  A2=3, "完了"
)

番号に応じてラベルを切り替える典型的な使い方です。


文字列に応じてラベルを付ける

商品カテゴリに応じて表示を変える

A2 にカテゴリ名が入っているとします。

=IFS(
  A2="食品", "消費期限管理",
  A2="家電", "保証書管理",
  A2="衣料", "サイズ管理",
  TRUE,     "その他"
)

最後の TRUE は「どれにも当てはまらないときのデフォルト」として使えます。


IFS の注意点

どれも TRUE にならないとエラーになる

IFS は「最初に TRUE になった条件の結果を返す」関数ですが、
どれも TRUE にならないと #N/A エラー になります。

そのため、最後に

TRUE, "その他"

のような“受け皿”を作っておくと安全です。

条件は上から順に評価される

IFS は「最初に TRUE になった条件」で止まります。
そのため、広い条件は下に、厳しい条件は上に書くのがコツです。

例:
A2>=0 を上に書くと、それより下の条件がすべて無視されます。


例題

問題1

A2 の点数に応じて、
80以上→「優」、60以上→「良」、40以上→「可」、それ以外→「不可」
と表示する IFS の式を書いてください。

=IFS(
  A2>=80, "優",
  A2>=60, "良",
  A2>=40, "可",
  TRUE,   "不可"
)

問題2

B2 の売上に応じて、
100万以上→S、50万以上→A、10万以上→B、それ以外→C
と表示する式を書いてください。

=IFS(
  B2>=1000000, "S",
  B2>=500000,  "A",
  B2>=100000,  "B",
  TRUE,        "C"
)

問題3

A2 のステータス番号に応じて、
1→未着手、2→進行中、3→完了
と表示する式を書いてください。

=IFS(
  A2=1, "未着手",
  A2=2, "進行中",
  A2=3, "完了"
)

問題4

A2 のカテゴリ名に応じて、
食品→「消費期限管理」、家電→「保証書管理」、衣料→「サイズ管理」、その他→「その他」
と表示する式を書いてください。

=IFS(
  A2="食品", "消費期限管理",
  A2="家電", "保証書管理",
  A2="衣料", "サイズ管理",
  TRUE,      "その他"
)

問題5

A2 の値が
0未満→「負」、0→「ゼロ」、0より大きい→「正」
と表示される IFS の式を書いてください。

=IFS(
  A2<0, "負",
  A2=0, "ゼロ",
  A2>0, "正"
)

まとめ

IFS は、

  • 条件が多いときに IF を何段も重ねる必要がない
  • 上から順に条件を評価して、最初に TRUE になった結果を返す
  • 数値・文字列・計算式など、何でも返せる
  • 最後に TRUE, "その他" を置くと安全

という、とても便利な「条件別ラベル付け」関数です。

型はこれだけ覚えれば十分です。

=IFS(条件1, 結果1, 条件2, 結果2, …, TRUE, デフォルト結果)

複雑な IF の入れ子で悩んだとき、
「これ IFS で書けないかな?」と考えると、
式が一気に読みやすく、管理しやすくなります。

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