IF関数は「もし〇〇なら△△、そうでなければ□□」という条件分岐を実現する関数です。合否判定や評価ランク付け、売上達成率の判定など、あらゆる業務で活躍します。本記事では基本の書き方から、IF入れ子(ネスト)、IFS関数、AND/OR関数との組み合わせ、実務パターン集まで、実際のExcel画面で解説します。
IF関数とは
IF関数は、指定した条件が「TRUE(真)」か「FALSE(偽)」かによって、異なる値を返す関数です。Excelで最も基本的な条件分岐の関数であり、データの自動分類や判定に欠かせません。
日常業務でExcelを使っている方なら、こんな場面を経験したことがあるでしょう。売上一覧を見ながら「これは目標達成、これは未達…」と目視で確認して色を塗ったり、テスト得点の一覧を見て「70点以上は合格」と一件ずつ手入力したり。IF関数はこうした「条件をもとにした判定」をExcelが自動でやってくれる仕組みです。
一度IF関数を設定しておけば、データが増えても数式をコピーするだけで全行の判定が自動で入ります。目視確認や手入力のミスがなくなり、判定基準も数式で明確になります。
- テスト結果の合否判定 — 70点以上なら「合格」、未満なら「不合格」を自動表示
- 売上目標の達成・未達判定 — 実績が目標の100%以上なら「達成」、未満なら「未達」
- 在庫アラートの自動表示 — 在庫数が10個未満になったら「発注要」と表示
- 勤務時間に基づく残業有無の判定 — 8時間を超えたら「残業あり」、以内なら空白
- 有給残日数の管理 — 残日数に応じて「余裕あり」「注意」「残少」を自動で色分け表示
- 入力漏れチェック — 必須項目が空欄なら「未入力」と警告表示
IF関数の構文と引数
IF関数の基本形は =IF(条件, 真の場合, 偽の場合) の3つの引数で構成されています。
| 引数 | 説明 | 例 |
|---|---|---|
| 条件 | 判定する条件式(比較演算子を使う) | B2>=70 |
| 真の場合 | 条件がTRUEのとき返す値 | “合格” |
| 偽の場合 | 条件がFALSEのとき返す値 | “不合格” |
条件式では以下の比較演算子が使えます。日常のIF関数で最もよく使うのは >=(以上)と =(等しい)の2つです。
| 演算子 | 意味 | 使用例 |
|---|---|---|
| = | 等しい | A2=”東京” |
| <> | 等しくない | A2<>””(空白でない) |
| > | より大きい(超える) | B2>100 |
| >= | 以上(その値を含む) | B2>=70 |
| < | より小さい(未満) | C2<10 |
| <= | 以下(その値を含む) | D2<=5 |
基本の使い方(合否判定と空白チェック)
テスト得点が70点以上なら「合格」、それ未満なら「不合格」と表示する例です。

=IF(B2>=70, “合格”, “不合格”)
B2の得点が70以上なら「合格」、そうでなければ「不合格」を表示します。この数式をC3〜C7にコピーすれば、全員分の判定が自動で入ります。
「合格」「不合格」などの文字列を返す場合は、必ず半角のダブルクォーテーション(”)で囲みます。数値を返す場合はクォーテーション不要です。また、空白を表示したいときは “” と書きます(ダブルクォーテーション2つを続けて、何も挟まない)。
空白セルのチェックにIF関数を使う
実務でよく使うのが「セルが空欄かどうかを確認する」パターンです。入力漏れを検出したり、空欄行はスキップして計算したい場合に役立ちます。
=IF(A2=””, “未入力”, A2)
A2が空欄(””)なら「未入力」と表示し、何か入力されていればその値をそのまま表示します。入力フォームの確認列として使えます。
=IF(B2=””, “”, B2*1.1)
B2が空欄なら空白のまま(何も表示しない)にし、数値が入っていれば1.1倍した値を表示します。空欄のまま計算してしまうとエラーになるケースを防げます。
空白チェックは一見地味ですが、「全行に数式を入れておいて、まだ入力されていない行は空白表示にする」という使い方で非常に重宝します。特に受注入力や勤怠管理など、行数が日々増えていく表では不可欠なテクニックです。
IF入れ子(ネスト)で複数条件を分岐する
合否の2択だけでなく「S・A・B・C」の4段階評価をつけたい場合は、IF関数の中にさらにIF関数を入れる「ネスト」を使います。

