Excel初心者

【Excel】IF関数の使い方|基本から複数条件・ネストまで初心者向けに解説

しんたろ。

ExcelのIF関数は「もし〜だったら○○、そうでなければ△△」という条件分岐ができる超便利な関数だよ!基本から応用まで、一緒にマスターしていこう!

この記事でわかること
  • IF関数の基本構文と3つの引数の意味
  • 比較演算子(=、<>、>=など)の使い方
  • 数値・文字列・空白を条件にした実践的な使い方
  • AND関数・OR関数と組み合わせて複数条件を指定する方法
  • IF関数のネスト(入れ子)で3つ以上に条件分岐する方法
  • IFS関数との違いと使い分け
この操作、VBAで一瞬で自動化できます
まずは関数の使い方を解説し、最後にVBA自動化コードも紹介します
‘ 点数に応じて合格・不合格を自動判定するマクロ
Sub IF自動判定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Long
    For i = 2 To 6
        If ws.Cells(i, “B”).Value >= 80 Then
            ws.Cells(i, “C”).Value = “合格”
        Else
            ws.Cells(i, “C”).Value = “不合格”
        End If
    Next i
    MsgBox “5件の判定が完了しました”
End Sub
下のデモで実行結果を確認できます
📊 成績管理.xlsx – Excel
ABC
1 名前点数結果
2 田中85 合格
3 鈴木62 不合格
4 佐藤91 合格
5 山田45 不合格
6 高橋78 不合格
準備完了 100%
5件の点数データから合格・不合格が自動判定されました!
☝ 実務では条件を変更してAND/OR関数と組み合わせることも可能です

IF関数とは?条件によって結果を変えるExcelの基本関数

IF関数は、指定した条件が成立するかどうかによって、表示する値を切り替えるExcelの関数です。

例えば「テストの点数が80点以上なら”合格”、80点未満なら”不合格”と表示する」といった処理を自動化できます。

データが数十件、数百件あっても、IF関数を使えば一瞬で判定結果を出せるので、手入力によるミスも防げます。

IF関数の基本構文(書き方)

IF関数の基本的な書き方は次のとおりです。

IF関数の条件分岐フローチャート(TRUE/FALSEの2分岐)
IF関数の条件分岐フロー
=IF(論理式, 真の場合, 偽の場合)
引数意味入力例
論理式判定する条件A1>=80
真の場合条件が成立したときに返す値“合格”
偽の場合条件が不成立のときに返す値“不合格”

文字列を指定する場合は、ダブルクォーテーション(””)で囲みます。数値はそのまま入力できます。

IF関数で使える比較演算子一覧

論理式で条件を指定する際に使う比較演算子をまとめました。

演算子意味使用例読み方
=等しいA1=100A1が100と等しい
<>等しくないA1<>0A1が0ではない
>より大きいA1>80A1が80より大きい
<より小さいA1<50A1が50より小さい
>=以上A1>=80A1が80以上
<=以下A1<=100A1が100以下

IF関数の基本的な使い方【実践】

ここからは、実際にIF関数を使った具体例を見ていきましょう。

数値を比較して結果を表示する

最もよく使うパターンが、数値を比較して判定結果を表示するケースです。

例:テストの点数が80点以上なら”合格”、未満なら”不合格”と表示

=IF(B2>=80,"合格","不合格")

この数式では、B2セルの値が80以上かどうかを判定しています。条件を満たせば「合格」、満たさなければ「不合格」と表示されます。

数式を入力したら、セルの右下をドラッグしてオートフィルすれば、他の行にも一括で適用できます。

文字列を条件に使う

IF関数では、文字列を条件として指定することもできます。

例:部署が”営業”なら”外勤手当あり”、それ以外は”なし”と表示

=IF(C2="営業","外勤手当あり","なし")

文字列を論理式で使う場合も、ダブルクォーテーションで囲むのがポイントです。

空白かどうかを判定する

セルが空白のときに特定の処理をしたい場合もIF関数で対応できます。

