「ExcelのIF関数ってよく聞くけど、どうやって使うの?」 「条件によって表示を変えたいけど、書き方が分からない…」
こんな悩みを持っていませんか?
Excelで「もし〜なら」を実現したい場面
日常のExcel作業では、以下のような場面がよくあります:
- 成績表:点数によって「合格」「不合格」を自動表示したい
- 在庫管理:残数が少なくなったら「要補充」と警告したい
- 売上分析:目標達成で「達成」、未達成で「未達成」を表示したい
- 勤怠管理:出勤時間によって「遅刻」「定時」を判定したい
- 請求書:金額によって割引を適用したい
IF関数が解決すること
IF関数は、Excelで条件分岐をしたいときに使う超定番の関数です。「もし◯◯なら▲▲、そうでなければ■■」という処理を自動化できます。
この記事で学べること
この記事では、ExcelのIF関数について、以下を段階的にわかりやすく解説します:
- IF関数の基本的な書き方と考え方
- 実際の業務でよく使う具体例
- 複数条件を組み合わせる方法(AND・OR)
- より複雑な判定を行う入れ子(ネスト)の使い方
- エラーを避けるコツとトラブル解決法
最後まで読めば、IF関数を使ってExcel作業を大幅に効率化できるようになります。
IF関数の基本的な仕組み

IF関数とは?
IF関数は、「条件を満たすかどうか」によって、表示する内容を変える関数です。
日常会話での「もし〜なら」
私たちは普段、こんな風に考えています:
- 「もし雨なら傘を持つ、晴れなら持たない」
- 「もしテストが80点以上なら合格、それ以下なら不合格」
IF関数は、まさにこの考え方をExcelで実現します。
IF関数の基本構文
=IF(条件, 真の場合の値, 偽の場合の値)
構文の詳細説明
要素 | 意味 | 例 |
---|---|---|
条件 | 判定したい内容 | A1>=70 |
真の場合の値 | 条件が満たされたときの表示 | “合格” |
偽の場合の値 | 条件が満たされなかったときの表示 | “不合格” |
実際の例
データ
A1 | B1 |
---|---|
85 | =IF(A1>=70,”合格”,”不合格”) |
結果
- A1の値(85)は70以上なので、条件が「真」
- B1には「合格」と表示される
条件の書き方
IF関数では、以下のような条件を指定できます:
数値の比較
条件式 | 意味 | 例 |
---|---|---|
A1>100 | A1が100より大きい | 売上が目標を超過 |
A1>=70 | A1が70以上 | 合格点に達している |
A1<10 | A1が10より小さい | 在庫が不足している |
A1<=0 | A1が0以下 | マイナスまたはゼロ |
A1=50 | A1が50と等しい | ちょうど半分 |
A1<>0 | A1が0でない | 何らかの値が入っている |
文字の比較
=IF(A1="完了","終了","継続中")
A1セルに「完了」と入力されていれば「終了」、それ以外なら「継続中」と表示。
空白の判定
=IF(A1="","未入力","入力済み")
A1セルが空白なら「未入力」、何か入力されていれば「入力済み」と表示。
実際の業務でよく使うIF関数の例

成績や評価の判定
基本的な合否判定
用途:テストの点数による合否判定
=IF(A1>=60,"合格","不合格")
応用例
点数 | 判定 |
---|---|
85 | 合格 |
45 | 不合格 |
60 | 合格 |
営業成績の評価
用途:売上目標の達成状況
=IF(B1>=1000000,"目標達成","未達成")
実際の使用例
担当者 | 売上 | 評価 |
---|---|---|
田中 | 1200000 | =IF(B2>=1000000,”目標達成”,”未達成”) |
佐藤 | 800000 | =IF(B3>=1000000,”目標達成”,”未達成”) |
在庫管理での活用
在庫不足の警告
用途:在庫数による補充の判断
=IF(C1<10,"要補充","在庫OK")
実際の管理表例
商品名 | 在庫数 | 状態 |
---|---|---|
商品A | 5 | =IF(B2<10,”要補充”,”在庫OK”) |
商品B | 25 | =IF(B3<10,”要補充”,”在庫OK”) |
発注タイミングの自動判定
=IF(D1<E1,"発注必要","発注不要")
D1:現在在庫、E1:最低在庫数で判定
勤怠管理での応用
遅刻判定
用途:出勤時間による遅刻チェック
=IF(A1>TIME(9,0,0),"遅刻","定時")
TIME(9,0,0)は午前9時を表します。
残業時間の計算
=IF(B1>TIME(18,0,0),B1-TIME(18,0,0),"なし")
18時を超えた分を残業時間として計算。
料金計算での活用
送料の自動判定
用途:購入金額による送料計算
=IF(A1>=5000,0,500)
5000円以上なら送料無料、それ以下なら500円。
割引の適用
=IF(B1>=10000,B1*0.9,B1)
10000円以上なら10%割引を適用。
データ入力支援
必須項目のチェック
=IF(C1="","要入力","OK")
必須項目が空白の場合に警告を表示。
データの整合性チェック
=IF(D1>E1,"エラー:開始日が終了日より後です","OK")
開始日と終了日の論理チェック。
複数条件を扱う方法(AND・OR関数との組み合わせ)
AND関数との組み合わせ
AND関数の基本概念
AND関数は「すべての条件が満たされたとき」に真になります。
基本構文
=IF(AND(条件1, 条件2, 条件3), 真の場合, 偽の場合)
実用的な例
2科目の合格判定
=IF(AND(A1>=60, B1>=60),"合格","不合格")
数学と英語の両方が60点以上なら合格。
実際の成績表例
名前 | 数学 | 英語 | 判定 |
---|---|---|---|
田中 | 75 | 65 | =IF(AND(B2>=60,C2>=60),”合格”,”不合格”) |
佐藤 | 80 | 45 | =IF(AND(B3>=60,C3>=60),”合格”,”不合格”) |
年齢と経験による採用判定
=IF(AND(A1>=25, A1<=35, B1>=3),"採用候補","条件不適合")
25歳以上35歳以下で、かつ経験3年以上の場合に採用候補。
在庫と期限のダブルチェック
=IF(AND(C1<10, D1<TODAY()+30),"緊急発注","OK")
在庫が10未満で、かつ賞味期限が30日以内なら緊急発注。
OR関数との組み合わせ
OR関数の基本概念
OR関数は「いずれかの条件が満たされたとき」に真になります。
基本構文
=IF(OR(条件1, 条件2, 条件3), 真の場合, 偽の場合)
実用的な例
支払い状況の確認
=IF(OR(A1="未払い", B1="未払い"),"請求要","支払い済み")
今月分または先月分のいずれかが未払いなら請求が必要。
緊急連絡の判定
=IF(OR(C1="緊急", D1>=40, E1="VIP"),"即対応","通常対応")
緊急案件、40度以上の発熱、またはVIP顧客のいずれかに該当すれば即座に対応。
割引対象の判定
=IF(OR(F1>=10000, G1="会員", H1="初回"),"割引適用","通常価格")
10000円以上、会員、または初回利用のいずれかに該当すれば割引適用。
AND・ORの組み合わせ
より複雑な条件設定
シニア割引の判定
=IF(AND(OR(A1>=65, B1="障害者手帳有"), C1="会員"),"シニア割引","通常価格")
(65歳以上または障害者手帳保有)かつ会員の場合にシニア割引。
採用基準の複合判定
=IF(AND(A1>=25, OR(B1="大卒", C1>=5), D1="TOEIC800以上"),"面接","書類不合格")
25歳以上で、(大卒または経験5年以上)で、かつTOEIC800以上なら面接対象。
IF関数のネスト(入れ子)による多段階判定

ネストの基本概念
ネスト(入れ子)とは、IF関数の中にさらにIF関数を入れることで、3つ以上の分岐を作る方法です。
基本的なネストの例
成績のランク分け
3段階評価
=IF(A1>=80,"A",IF(A1>=60,"B","C"))
判定の流れ
- A1が80以上なら「A」
- そうでなければ、A1が60以上なら「B」
- どちらでもなければ「C」
実際の成績表例
名前 | 点数 | ランク |
---|---|---|
田中 | 85 | =IF(A2>=80,”A”,IF(A2>=60,”B”,”C”)) |
佐藤 | 72 | =IF(A3>=80,”A”,IF(A3>=60,”B”,”C”)) |
鈴木 | 45 | =IF(A4>=80,”A”,IF(A4>=60,”B”,”C”)) |
より複雑なネストの例
5段階評価システム
=IF(A1>=90,"S",IF(A1>=80,"A",IF(A1>=70,"B",IF(A1>=60,"C","D"))))
評価基準
- 90点以上:S
- 80点以上:A
- 70点以上:B
- 60点以上:C
- 60点未満:D
送料の段階設定
=IF(A1>=10000,0,IF(A1>=5000,300,IF(A1>=3000,500,800)))
送料体系
- 10000円以上:送料無料
- 5000円以上:300円
- 3000円以上:500円
- 3000円未満:800円
営業成績のボーナス計算
=IF(B1>=150,B1*0.1,IF(B1>=120,B1*0.05,IF(B1>=100,B1*0.02,0)))
ボーナス率
- 150%以上:10%
- 120%以上:5%
- 100%以上:2%
- 100%未満:なし
ネスト使用時の注意点
可読性の問題
ネストが深くなると、関数が複雑になり理解が困難になります。
悪い例(読みにくい)
=IF(A1>=90,"S",IF(A1>=80,"A",IF(A1>=70,"B",IF(A1>=60,"C",IF(A1>=50,"D","F")))))
改善案:IFS関数の使用(Excel 2016以降)
=IFS(A1>=90,"S",A1>=80,"A",A1>=70,"B",A1>=60,"C",A1>=50,"D",TRUE,"F")
エラーの発生しやすさ
ネストが深いほど、括弧の対応ミスなどでエラーが発生しやすくなります。
対策
- 段階的に作成:まず2段階から始めて、徐々に条件を追加
- 括弧の対応確認:カラーリング機能を活用
- 別セルでテスト:複雑な関数は別セルで動作確認
よくあるエラーと解決方法
#VALUE! エラー
原因と解決方法
原因1:データ型の不一致
=IF(A1>50,"合格","不合格") # A1にテキストが入っている
解決方法
=IF(ISNUMBER(A1),IF(A1>50,"合格","不合格"),"数値を入力してください")
原因2:全角文字の混入
=IF(A1>50,"合格","不合格") # 「>」が全角
解決方法:半角記号に修正
空白セルの適切な処理
=IF(A1="","",IF(A1>=60,"合格","不合格"))
空白セルの場合は空白を返し、エラーを回避。
#NAME? エラー
原因と解決方法
原因:関数名の間違い
=IFF(A1>50,"合格","不合格") # IFFは存在しない
解決方法:正しい関数名「IF」に修正
原因:ダブルクォーテーションの不備
=IF(A1>50,合格,"不合格") # 「合格」にクォートがない
解決方法
=IF(A1>50,"合格","不合格")
論理エラー(結果が意図と異なる)
条件の順序による問題
問題のある例
=IF(A1>=60,"合格",IF(A1>=80,"優秀","不合格"))
この場合、80点でも「合格」になり、「優秀」にならない。
正しい書き方
=IF(A1>=80,"優秀",IF(A1>=60,"合格","不合格"))
高い条件から順番に判定する。
等号の方向による問題
=IF(50>A1,"不合格","合格") # 条件が逆
正しい書き方
=IF(A1>=50,"合格","不合格")
実践的な活用テクニック

IF関数と他の関数との組み合わせ
VLOOKUP関数との組み合わせ
=IF(ISERROR(VLOOKUP(A1,B:C,2,FALSE)),"該当なし",VLOOKUP(A1,B:C,2,FALSE))
VLOOKUPでエラーが発生した場合に「該当なし」と表示。
SUM関数との組み合わせ
=IF(SUM(A1:A10)>1000,"目標達成","未達成")
合計値による判定。
COUNT関数との組み合わせ
=IF(COUNTA(A1:A10)=10,"全員入力済み","未入力あり")
入力完了状況の確認。
条件付き書式との連携
セルの色を自動変更
- 条件付き書式を設定
- 範囲を選択 → ホーム → 条件付き書式
- 数式を使用して書式設定
=IF($B1>=80,TRUE,FALSE)
- 書式を設定
- 80点以上のセルを緑色に自動変更
データ検証との組み合わせ
入力制限の設定
- データ → データの入力規則
- ユーザー設定を選択
- 数式を入力
=IF(A1>=0,TRUE,FALSE)
負の値の入力を防止。
業務での実践例
売上管理システム
月次売上の評価
=IF(B2>=C2*1.1,"優秀",IF(B2>=C2,"達成",IF(B2>=C2*0.9,"まずまず","要改善")))
B2:実績、C2:目標として、110%以上なら優秀、100%以上なら達成…
四半期ボーナス計算
=IF(AND(D2>=100,E2>=100,F2>=100),G2*0.1,IF(OR(D2>=100,E2>=100,F2>=100),G2*0.05,0))
3ヶ月すべて目標達成なら10%、いずれか達成なら5%のボーナス。
人事管理システム
昇進条件の判定
=IF(AND(A2>=3,B2>=80,C2="なし"),"昇進候補","条件不足")
勤続3年以上、評価80以上、懲戒なしで昇進候補。
有給残日数の警告
=IF(D2<5,"有給消化推奨",IF(D2<10,"計画的取得を","十分な残日数"))
残日数による有給取得の促進。
プロジェクト管理
進捗状況の判定
=IF(E2>=1,"遅延",IF(E2>=0.9,"要注意",IF(E2>=0.7,"順調","前倒し")))
進捗率による状況判定。
リスク評価
=IF(AND(F2="高",G2="高"),"最高リスク",IF(OR(F2="高",G2="高"),"高リスク","中・低リスク"))
影響度と発生確率による総合リスク評価。
まとめ
ExcelのIF関数について、重要なポイントをまとめます:
基本的な使い方
構文:=IF(条件, 真の場合, 偽の場合)
活用場面
- 成績や評価の自動判定
- 在庫管理での警告表示
- 料金計算での条件分岐
- データ入力支援
複数条件の扱い
AND関数:すべての条件を満たす場合
=IF(AND(条件1, 条件2), 真, 偽)
OR関数:いずれかの条件を満たす場合
=IF(OR(条件1, 条件2), 真, 偽)
ネスト(入れ子)
3段階以上の分岐が必要な場合に使用
=IF(条件1, 値1, IF(条件2, 値2, 値3))
注意点
- 深いネストは可読性が悪くなる
- IFS関数(Excel 2016以降)の使用も検討
- 段階的に作成してエラーを防ぐ
エラー回避のコツ
- データ型の確認:数値と文字列の混同に注意
- 空白セルの処理:適切な空白判定を行う
- 条件の順序:高い条件から低い条件へ
- 括弧の対応:複雑な関数では特に注意
効率化のポイント
- 他の関数との組み合わせでより強力な処理
- 条件付き書式との連携で視覚的な管理
- テンプレート化で業務の標準化
コメント