ExcelのIF関数で複数条件を使いこなす完全ガイド|入門から応用まで徹底解説



目次

IF関数の基本と仕組みを理解する

IF関数の基本構文

ExcelのIF関数は「条件分岐」を作るための代表的な関数です。基本的な構文は次のようになります。

=IF(論理式, 真の場合, 偽の場合)
  • 論理式:判定したい条件を記述します。例:A1>=60
  • 真の場合:条件を満たしたときに返す値や処理を指定します
  • 偽の場合:条件を満たさなかったときに返す値や処理を指定します

たとえば、セルA1の点数が60点以上なら「合格」、それ以外なら「不合格」と表示したい場合は次のように書きます。

=IF(A1>=60,"合格","不合格")

このように、数値や文字列を自動で切り替える仕組みを作れるのがIF関数の大きな特徴です。

比較演算子の役割

IF関数の「論理式」部分には比較演算子を使って条件を指定します。よく使うものは以下の6種類です。

  • =:等しい
  • <>:等しくない
  • >:より大きい
  • <:より小さい
  • >=:以上
  • <=:以下

たとえば「売上が目標の100万円以上かどうか」を判定するなら B1>=1000000 という式を設定します。これにより、数値を基準に達成・未達成などを簡単に判定できます。

数値と文字列の扱いの違い

IF関数では、条件判定に「数値」も「文字列」も使えます。ただし記述のルールが異なります。

  • 数値:そのまま入力
    例:=IF(A1>=80,"高評価","再評価")
  • 文字列:ダブルクオーテーションで囲む
    例:=IF(B1="男性","Yes","No")

文字列の条件判定をするときに " " を忘れると、正しく判定されずエラーが出ることがあります。これが初心者がつまずきやすいポイントのひとつです。

セル参照を活用する

固定値ではなく、別セルを参照する形で条件式を作ると柔軟性が高まります。例えば、C1セルに「合格点=60」と入力しておき、次のように書くと便利です。

=IF(A1>=C1,"合格","不合格")

基準値をセルで管理できるため、C1を修正すれば条件式を変更する必要がなく、メンテナンス性が向上します。

IF関数は「条件を満たしたときと満たさないときの結果を自動で切り替える」ための基本ツールなんです。比較演算子のルールや文字列の扱い方をきちんと押さえておけば、複雑な条件設定にもスムーズに応用できますよ

複数条件を設定するための基本パターン

IF関数は1つの条件だけでなく、条件を追加することで複雑な判定も可能になります。実務でよく使われる基本的なパターンを整理して解説します。

ネスト(入れ子)を使った複数条件の判定

IF関数を繰り返し組み込むことで、条件を段階的に分岐させることができます。これを「ネスト」と呼びます。

例:「80点以上なら合格、60点以上なら再試験、それ以外は不合格」

=IF(C2>=80,"合格",IF(C2>=60,"再試験","不合格"))

この式では、まずC2が80点以上かを判定し、満たさない場合は次のIFに進みます。次に60点以上かどうかを判定し、それも満たさなければ「不合格」と表示されます。

ネストを使う際の注意点

  • 条件が増えると式が長くなり、読みづらくなります
  • 括弧の数が増えるため、入力ミスが発生しやすいです
  • 将来的に条件を変更するときに修正作業が複雑になりがちです

数値以外の条件指定

文字列を条件にする場合はダブルクオーテーションで囲む必要があります。

例:「こどもは500円、学生は800円、大人は1200円」

=IF(C2="こども",500,IF(C2="学生",800,IF(C2="大人",1200,"エラー")))

このようにネストを重ねれば複数の分岐を作成できますが、条件が多い場合はIFS関数やVLOOKUP関数を検討した方が効率的です。

読みやすさを保つ工夫

  • 条件ごとに改行して入力する(Alt+Enterで改行可能)
  • セル参照を活用し、数式の中に直接数値や文字列を書かない
  • 可能であれば条件を別表にまとめ、参照する方式にする

複数条件のIFは便利ですが、ネストを増やしすぎると必ず混乱します。最初は2〜3条件で練習し、慣れてきたらIFSやVLOOKUPなど他の方法も試してみると、ぐっと効率が上がりますよ

AND関数とOR関数を組み合わせる方法

AND関数で「すべての条件を満たす場合」を判定する

AND関数は、複数の条件がすべて「真(TRUE)」であるかどうかを判定します。IF関数と組み合わせることで、「条件をすべて満たしたら〇〇」といった判断が可能になります。