例:セルが空白なら何も表示せず、値があれば計算する

=IF(A2="","",A2*B2)

空白を表す場合は「””」(ダブルクォーテーション2つ)を使います。この書き方を覚えておくと、未入力のセルでエラーが表示されるのを防げます。

IF関数で複数条件を指定する方法

IF関数単体では1つの条件しか指定できませんが、AND関数やOR関数と組み合わせることで複数条件に対応できます。

AND関数と組み合わせる(すべての条件を満たす場合)

AND関数は「すべての条件がTRUE」のときにTRUEを返す関数です。IF関数の論理式にAND関数を組み込むことで、複数条件をすべて満たす場合の処理を指定できます。

例:国語と数学の両方が80点以上なら”合格”

=IF(AND(B2>=80,C2>=80),"合格","不合格")

AND関数の中に条件をカンマ区切りで並べます。条件は3つ以上でも指定可能です。

OR関数と組み合わせる(いずれかの条件を満たす場合)

OR関数は「いずれかの条件がTRUE」のときにTRUEを返す関数です。

例:国語または数学のどちらかが90点以上なら”優秀”

=IF(OR(B2>=90,C2>=90),"優秀","通常")

AND関数との違いをしっかり理解しておくと、実務での使い分けがスムーズになります。

IF関数のネスト(入れ子)で3つ以上の条件分岐

IF関数の「偽の場合」の引数にさらにIF関数を入れることで、3つ以上の結果に分岐できます。これをネスト(入れ子)と呼びます。

ネストの基本的な書き方

例:点数に応じて”A”、”B”、”C”の3段階で評価する

=IF(B2>=80,"A",IF(B2>=60,"B","C"))

この数式の処理の流れは次のとおりです。

  1. まずB2が80以上か判定 → TRUEなら「A」
  2. FALSEなら次のIF関数へ → B2が60以上か判定 → TRUEなら「B」
  3. それもFALSEなら「C」

ネストは最大64段階まで可能ですが、3段階以上になると数式が読みにくくなります。その場合はIFS関数の利用がおすすめです。

IFS関数で簡単に書く方法(Excel 2019以降)

IFS関数を使うと、ネストなしで複数の条件分岐を記述できます。

IF関数のネストをIFS関数で書き換えた例:

=IFS(B2>=80,"A",B2>=60,"B",TRUE,"C")

IFS関数は条件と結果のペアを順番に並べるだけなので、カッコの入れ子が不要で見やすくなります。

最後の「TRUE,”C”」は、どの条件にも当てはまらなかった場合のデフォルト値です。

IFS関数はExcel 2019以降やMicrosoft 365で使えるよ。古いバージョンを使っている場合はIF関数のネストを使おう!

IF関数と一緒に覚えたい関連関数

IF関数をマスターしたら、あわせて覚えておきたい関連関数を紹介します。

IFERROR関数:エラー時の表示を制御

IFERROR関数は、数式がエラーになった場合に、指定した値を代わりに表示する関数です。

=IFERROR(計算式, エラー時の値)

例:VLOOKUP関数のエラーを空白にする

=IFERROR(VLOOKUP(A2,商品表,2,FALSE),"")

#N/A、#DIV/0!、#REF! などすべてのエラーに対応できます。

COUNTIF・SUMIF関数:条件付きで集計

IF系の派生関数として、条件に合うデータを集計する関数も便利です。

関数名機能書き方の例
COUNTIF条件に合うセルの個数を数える=COUNTIF(A:A,"合格")
SUMIF条件に合うセルの合計を求める=SUMIF(A:A,"営業",B:B)

これらの関数の詳しい使い方は、以下の記事で解説しています。

IF関数の処理をVBAで自動化する方法

IF関数の条件判定をVBAのIf…Then…Else構文で自動化すれば、数百行のデータも一括で判定処理できます。

