「点数が70点以上なら"合格"、未満なら"不合格"と自動で表示したい」
「売上が目標を達成していたら"○"、未達なら"×"と出したい」
こういった「条件によって表示内容を変えたい」場面で使うのが IF関数 です。
Excelで最もよく使う関数のひとつで、これを覚えるだけで表の使い勝手が大きく変わります。
この記事では、基本の構文から複数条件の組み合わせまで、実務で使える形で解説します。
IF関数の基本構文
=IF(論理式, 真の場合, 偽の場合)
| 引数 | 内容 |
|---|---|
| 論理式 | 条件式(例:A1>=70、B1="合格") |
| 真の場合 | 条件を満たしたときに返す値 |
| 偽の場合 | 条件を満たさなかったときに返す値 |
「もし〇〇なら△△、そうでなければ××」という日本語の言い回しをそのまま数式にしたものです。
基本的な使い方
例①:点数で合否を判定する
B列に点数が入っていて、70点以上なら「合格」、未満なら「不合格」と表示する場合:
=IF(B2>=70, "合格", "不合格")

文字列を返すときはダブルクォート("")で囲むのがポイントです。
例②:売上目標の達成判定
C列に売上、D列に目標が入っていて、達成なら「○」、未達なら「×」と表示する場合:
=IF(B2>=C2, "○", "×")

比較する値をセル参照にすることで、目標値が変わっても数式を変える必要がありません。
よく使う条件の書き方
| 条件の内容 | 書き方 |
|---|---|
| A1が70以上 | A1>=70 |
| A1が70より大きい | A1>70 |
| A1が70未満 | A1<70 |
| A1が70と等しい | A1=70 |
| A1が70以外 | A1<>70 |
| A1が"合格"と等しい | A1="合格" |
| A1が空白 | A1="" |
| A1が空白でない | A1<>"" |
複数条件を組み合わせる
AND条件(〇〇かつ△△)
「点数が70以上、かつ出席率が80%以上なら合格」のようにすべての条件を満たす場合は AND関数 を組み合わせます。
=IF(AND(B2>=70, C2>=80), "合格", "不合格")

OR条件(〇〇または△△)
「点数が70以上、または特別加点がある場合は合格」のようにどれか一つを満たせばよい場合は OR関数 を組み合わせます。
=IF(OR(B2>=70, C2="特別加点"), "合格", "不合格")

IFを入れ子にする(3段階以上の分岐)
「80点以上はA、60点以上はB、それ未満はC」のように3段階以上に分けたい場合は、IFの中にIFを入れるネスト(入れ子)を使います。
=IF(B2>=80, "A", IF(B2>=60, "B", "C"))

読み方は「もし80以上ならA、そうでなければ(もし60以上ならB、そうでなければC)」です。
ただし、分岐が4段階以上になると数式が複雑になります。その場合は IFS関数(Excel 2019以降)を使うとすっきり書けます。
=IFS(B2>=80, "A", B2>=60, "B", B2>=40, "C", TRUE, "D")

最後の TRUE, "D" は「どの条件にも当てはまらない場合」の指定です。
空白セルへの対応(よくある落とし穴)
IF関数を使っていると、条件に合わないセルに 「不合格」「×」などの値が大量に表示されて邪魔になることがあります。
偽の場合を ""(空文字)にすることで、条件を満たさないセルを空白のままにできます。
例:B2に値が入っている場合だけ判定する
=IF(B2="", "", IF(B2>=70, "合格", "不合格"))
よくあるミスと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| 文字列がそのまま表示される | 文字列をダブルクォートで囲んでいない | "合格" のように "" で囲む |
| 常に偽の結果が返る | 比較演算子の向きが逆になっている | >= と <= を見直す |
| #VALUE! エラーが出る | 数値列に文字列が混在している | 元データの型を統一する |
| 入れ子が多くて訳がわからない | IFのネストが深すぎる | IFS関数に書き直す |
まとめ
IF関数のポイントを振り返りましょう。
- 構文は
=IF(条件, 真の場合, 偽の場合)の3つの引数 - 文字列を返すときはダブルクォートで囲む
- 複数条件は AND・OR関数 と組み合わせる
- 3段階以上の分岐はIFのネスト、または IFS関数 を使う
- 空白処理を加えると表がすっきりする
IF関数は一度覚えると、あらゆる場面で使いまわせる汎用性の高い関数です。
まずは「70点以上なら合格」のシンプルな1条件から試してみてください!