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

スポンサーリンク

「条件によって表示する値を変えたい」。Excelを使っていると、こんな場面に何度も出くわしますよね。売上が目標を超えたら「達成」、超えなかったら「未達」と表示したい。そんなときに使うのがIF関数です。

IF関数はExcelの中でも使用頻度トップクラスの関数。でも「ネストがよくわからない」「AND・ORとの組み合わせが難しい」と感じている方も多いのではないでしょうか。

この記事では、IF関数の使い方を基本から解説します。複数条件の指定やネストの書き方まで、実務で使える例を交えてわかりやすく説明します。

IF関数とは?

ExcelのIF関数は、条件に応じて処理を分岐させる関数です。「もし〜なら○○、そうでなければ△△」というロジックを数式で表現できます。

読み方は「イフ関数」。英語の「if(もし)」がそのまま関数名になっています。Excelでは「論理関数」に分類されており、AND関数・OR関数などと同じグループです。

たとえば「点数が70以上なら合格、それ以外は不合格」。こうした条件判定を自動化できるのがIF関数の役割です。数値・文字列・日付など、あらゆるデータに対して条件判定できます。

手動で一件ずつ確認・入力する作業をIF関数で自動化すれば、データが変わっても再計算が自動で行われます。入力ミスも防げるため、実務の表作りには欠かせない関数です。Excelの全バージョンで使えるので、ぜひ覚えておきましょう。

IF関数の書き方(構文と引数)

基本構文

IF関数の構文はとてもシンプルです。

=IF(論理式, 値が真の場合, 値が偽の場合)

日本語に置き換えると「もし○○なら△△、そうでなければ□□」という形です。

引数の説明

IF関数の引数は3つあります。

引数必須/省略可説明
論理式必須TRUE/FALSEを判定する条件式
値が真の場合必須論理式がTRUEのときに返す値
値が偽の場合省略可論理式がFALSEのときに返す値

3つ目の「値が偽の場合」は省略できます。ただし、省略するとFALSEという文字が表示されます。空白にしたい場合は "" と書いてください。この違いは意外と見落としやすいポイントです。

IF関数の基本的な使い方

数値を判定する例

まずは数値の判定です。テストの点数が70点以上なら「合格」と表示してみましょう。

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

B2セルの値が70以上ならTRUEとなり「合格」が返ります。70未満ならFALSEとなり「不合格」が返ります。

比較演算子は >=(以上)のほかにも使えます。>(より大きい)、<(より小さい)、<=(以下)、=(等しい)、<>(等しくない)を場面に応じて使い分けてください。

文字列を判定する例

文字列の判定もよく使います。部署が「営業部」なら「外勤手当あり」と表示する例です。

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

文字列を条件にするときは、必ずダブルクォーテーション(")で囲みます。囲み忘れると #NAME? エラーになるので注意してください。

条件に合わないときに空白を表示する

「条件に合うときだけ表示して、合わないときは空欄にしたい」。この要望はとても多いです。

=IF(B2>=100,"目標達成","")

偽の場合に "" を指定すれば、セルは空白になります。さきほど説明したとおり、省略するとFALSEが表示されてしまいます。見た目を整えたいときは "" を忘れずに入れましょう。

IF関数の実務活用パターン

ここからは、実務でよく使うIF関数のパターンを紹介します。

売上目標の達成判定

売上と目標を比較して、達成・未達を自動判定する例です。

=IF(C2>=B2,"達成","未達")

B2が目標額、C2が実績額です。月次レポートや営業成績表でよく使うパターンですね。

在庫数による発注アラート

在庫数が発注基準を下回ったらアラートを出す例です。

=IF(B2<=D2,"発注要","")

B2が現在庫数、D2が発注基準数です。条件に合わないときは空白にしておくと、一覧表がすっきりします。

勤怠データの残業判定

勤務時間が8時間を超えたら「残業あり」と表示する例です。

=IF(C2>8,"残業あり","")

C2に勤務時間数を数値で入力している前提です。Excelの時刻形式(シリアル値)で管理している場合は =IF(C2>TIME(8,0,0),"残業あり","") を使ってください。

残業がない日は空白にしておけば、残業のある日だけが目立ちます。

料金区分の自動振り分け

年齢に応じて料金区分を分ける例です。

=IF(B2>=18,"大人","子供")

イベントの参加費や交通費の計算などで使えます。3区分以上に分けたい場合は、後述するネストを使います。

請求書の税率自動切り替え

商品区分に応じて税率を切り替える例です。

=IF(D2="軽減税率",C2*0.08,C2*0.10)

D2に「軽減税率」と入力されていれば8%、それ以外は10%で計算します。請求書テンプレートに組み込んでおくと便利ですよ。

IF関数で複数条件を指定する方法(AND・OR)

「条件を2つ以上同時にチェックしたい」場合は、AND関数OR関数と組み合わせます。

IF関数とAND関数で「すべて満たす」条件

AND関数は「すべての条件がTRUE」のときにTRUEを返します。IF関数の論理式にAND関数を入れる形です。

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

この例では、B2とC2の両方が80以上のときだけ「合格」になります。片方でも80未満なら「不合格」です。

AND関数には最大255個の条件を指定できます。ただし条件が多すぎると読みにくくなるので、3〜4個程度にとどめるのがおすすめです。

IF関数とOR関数で「いずれかを満たす」条件

OR関数は「いずれかの条件がTRUE」ならTRUEを返します。

=IF(OR(B2="東京",B2="大阪"),"対象","対象外")

B2が「東京」か「大阪」のどちらかなら「対象」になります。支店や地域でフィルタリングするときに便利です。

AND関数とOR関数は組み合わせることもできます。

=IF(AND(B2>=60,OR(C2="正社員",C2="契約社員")),"手当支給","対象外")

「勤務時間が60以上」かつ「正社員または契約社員」という複合条件です。ちょっと複雑に見えますが、ANDの中にORが入っているだけなのでシンプルですよ。

IF関数のネスト(複数のIFを入れ子にする)

ネストの基本的な書き方

IF関数の中にIF関数を入れることを「ネスト(入れ子)」と呼びます。3つ以上の分岐が必要なときに使います。

たとえば成績をS・A・B・Cの4段階に分ける場合です。

=IF(A2>=90,"S",IF(A2>=75,"A",IF(A2>=60,"B","C")))

処理の流れはこうなります。

  1. A2が90以上 → 「S」
  2. A2が75以上 → 「A」
  3. A2が60以上 → 「B」
  4. どれにも当てはまらない → 「C」

ポイントは、条件を大きい順に並べることです。最初にTRUEになった時点で処理が確定します。

Excel 2007以降はネストを最大64段まで使えます。ただし実用上は3〜4段が限界です。それ以上になると数式が読めなくなります。

ネストが多い場合はIFS関数も検討

ネストが3段を超えるなら、IFS関数への書き換えも検討してみてください。

IFS関数なら同じ処理をフラットに書けます。

=IFS(A2>=90,"S",A2>=75,"A",A2>=60,"B",TRUE,"C")

ネストの閉じカッコを数える必要がなくなり、可読性が上がります。ただしIFS関数はExcel 2019/Microsoft 365以降の対応です。古いバージョンを使っている方がいる環境では、IF関数のネストを使いましょう。

IF関数と他の関数を組み合わせるテクニック

IF関数とVLOOKUP関数の組み合わせ

VLOOKUP関数の結果をIF関数で判定するパターンです。VLOOKUPで検索した値が条件を満たすかチェックできます。

=IF(VLOOKUP(A2,商品マスタ!A:C,3,FALSE)>=1000,"高額","通常")

商品コードから価格を検索し、1000以上なら「高額」と表示します。

VLOOKUPは検索値が見つからないと #N/A エラーになります。エラーを回避したい場合は、IFERROR関数で囲みましょう。

=IFERROR(IF(VLOOKUP(A2,商品マスタ!A:C,3,FALSE)>=1000,"高額","通常"),"該当なし")

IF関数とSUMIF関数の組み合わせ

SUMIF関数の合計結果をIF関数で評価するパターンです。

=IF(SUMIF(B:B,E2,C:C)>=100000,"優良","一般")

特定の担当者の売上合計が10万円以上なら「優良」と判定します。月次レポートの顧客ランク付けなどで活躍します。

IF関数でよくあるエラーと対処法

IF関数でつまずきやすいエラーを3つ紹介します。

エラー主な原因対処法
#NAME?関数名のスペルミス、文字列の " 漏れ関数名と引用符を確認する
#VALUE!参照先セルにエラーがある参照元のエラーを解消する
FALSEが表示される値が偽の場合を省略している"" を指定して空白にする

特に3つ目は要注意です。エラーではないのに意図しない表示になるため、原因に気づきにくいです。

「FALSEが表示されて困る」という方は、数式の末尾を確認してみてください。=IF(B2>=70,"合格") のように3つ目の引数がない場合、=IF(B2>=70,"合格","") に修正すれば解決します。

また、文字列をダブルクォーテーションで囲み忘れるミスも多いです。=IF(B2=合格,...) ではなく =IF(B2="合格",...) と書きましょう。

TIP

エラー処理を自動化したい場合は、IFERROR関数IFNA関数の活用がおすすめです。IF関数で判定する前に、エラーを安全な値に置き換えておくと安心ですよ。

IF関数と似た関数との使い分け

IF関数のネストとIFS関数の比較

条件分岐が3つ以上あるとき、IFのネストとIFS関数のどちらを使うか迷いますよね。

比較項目IF関数(ネスト)IFS関数
対応バージョン全バージョンExcel 2019 / Microsoft 365 以降
最大条件数64段(ネスト)127条件
可読性3段超で低下条件が多くても読みやすい
else(それ以外)の書き方最後の値が偽の場合最後の条件にTRUEを指定

使い分けの目安はこうなります。

  • 条件が2つまで → IF関数
  • 条件が3つ以上 → IFS関数(環境が対応していれば)
  • 古いExcelとの互換性が必要 → IF関数のネスト

詳しくはIF・IFS・IFERROR・IFNAの使い分けの記事もあわせてご覧ください。

IF関数とSWITCH関数の使い分け

SWITCH関数は「値が○○のとき△△」という完全一致の分岐に向いています。

  • 大小比較(>=< など) → IF関数
  • 完全一致の分岐(値が「A」なら○○、「B」なら△△) → SWITCH関数

IF関数は条件式を自由に書けるため、柔軟性が高いです。一方、SWITCH関数は完全一致の分岐を見やすく書けます。場面に応じて使い分けてみてください。

なお、分岐する値が固定の場合はCHOOSE関数も選択肢のひとつです。

まとめ

IF関数は「条件に応じて結果を分岐させる」Excelの基本関数です。この記事のポイントをおさらいします。

  • 構文は =IF(論理式, 真の場合, 偽の場合) のシンプルな3引数
  • 偽の場合を省略するとFALSEが表示される。空白にしたいなら "" を指定する
  • 複数条件はAND関数OR関数と組み合わせる
  • ネストは3〜4段が実用上の限界。それ以上はIFS関数を検討する
  • VLOOKUPやSUMIFとの組み合わせで実務の自動化が広がる

まずは基本の形を覚えて、実務の表に組み込んでみてください。一度使い方がわかると、いろいろな場面で応用できますよ。

関連記事

条件分岐・条件付き処理の関連記事もあわせてチェックしてみてくださいね。

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