' 点数に応じて合格・不合格を自動判定するマクロ
Sub IF自動判定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Long
    For i = 2 To 6
        If ws.Cells(i, "B").Value >= 80 Then
            ws.Cells(i, "C").Value = "合格"
        Else
            ws.Cells(i, "C").Value = "不合格"
        End If
    Next i
    MsgBox "5件の判定が完了しました"
End Sub

VBAマクロの実行結果は記事冒頭のインタラクティブデモで確認できます。ボタンを押すとアニメーションで動作をシミュレーションします。

IF関数でよくある質問(FAQ)

IF関数で何も表示したくないときはどうすればいい?

真の場合または偽の場合に「””」(空の文字列)を指定します。例えば、条件を満たさないときに空白にしたい場合は =IF(A1>=80,"合格","") と入力します。

IF関数の論理式で文字列を比較するとき、大文字と小文字は区別される?

いいえ、ExcelのIF関数では大文字と小文字は区別されません。「ABC」と「abc」は同じものとして扱われます。大文字・小文字を区別したい場合はEXACT関数と組み合わせてください。

IF関数のネストは何段階まで使える?

Excel 2007以降では最大64段階までネストできます。ただし、3段階以上になる場合はIFS関数やVLOOKUP関数を使ったほうが読みやすくなります。

IF関数で「〜以上かつ〜以下」のように範囲を指定したい

AND関数と組み合わせます。例:=IF(AND(A1>=60,A1<=80),"B","その他") のように書くと、60以上80以下の場合に「B」と表示されます。

#VALUE!エラーが出るのはなぜ?

論理式の書き方に問題がある可能性があります。よくある原因は、全角のカンマや括弧を使っている、セル参照が間違っている、などです。数式内の記号はすべて半角で入力してください。

💻 操作を体験してみよう!

実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。

X
IF関数デモ.xlsx
C2 C2 C3 C4 C5
← B列の点数をクリック =IF(B2>=80,”合格”,”不合格”) → 合格 =IF(B3>=80,”合格”,”不合格”) → 合格 =IF(B4>=80,”合格”,”不合格”) → 不合格 =IF(B5>=80,”合格”,”不合格”) → 不合格
A B C
1 名前 点数 判定
2 田中 ← 選択 合格
3 鈴木 合格
4 佐藤 不合格
5 高橋 不合格
条件TRUE — 点数が80以上なので「合格」を返します。IF関数の第2引数(値が真の場合)が表示されます。
条件FALSE — 点数が80未満なので「不合格」を返します。IF関数の第3引数(値が偽の場合)が表示されます。
1 B列の点数をクリックしてIF関数の判定結果を確認
2 80以上(95、80)→ 「合格」、80未満(65、45)→ 「不合格」
3 数式バーで各行のIF数式と結果を確認しましょう

まとめ

IF関数はExcelで条件分岐を行うための基本関数です。この記事で紹介した内容をおさらいします。

  • IF関数の基本構文は =IF(論理式, 真の場合, 偽の場合)
  • 比較演算子(=、<>、>=、<=、>、<)で条件を指定する
  • AND関数・OR関数と組み合わせて複数条件に対応できる
  • 3つ以上の分岐にはネストまたはIFS関数を使う
  • 空白処理は「””」で指定する
  • エラー対策にはIFERROR関数が便利

IF関数を使いこなせるようになると、データの判定作業が格段に効率化します。まずは基本の書き方から実際に手を動かして試してみてください。


Excelスキルを活かしてSNS運用も自動化しませんか?

Excelの関数をマスターしたあなたなら、Googleスプレッドシート×GAS(Google Apps Script)を使ったSNS自動化ツールもすぐに使いこなせます。X(Twitter)やThreadsの予約投稿を、月額0円で自動化する方法をまとめています。

SNS予約投稿ツール完全ガイド|無料&買い切りツールを徹底比較

Excel業務の自動化
その手作業、自動化しませんか?

VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。

1,600部ツール販売実績
15年製造業の業務経験
無料で相談する →
初回相談無料・お見積りだけでもOK
期間限定でChatGPT✖︎Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました