Excel関数 逆引き集 | 複数条件を順に判定 → IFS

Excel VBA Excel
スポンサーリンク

概要

「80点以上ならA、70以上ならB、60以上ならC、それ以外はD」
みたいに、条件を上から順番に判定していきたいとき。

IF を入れ子にしてもできますが、

=IF(A2>=80,"A",IF(A2>=70,"B",IF(A2>=60,"C","D")))

正直、読みにくいですよね。

そこで使えるのが IFS 関数です。
IFS は

  • 上から順番に条件をチェックして
  • 最初に TRUE になったところの結果を返す

という、「複数条件版の IF」です。


IFS の基本構造

書式

=IFS(
  条件1, 条件1がTRUEのときの値,
  条件2, 条件2がTRUEのときの値,
  条件3, 条件3がTRUEのときの値,
  ...
)

ポイントは 2つです。

  1. 条件と結果が「セット」で並ぶ
    • 条件1 → 結果1
    • 条件2 → 結果2
  2. 上から順に判定し、最初に TRUE になった条件の結果だけを返す

最後までどの条件も TRUE にならないとエラー(#N/A)になるので、
「どれにも当てはまらなかったとき用」の条件も自分で用意します。


IFS の基本パターン(IF との違いを体感する)

例1:点数でランク分け(IFS 版)

A2 に点数が入っているとします。
条件はこうです。

  • 80点以上 → “A”
  • 70点以上 → “B”
  • 60点以上 → “C”
  • それ以外 → “D”

IFS で書くとこうなります。

=IFS(
  A2>=80, "A",
  A2>=70, "B",
  A2>=60, "C",
  TRUE,   "D"
)

最後の TRUE, "D" が、
「どの条件にも当てはまらなかったときの“その他扱い”」です。

IF の入れ子と比べて、
「条件 → 結果」が縦にスッキリ並んでいて読みやすいはずです。


例2:売上ランク(数値条件の多段階判定)

B2 に売上金額が入っているとして、

  • 1,000,000 以上 → “S”
  • 500,000 以上 → “A”
  • 300,000 以上 → “B”
  • それ以外 → “C”

なら、IFS ではこう書けます。

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

「大きい順(厳しい条件)から書く」のがコツです。
上から順に判定されるので、範囲の重なりを気にしなくてよくなります。


文字列の複数条件判定に使う

例3:ステータスによって表示を変える

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

  • “完了” → “OK”
  • “保留” → “要確認”
  • “取消” → “NG”
  • それ以外 → “未処理”

というルールなら、IFS でこう書きます。

=IFS(
  C2="完了", "OK",
  C2="保留", "要確認",
  C2="取消", "NG",
  TRUE,      "未処理"
)

条件が増えても、「条件 → 結果」を追加していくだけです。


数値+文字列を組み合わせて判定する

例4:売上とステータスを組み合わせた評価

D2:売上金額
E2:ステータス(”確定” / “見込” など)

ルール:

  • 売上 1,000,000 以上 かつ ステータスが “確定” → “最重要”
  • 売上 500,000 以上 かつ ステータスが “確定” → “重要”
  • ステータスが “見込” → “見込”
  • それ以外 → “通常”

AND と組み合わせてこう書きます。

=IFS(
  AND(D2>=1000000, E2="確定"), "最重要",
  AND(D2>=500000,  E2="確定"), "重要",
  E2="見込",                   "見込",
  TRUE,                        "通常"
)

ここでも「優先度の高い条件から書く」のが大事です。
上2つが「確定」のときの評価で、3つ目が「見込」のときの評価です。


IFS を使うときのコツ・注意点

どれにも当てはまらないと #N/A になる

IFS は、
どの条件も TRUE にならないと #N/A を返します。

なので、最後に必ず

TRUE, "その他(デフォルト値)"

のような「漏れ対策」を入れておくのがおすすめです。


条件の順番が超重要

IFS は「上から順番に判定して、最初に TRUE になったところで止まる」
という仕様です。

例えば、点数判定で

=IFS(
  A2>=60, "合格",
  A2>=80, "優秀",
  TRUE,   "不合格"
)

と書いてしまうと、
80点の人も「A2>=60」が先に TRUE になるので、「合格」で止まり、
「優秀」まで到達しません。

範囲が広い条件ほど後ろに置く
(=「きびしい条件から書く」)
と覚えてください。


IF と IFS の使い分け

  • 条件が 2 つだけなら → IF で十分
  • 条件が 3つ以上になってきて、IF の入れ子が読みにくい → IFS に切り替え

というイメージで使い分けるとよいです。

IFS は「複数条件の“表”をそのまま式にした感じ」なので、
ルールが増えるほど威力を発揮します。


例題

問題1

A2 に点数が入っています。
80 以上なら “A”、70 以上なら “B”、60 以上なら “C”、それ以外は “D” と表示する式を IFS で書いてください。

=IFS(
  A2>=80, "A",
  A2>=70, "B",
  A2>=60, "C",
  TRUE,   "D"
)

問題2

B2 に売上金額が入っています。
1,000,000 以上なら “S”、500,000 以上なら “A”、300,000 以上なら “B”、それ以外は “C” と表示する式を IFS で書いてください。

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

問題3

C2 にステータス(”完了”、”保留”、”取消” など)が入っています。
“完了”→”OK”、”保留”→”要確認”、”取消”→”NG”、それ以外→”未処理” と表示する式を IFS で書いてください。

=IFS(
  C2="完了", "OK",
  C2="保留", "要確認",
  C2="取消", "NG",
  TRUE,      "未処理"
)

問題4

D2 に売上金額、E2 にステータス(”確定” または “見込”)が入っています。
次のルールで評価を表示する IFS 式を書いてください。

  • 売上 1,000,000 以上かつ “確定” → “最重要”
  • 売上 500,000 以上かつ “確定” → “重要”
  • ステータスが “見込” → “見込”
  • それ以外 → “通常”
=IFS(
  AND(D2>=1000000, E2="確定"), "最重要",
  AND(D2>=500000,  E2="確定"), "重要",
  E2="見込",                   "見込",
  TRUE,                        "通常"
)

問題5

F2 に「A」「B」「C」のいずれかが入っています。
“A”→”高優先”、”B”→”中優先”、”C”→”低優先”、それ以外→”未設定” と表示する式を IFS で書いてください。

=IFS(
  F2="A", "高優先",
  F2="B", "中優先",
  F2="C", "低優先",
  TRUE,   "未設定"
)

まとめ

IFS は、複数条件を順番に判定していくための関数です。

型はシンプルで、

=IFS(
  条件1, 結果1,
  条件2, 結果2,
  条件3, 結果3,
  ...,
  TRUE,  どこにも当てはまらないときの結果
)

という形さえ覚えればOKです。

ポイントは、

  • 条件は「上から順に」判定される
  • 条件が多い・範囲が重なるときほど IFS が活きる
  • 最後に TRUE, "その他" を入れておくと安全

IF の入れ子でごちゃついてきたら、
「これは IFS にできないか?」と一度立ち止まってみてください。
そこが、Excel スキルが一段上がる分岐点になります。

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