=IF(B2>=90, “S”, IF(B2>=70, “A”, IF(B2>=50, “B”, “C”)))
90点以上→S、70点以上→A、50点以上→B、それ以外→C。条件は大きい方から順に判定するのがポイントです。
ネストを読み解くコツは、「外側のIF」から順番に評価していく点です。
- まず B2 が 90 以上かチェック。そうなら「S」を返して終了
- 90 未満なら次のIF: B2 が 70 以上かチェック。そうなら「A」を返して終了
- 70 未満なら次のIF: B2 が 50 以上かチェック。そうなら「B」を返して終了
- 50 未満なら「C」を返す
この順序が重要で、もし小さい値から判定してしまうと正しく動きません。たとえば最初に「50以上ならB」と判定してしまうと、90点の人も「B」になってしまいます。常に大きい値(または最初に除外したい条件)から書くのが鉄則です。
IF関数のネストは最大64段階まで可能ですが、3〜4段階を超えると数式が長くなり、後から読んだときに何をしているのかわかりにくくなります。5段階以上の分岐には、次のセクションで紹介するIFS関数(Excel 2019以降)の利用を検討しましょう。
IFS関数でネストをすっきり書く
Excel 2019以降(Microsoft 365含む)では、複数条件の分岐を IFS関数 でよりシンプルに書けます。IFのネストに比べて括弧の入れ子が少なく、後から見直したときに何をしているかがずっとわかりやすくなります。
IFSの書き方は =IFS(条件1, 値1, 条件2, 値2, 条件3, 値3, …) と、条件と返す値をペアで列挙するスタイルです。
=IFS(B2>=90, “S”, B2>=80, “A”, B2>=70, “B”, B2>=60, “C”, B2<60, “D”)
90点以上→S、80点以上→A、70点以上→B、60点以上→C、60未満→D の5段階判定です。ネストと違って括弧の入れ子がなく、条件が並んでいるだけなので読みやすくなっています。
IFSはネストのように「大きい値から順に書く」というルールは同じです。条件は上から順に評価され、最初に真になった条件の値が返されます。
IFSで最後の条件を「それ以外」にする方法
ネストの場合は最後のIF の「偽の場合」に残りのケースを書けますが、IFSにはデフォルトの「それ以外」がありません。すべての条件に当てはまらないとエラーになります。「どの条件にも当てはまらない場合」は最後に TRUE, “その他” と書くことで対応できます。
=IFS(B2>=90, “優秀”, B2>=70, “良好”, B2>=50, “普通”, TRUE, “要改善”)
最後の TRUE, “要改善” が「どれにも当てはまらない場合は要改善」という意味になります。TRUEは常に真なので、ここに到達したすべてのケースが「要改善」になります。
- 括弧の入れ子がなく、条件が横並びになるので読みやすい
- 条件を追加・削除するときにネストの整合性を気にしなくていい
- 3段階以上の分岐ではIFより断然管理しやすくなる
よくある間違いと対処法
IF関数を使い始めたときにハマりやすいポイントをまとめました。「数式は入力できたのに、結果がおかしい」というときはここを確認してみてください。
間違い1 — 文字列をクォーテーションで囲み忘れる
テキストを返す場合、ダブルクォーテーション(”)で囲まないとエラーになります。これはIF関数に限らず、Excel全般で共通のルールです。
NG: =IF(B2>=70, 合格, 不合格) ← 文字列なのにクォーテーションがない
OK: =IF(B2>=70, “合格”, “不合格”) ← 文字列を ” ” で囲む
数値を返す場合はクォーテーション不要です。=IF(B2>=70, 1, 0) はOKです。
間違い2 — 全角と半角の文字比較でハマる
「セルの値が”東京”なら…」という条件を書くとき、数式内の “東京” と実際のセルの値が全角・半角で異なっているとマッチしません。特に、他のシステムからExcelにデータを貼り付けた場合に起きやすいです。
=IF(A2=”東京”, “対象”, “対象外”)
上の数式で「東京」が全角の場合、セルに「東京」(全角)が入っていれば一致しますが、「東京」(半角カタカナ)などが入っていると一致しません。VLOOKUPと同様に、ASC関数やSUBSTITUTE関数でデータを統一しておくと安全です。
間違い3 — 「超える」と「以上」の混同
「70点以上なら合格」と「70点を超えたら合格」は意味が違います。70点の人を合格にしたいなら >=(以上)を使い、71点以上が合格なら >(超える)を使います。
=IF(B2>=70, “合格”, “不合格”) — 70点ちょうどは合格(以上)
=IF(B2>70, “合格”, “不合格”) — 70点ちょうどは不合格(超える)
どちらが正しいかは要件次第です。基準を決めるときに「境界値をどちらに含めるか」を明確にしておきましょう。
間違い4 — 0 と FALSE の混同
IF関数の「偽の場合」を省略すると、FALSEではなく FALSE という文字列が返ります。また「真の場合」に数値の 0 を指定すると、後続のIF関数でFALSEと区別できず意図しない動作になることがあります。
=IF(B2>=70, “合格”) のように第3引数を省略すると、条件を満たさないときに「FALSE」と表示されます。これは意図した動作ではないはずです。必ず第3引数まで書く習慣をつけましょう。何も表示したくない場合は =”” を指定します。
間違い5 — ネストの条件順序を間違える
複数段階のネストでは、条件の書く順序が重要です。先に広い範囲の条件を書いてしまうと、後の条件に到達する前に処理が終わってしまいます。
NG: =IF(B2>=50, “B”, IF(B2>=70, “A”, IF(B2>=90, “S”, “C”)))
最初の条件「50以上→B」に90点も引っかかってしまい、Sが返ることがない。
OK: =IF(B2>=90, “S”, IF(B2>=70, “A”, IF(B2>=50, “B”, “C”)))
大きい値(厳しい条件)から順に書く。
AND・OR関数との組み合わせ
「営業成績がA かつ 勤怠評価が良」のように、複数の条件を同時に満たすかどうかを判定したい場合は、IF関数の条件部分にAND関数やOR関数を組み合わせます。

