ExcelのIF関数を徹底解説|基本の使い方からネスト・複数条件まで

Excel

「ExcelのIF関数ってよく聞くけど、どうやって使うの?」 「条件によって表示を変えたいけど、書き方が分からない…」

こんな悩みを持っていませんか?

Excelで「もし〜なら」を実現したい場面

日常のExcel作業では、以下のような場面がよくあります:

  • 成績表:点数によって「合格」「不合格」を自動表示したい
  • 在庫管理:残数が少なくなったら「要補充」と警告したい
  • 売上分析:目標達成で「達成」、未達成で「未達成」を表示したい
  • 勤怠管理:出勤時間によって「遅刻」「定時」を判定したい
  • 請求書:金額によって割引を適用したい

IF関数が解決すること

IF関数は、Excelで条件分岐をしたいときに使う超定番の関数です。「もし◯◯なら▲▲、そうでなければ■■」という処理を自動化できます。

この記事で学べること

この記事では、ExcelのIF関数について、以下を段階的にわかりやすく解説します:

  • IF関数の基本的な書き方と考え方
  • 実際の業務でよく使う具体例
  • 複数条件を組み合わせる方法(AND・OR)
  • より複雑な判定を行う入れ子(ネスト)の使い方
  • エラーを避けるコツとトラブル解決法

最後まで読めば、IF関数を使ってExcel作業を大幅に効率化できるようになります。

スポンサーリンク

IF関数の基本的な仕組み

IF関数とは?

IF関数は、「条件を満たすかどうか」によって、表示する内容を変える関数です。

日常会話での「もし〜なら」

私たちは普段、こんな風に考えています:

  • 「もし雨なら傘を持つ、晴れなら持たない」
  • 「もしテストが80点以上なら合格、それ以下なら不合格」

IF関数は、まさにこの考え方をExcelで実現します。

IF関数の基本構文

=IF(条件, 真の場合の値, 偽の場合の値)

構文の詳細説明

要素意味
条件判定したい内容A1>=70
真の場合の値条件が満たされたときの表示“合格”
偽の場合の値条件が満たされなかったときの表示“不合格”

実際の例

データ

A1B1
85=IF(A1>=70,”合格”,”不合格”)

結果

  • A1の値(85)は70以上なので、条件が「真」
  • B1には「合格」と表示される

条件の書き方

IF関数では、以下のような条件を指定できます:

数値の比較

条件式意味
A1>100A1が100より大きい売上が目標を超過
A1>=70A1が70以上合格点に達している
A1<10A1が10より小さい在庫が不足している
A1<=0A1が0以下マイナスまたはゼロ
A1=50A1が50と等しいちょうど半分
A1<>0A1が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")

実際の管理表例

商品名在庫数状態
商品A5=IF(B2<10,”要補充”,”在庫OK”)
商品B25=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点以上なら合格。

実際の成績表例

名前数学英語判定
田中7565=IF(AND(B2>=60,C2>=60),”合格”,”不合格”)
佐藤8045=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"))

判定の流れ

  1. A1が80以上なら「A」
  2. そうでなければ、A1が60以上なら「B」
  3. どちらでもなければ「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")

エラーの発生しやすさ

ネストが深いほど、括弧の対応ミスなどでエラーが発生しやすくなります。

対策

  1. 段階的に作成:まず2段階から始めて、徐々に条件を追加
  2. 括弧の対応確認:カラーリング機能を活用
  3. 別セルでテスト:複雑な関数は別セルで動作確認

よくあるエラーと解決方法

#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,"全員入力済み","未入力あり")

入力完了状況の確認。

条件付き書式との連携

セルの色を自動変更

  1. 条件付き書式を設定
    • 範囲を選択 → ホーム → 条件付き書式
  2. 数式を使用して書式設定 =IF($B1>=80,TRUE,FALSE)
  3. 書式を設定
    • 80点以上のセルを緑色に自動変更

データ検証との組み合わせ

入力制限の設定

  1. データ → データの入力規則
  2. ユーザー設定を選択
  3. 数式を入力 =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以降)の使用も検討
  • 段階的に作成してエラーを防ぐ

エラー回避のコツ

  1. データ型の確認:数値と文字列の混同に注意
  2. 空白セルの処理:適切な空白判定を行う
  3. 条件の順序:高い条件から低い条件へ
  4. 括弧の対応:複雑な関数では特に注意

効率化のポイント

  • 他の関数との組み合わせでより強力な処理
  • 条件付き書式との連携で視覚的な管理
  • テンプレート化で業務の標準化

コメント

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