例:売上が300万円以上かつ契約件数が10件以上なら「達成」、それ以外は「未達成」と表示する場合

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

B2の売上が3,000,000円以上、かつC2の契約件数が10件以上であれば「達成」と表示されます。いずれかが満たされない場合は「未達成」になります。

OR関数で「いずれかの条件を満たす場合」を判定する

OR関数は、複数の条件のうち1つでも「真(TRUE)」であれば全体を「真」として判定します。条件が一部でも当てはまれば処理を実行したいときに有効です。

例:売上が300万円以上または契約件数が10件以上なら「目標一部達成」、どちらも満たさなければ「未達成」と表示する場合

=IF(OR(B2>=3000000, C2>=10), "目標一部達成", "未達成")

どちらかの条件を満たせば「目標一部達成」となり、両方満たさなかった場合のみ「未達成」と表示されます。

ANDとORを組み合わせて複雑な条件を整理する

業務では「両方の条件を満たす場合」や「いずれか一方を満たす場合」などを組み合わせて使う場面が多くあります。その場合、ANDとORを入れ子にして条件を柔軟に設定できます。

例:売上が300万円以上かつ契約件数が10件以上、または売上が500万円以上なら「達成」、それ以外は「未達成」と表示する場合

=IF(OR(AND(B2>=3000000, C2>=10), B2>=5000000), "達成", "未達成")

この式では「条件をすべて満たす場合」か「売上だけが特別に高い場合」のどちらかで「達成」と判定されます。

複雑な数式を読みやすくする工夫

  • 条件が増える場合はセル参照を使い、しきい値を別セルにまとめる
  • 括弧の入れ子が増える場合はインデントをつけて整理すると理解しやすくなる
  • 数式が長くなるときはIFS関数やVLOOKUP関数など、他の関数を検討する

ANDとORを組み合わせれば、IF関数の応用範囲が一気に広がります。大事なのは「すべて満たすのか」「どれか1つでいいのか」を明確に考えて式を組み立てることです。慣れてくると条件を整理してシンプルに書けるようになりますよ

IFS関数で複数条件を効率的に処理する

IFS関数の構文と基本の書き方

IFS関数は、Excel 2019以降で利用できる新しい関数です。構文は次のようになります。

=IFS(論理式1, 真の場合1, 論理式2, 真の場合2, …)

この書き方により、条件と結果をセットで順番に並べるだけで複数の条件分岐を表現できます。ネストしたIF関数のように「カッコの数を数える」必要がなく、可読性が大きく向上します。

IF関数との違いとメリット

従来のIF関数で3つ以上の条件を組み合わせると、次のように複雑になります。

=IF(C2>=80,"合格",IF(C2>=60,"再試験","不合格"))

同じ条件をIFS関数で書くと次のようにシンプルになります。

=IFS(C2>=80,"合格", C2>=60,"再試験", C2<60,"不合格")

条件と結果がペアで並ぶため、後から見ても修正が容易で、メンテナンス性が高いのが特徴です。

実務での利用例

例1:評価ランクの自動判定

社員のスコアをもとにA~Cのランクを判定する場合

=IFS(C2>=90,"Aランク", C2>=75,"Bランク", C2>=60,"Cランク", C2<60,"不合格")

例2:属性ごとの料金設定

入場料を年齢区分やステータスで分ける場合

=IFS(C2="こども",500, C2="学生",800, C2="大人",1200, TRUE,"未定義")

最後にTRUEを使うことで、どの条件にも当てはまらない場合の「デフォルト値」を設定できます。

注意点と制約

  • Excelのバージョン制約:IFS関数はExcel 2019以降またはMicrosoft 365で利用可能です。旧バージョンではエラーになるため注意してください。
  • 条件の順序が重要:上から順番に評価され、最初に真と判定された条件で処理が終了します。重複条件があると意図しない結果になることがあります。
  • 分岐の多さに注意:最大128条件まで指定可能ですが、条件が多すぎると処理が重くなるため、別表を参照するVLOOKUPやXLOOKUPの方が効率的な場合もあります。

IFS関数は、複雑なネストIFを一気に読みやすく整理できる便利な関数です。ただし条件の順番やExcelのバージョン制約を理解して使うことが大切ですよ

VLOOKUPやSWITCH関数との使い分け

VLOOKUP関数が適しているケース

IF関数で条件をいくつも重ねてしまうと数式が複雑になり、後から修正や確認をするのが難しくなります。特に「料金表」や「区分表」のように、条件と結果の対応が表形式で整理できる場合はVLOOKUP関数を使う方が実用的です。

例えば「会員区分に応じて割引率を変える」ケースを考えます。

  • ゴールド会員 → 20%
  • シルバー会員 → 10%
  • 一般会員 → 0%

これをIF関数で書くと入れ子が増えて読みにくくなりますが、別表に会員区分と割引率をまとめておき、=VLOOKUP(会員種別, 参照範囲, 2, FALSE) とすれば簡潔に管理できます。条件が増えても表に行を追加するだけで済むため、保守性も高まります。

SWITCH関数が適しているケース

SWITCH関数は、特定の値に応じて複数の結果を返す処理をシンプルに書きたいときに便利です。Excel 2019以降で利用でき、構文は以下の通りです。

=SWITCH(式, 値1, 結果1, 値2, 結果2, …, [既定値])

例えば「部署コードによって部署名を返す」場合、

  • 1 → 営業部
  • 2 → 総務部
  • 3 → 開発部

このようなケースはSWITCH関数を使えば、
=SWITCH(A2, 1, "営業部", 2, "総務部", 3, "開発部", "不明")
と書けます。ネストしたIF関数よりも直感的で、分岐が数値や文字列の一致条件に限られる場合に向いています。

使い分けの基準

  • 条件が「範囲指定」で決まる場合(80点以上で合格など) → IF関数やIFS関数
  • 条件が「表にまとまるデータ」に基づく場合(料金表、区分表) → VLOOKUP関数
  • 条件が「特定の値に応じて固定の結果を返す場合」(コードやラベルの対応付け) → SWITCH関数

数式をどの関数で書くかを選ぶときは、可読性やメンテナンス性を重視することが重要です。複雑なIF関数を避けるだけで、後から見直したときの作業効率が大きく変わります。

条件分岐は「どの関数でもできる」けれど、目的やデータ構造に合わせて最適な関数を選ぶのが大切なんです。VLOOKUPは表参照、SWITCHは値の置き換え、IFは範囲条件と覚えておけば実務で迷いにくくなりますよ

実務で役立つ複数条件IF関数のサンプル集

社員の評価ランクを自動判定する

社員の評価を数値で入力している場合、IF関数で自動的にランクを割り当てることができます。例えば「80点以上はA」「70点以上はB」「60点以上はC」「それ未満はD」としたいときは以下のように書きます。

=IF(C2>=80,"A",IF(C2>=70,"B",IF(C2>=60,"C","D")))

このようにネストを使うことで、段階的に条件を判定していきます。IFS関数を利用できる場合は、より読みやすく表現できます。

在庫数と注文数からアラートを出す

在庫管理では「注文数が在庫を上回る場合に警告を出す」ような処理がよく求められます。次の式は、注文数が在庫数より多ければ「在庫不足」と表示し、それ以外は「処理可能」と表示します。

=IF(B2<C2,"在庫不足","処理可能")

さらに安全策として、在庫数が一定数未満になった場合も注意表示したい場合は、AND関数を組み合わせると便利です。

=IF(AND(B2<C2,B2<10),"要確認","OK")

日付条件を組み合わせて締切管理

業務では「期限を過ぎたタスク」を自動で色分けや表示することがあります。例えば、D列に締切日、今日の日付を TODAY() で取得し、「期限切れ」「期限間近」「進行中」を判定する場合は以下のようにします。

=IF(D2<TODAY(),"期限切れ",IF(D2-TODAY()<=3,"期限間近","進行中"))

この式は、締切日が過ぎていれば「期限切れ」、あと3日以内なら「期限間近」、それ以外は「進行中」と表示します。プロジェクト管理やタスク管理でよく使えるパターンです。

複数条件を組み合わせた営業実績判定

営業活動では「売上が目標達成かつ契約数も一定以上」であれば「優秀」といった条件判定をすることがあります。例えば売上が300万以上、契約数が10件以上で「優秀」、そうでなければ「要改善」と表示する式は以下の通りです。

=IF(AND(B2>=3000000,C2>=10),"優秀","要改善")

このようにAND関数を使うと、2つ以上の条件を満たした場合にのみ「真」と判定できます。