AND関数(すべての条件を満たす)
AND関数は、指定した全条件がTRUEのときだけTRUEを返します。
=IF(AND(B2=”A”, C2=”良”), “昇格候補”, “対象外”)
営業成績が「A」かつ勤怠評価が「良」の社員だけが「昇格候補」と判定されます。
AND関数で3つ以上の条件を使う
ANDは2つだけでなく、3つ以上の条件を組み合わせることもできます。勤怠管理の例を見てみましょう。
=IF(AND(B2>=20, C2<=2, D2>0), “◎ 問題なし”, “要確認”)
B列に出勤日数、C列に遅刻回数、D列に有給残日数が入っているとして:
- 出勤日数が20日以上
- 遅刻が2回以下
- 有給残日数が1日以上
3つすべてを満たすなら「◎ 問題なし」、1つでも外れたら「要確認」と判定します。
OR関数(いずれかの条件を満たす)
OR関数は、指定した条件のうち一つでもTRUEであればTRUEを返します。
=IF(OR(B2=”A”, B2=”S”), “優秀”, “通常”)
営業成績が「A」または「S」のどちらかであれば「優秀」と判定します。
「〜かつ〜」と表現できるなら AND、「〜または〜」と表現できるなら OR です。「全員が合格するとプロジェクト成功」は AND(全員が条件を満たす必要がある)。「誰か一人でも達成すれば次のフェーズへ」は OR(誰かが条件を満たせばよい)と覚えておくとわかりやすいです。
実務で使う売上目標の達成判定
毎月の売上実績を目標と比較し、達成率に応じて「◎ 達成」「△ 未達」「× 要改善」を自動表示する実務例です。

売上管理表では、E列に達成率(B列の実績÷C列の目標)をあらかじめ計算しておき、F列のIF関数でそのパーセントに応じた判定を出します。
=IF(E2>=1.1, “◎ 達成”, IF(E2>=0.9, “△ 未達”, “× 要改善”))
達成率110%以上→「◎ 達成」、90%以上→「△ 未達」、90%未満→「× 要改善」と3段階で判定しています。
この数式はIF入れ子(ネスト)の典型的な使い方です。条件を大きい方(110%以上)から順に判定することで、各ランクを正しく振り分けられます。判定ルールを変えたい場合は、この数式の数値を変えるだけです。たとえば「120%以上で◎」に変えたければ、最初の 1.1 を 1.2 に変えます。
実務で使えるIF関数パターン集
ここでは、さまざまな業務シーンで即使えるIF関数のパターンを5つ紹介します。そのままコピーして使えるように、実際のセル参照を使って書いています。
パターン1 — 有給残日数の管理
有給休暇の残日数を管理している表で、残日数に応じたアラートを自動表示します。人事担当者が定期的に確認するレポートとして使えます。
=IF(B2>=10, “余裕あり”, IF(B2>=5, “注意”, “残少”))
10日以上→余裕あり、5日以上→注意、5日未満→残少。条件付き書式と組み合わせて「残少」のセルを赤くすると一目で把握できます。
パターン2 — 売上目標の達成率判定
部門や担当者ごとの売上実績が目標に対してどの水準か、記号付きで表示します。
=IF(B2/C2>=1, “達成 ◎”, IF(B2/C2>=0.8, “進行中 △”, “未達 ×”))
目標の100%以上→達成、80%以上→進行中、80%未満→未達と3段階で判定します。月次レポートの自動集計で重宝します。
パターン3 — 期限管理(TODAY関数との組み合わせ)
タスクや契約の期限を管理する表で、期限が近いものを自動でフラグ表示します。TODAY関数は実行するたびに今日の日付に更新されるので、毎朝ファイルを開くだけで最新のアラートが表示されます。
=IF(B2<TODAY(), “期限超過”, IF(B2<=TODAY()+7, “期限間近”, “余裕あり”))
期限日が今日より前なら「期限超過」、今日から7日以内なら「期限間近」、それ以外なら「余裕あり」。契約更新管理・タスク管理・有効期限管理に使えます。
パターン4 — データ入力の検証(空欄チェック)
入力フォームや申請書類の管理表で、必須項目が空欄になっていないか自動チェックします。
=IF(OR(B2=””, C2=””, D2=””), “入力漏れあり”, “入力完了”)
B・C・D列のいずれか1つでも空欄なら「入力漏れあり」と警告。全部入力されていれば「入力完了」と表示します。申請受付担当者が一覧を確認するときに便利です。
パターン5 — 条件による自動分類
顧客リストや取引先リストで、売上規模や取引区分に応じて自動的にランク分けします。営業戦略の優先度設定や、DMの送付対象を選別するときに使えます。
=IF(B2>=5000000, “A(重点顧客)”, IF(B2>=1000000, “B(通常顧客)”, “C(小口顧客)”))
年間取引額500万円以上→Aランク(重点顧客)、100万円以上→Bランク(通常顧客)、100万円未満→Cランク(小口顧客)として自動分類します。このランクをもとに営業訪問頻度や対応優先度を決めることができます。
これらのパターンはそのままコピーして使えますが、数値の基準(10日、5日、1000000など)は自社の業務ルールに合わせて変えてください。また、判定結果のテキスト(「余裕あり」「期限間近」など)も、社内で使い慣れた表現に変えると運用しやすくなります。一度テンプレートを作っておけば、似たような判定が必要な場面で使い回せます。
IF関数活用のまとめ
- 基本形をまず覚える — =IF(条件, 真の値, 偽の値) が出発点。第3引数を省略しない
- 文字列は必ず ” ” で囲む — 囲み忘れるとエラーになる。空白は “” と書く
- ネストは条件を大きい値から書く — 小さい値から書くと後の条件に到達しなくなる
- 3段階以上の分岐はIFS関数を検討 — ネストより読みやすく、修正もしやすい(Excel 2019以降)
- AND/ORで複合条件に対応 — 「かつ」はAND、「または」はOR
- TODAY()と組み合わせれば日付ベースのアラートが作れる — 毎日自動で更新される
- 条件の境界値に注意 — 「以上(>=)」と「超える(>)」で結果が変わる
次のステップ
IF関数の基本とパターンをマスターしたら、次はCOUNTIF関数やSUMIF関数に挑戦してみてください。これらは「条件を満たすセルの数を数える」「条件を満たす行の合計を出す」という関数で、IF関数と同じ「条件の書き方」の知識がそのまま活かせます。
また、条件分岐を視覚的に表現したいなら条件付き書式も強力なツールです。IF関数で「要改善」と表示しているセルを、条件付き書式で赤く塗ると、一覧表を眺めるだけで問題のある行がすぐ目に入るようになります。IF関数と条件付き書式の組み合わせは、実務の帳票設計でよく使われる定番パターンです。
条件が多く複雑になってきたら、SWITCH関数(Excel 2019以降)やIFS関数を使うと数式がすっきりします。また、条件に合う行だけを抽出したい場合はFILTER関数(Microsoft 365)が便利です。まずはIF関数でできることの範囲を広げていき、必要になったタイミングで新しい関数を習得するのが効率的な学び方です。
IF関数をはじめとした関数スキルを社内全体に定着させたい、Excel業務そのものを見直してDXを推進したい——そんなお悩みをお持ちの方は、お気軽にご相談ください。