複数条件のIF関数は、業務ごとに柔軟に応用できるのが強みです。評価判定、在庫管理、期限チェックなど、実務でよく出るパターンをテンプレート化しておくと効率が上がります。条件が多すぎて読みにくくなるときは、IFS関数やVLOOKUPを取り入れて見やすさを意識してくださいね

複雑なIF関数を避けるための工夫

IF関数は便利ですが、条件が増えるにつれて数式が長くなり、後から修正や確認をするときに分かりにくくなります。業務で共有するファイルでは特に、誰が見ても理解できるように工夫することが大切です。ここでは、複雑なIF関数を避けるための実用的な方法を紹介します。

セル参照や別表を活用する

条件式の中に直接値を書き込むのではなく、基準値や判定条件を別のセルや表にまとめておく方法です。例えば「80点以上なら合格」という条件を「基準点=80」とセルに置き、そのセルを参照するようにすれば、基準を変えたいときに数式を編集する必要がなくなります。別表に区分をまとめてVLOOKUPやXLOOKUPで参照させると、IF関数をネストするよりもスッキリ整理できます。

SWITCH関数やIFS関数を適切に使う

Excel 2019以降ではSWITCH関数やIFS関数を使うことで、ネストしたIF関数よりも見やすい数式にできます。条件の数が多い場合や、選択肢が固定されている場合に特に有効です。複数のIFを重ねると「括弧の位置が分からない」といった問題が起こりやすいため、対応可能な場面では置き換えを検討しましょう。

コメントや色分けで可読性を上げる

関数を分かりやすく保つには、セルや数式にコメントを残したり、条件ごとに色を付けておくのも効果的です。Excelの「名前の定義」機能を利用して「合格点」「下限値」などと名前を付ければ、数式の意味が一目で分かりやすくなります。

メンテナンス性を意識したリファクタリング

業務で使うExcelファイルは、作成者以外が触ることも多いため、式を単純化して管理しやすくすることが大切です。例えば「1つの長いIF式」を「複数の補助列に分ける」ことで、ロジックを段階的に確認できるようになります。多少列数は増えますが、可読性と保守性が向上します。

複雑なIF関数をそのまま使い続けると後で自分も困りますから、別表参照や新しい関数を活用してスッキリさせるのが賢いやり方ですよ

エラーを防ぐための便利な組み合わせ関数

IF関数は柔軟な条件分岐ができる一方で、入力値や参照セルの状況によってはエラーが発生しやすいという弱点があります。実務で使う際には、見栄えや信頼性を保つためにエラー対策を組み込むことが重要です。ここでは、エラーを防ぎながら安心して利用できる便利な関数の組み合わせを紹介します。

IFERROR関数で不要なエラー表示を回避する

Excelでは、参照セルが空白や文字列を含む場合、割り算や検索関数で「#N/A」「#VALUE!」といったエラーが返ってくることがあります。これを回避するには、IFERROR関数を組み合わせます。

例:売上 ÷ 目標 を計算する際にエラーを「–」と表示したい場合

=IFERROR(B2/C2, "-")

このように書けば、計算が正常なときは結果が表示され、エラー時には「–」が表示されます。表の見やすさやデータ共有時の信頼性が高まります。

ISNUMBERやISTEXTで入力の種類を判定する

IF関数と組み合わせることで、値が数値か文字列かを判定できます。これにより、不適切なデータ入力を事前に処理できるようになります。

例:セルが数値なら計算、文字列なら「入力エラー」と表示

=IF(ISNUMBER(A2), A2*1.1, "入力エラー")

例:セルが文字列なら処理、そうでなければ空欄

=IF(ISTEXT(A2), "文字データです", "")

ISBLANKで空白セルを除外する

空白セルがあると意図せずエラーが出る場合があります。その場合には ISBLANK を組み合わせると便利です。

例:空白セルは処理せず、値が入っていれば計算する

=IF(ISBLANK(A2), "", A2*10)

実務で強い「安全なIF関数」の書き方のコツ

  • 必ずIFERRORで外側をカバーする
    → 不測の事態に備え、最終的にエラーを抑える仕組みを組み込む
  • 入力の型を判定する関数(ISNUMBER、ISTEXT)を活用
    → データの種類を見極めて処理を分岐できる
  • 空白処理を先に行う
    → 無駄なエラーや不要な計算を回避できる

エラーを防ぐには「エラーが出る前に条件で処理しておく」ことがポイントです。実務ではIFERRORで最終的に守りを固め、IS関数で型や空白を事前チェックするのが鉄板ですよ