IF関数の使い方|条件式の書き方と複数条件・空欄判定のつまずき

IF関数は、条件を満たすときの値と、満たさないときの値を分けて返す関数です。引数は3つだけ。つまずきの多くは「文字列を " で囲んでいない」「条件を書く順番が逆」「空欄の判定方法を取り違えている」の3つに集まります。

この記事でわかること

  • IF関数の3つの引数と比較演算子の書き方
  • AND関数・OR関数を使った複数条件の組み立て
  • 入れ子(ネスト)で3段階以上に分けるときの順番の決め方
  • 空欄・エラー・部分一致の判定方法
  • 思った結果にならないときに見る5か所


目次

IF関数の構文と引数

構文

=IF(論理式, 真の場合, 偽の場合)
引数指定するもの注意点
論理式成立・不成立を判定する式結果が TRUE か FALSE になる形で書く
真の場合条件を満たしたときに返す値文字列は " で囲む。数値は囲まない
偽の場合満たさなかったときに返す値省略すると FALSE と表示される

第3引数を省いた式は、条件を満たさない行に FALSE が並びます。何も表示したくないなら ""(空文字列)を明示します。

比較演算子の一覧

記号意味書き方の例
=等しいA2="東京"
<>等しくないA2<>"東京"
>より大きいB2>100
<より小さいB2<100
>=以上B2>=100
<=以下B2<=100

「以上」は >= で、不等号が先・等号が後です。=> と書くとエラーになります。記号はすべて半角で入力します。

IF関数の使い方|条件式の書き方と複数条件・空欄判定のつまずきの解説図1

基本の使い方

点数がB列に入っていて、80点以上を「合格」と表示する例です。

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

文字列は必ず " で囲みます。囲み忘れると #NAME? になります。

数値を返したい場合は囲みません。

=IF(B2>=80, 1000, 0)

"1000" と囲むと文字列になり、合計に含まれなくなります。後で集計する値には引用符を付けないのが原則です。

セルの値をそのまま返す

固定の文字列だけでなく、別のセルや計算式も返せます。

=IF(B2>=10000, C2*0.9, C2)

1万円以上のときだけ1割引、それ以外は定価という形です。

日付を条件にする

日付を直接 "2026/4/1" と書くと文字列として比較され、意図しない結果になります。DATE関数か、日付が入ったセルの参照を使います。

=IF(A2>=DATE(2026,4,1), "新年度", "前年度")

実務でよく使う4パターン

① 複数条件を「かつ」「または」でつなぐ

条件を2つ以上組み合わせるときは、AND関数とOR関数を論理式の位置に入れます。

=IF(AND(B2>=80, C2>=80), "合格", "不合格")
=IF(OR(B2>=90, C2>=90), "特待", "")

ANDはすべて満たしたとき、ORはどれか1つでも満たしたときにTRUEになります。条件は3つ以上並べられます。

IF関数の使い方|条件式の書き方と複数条件・空欄判定のつまずきの解説図2

② 3段階以上に分ける(入れ子)

「偽の場合」の位置に、もう1つIF関数を入れます。

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

判定は上から順に行われ、最初に成立した条件で確定します。そのため大きいほうから順に並べる(または小さいほうから一貫して並べる)のが必須です。

=IF(B2>=60,"B",IF(B2>=80,"A","C")) と順番を逆にすると、85点でも先に「60以上」が成立して「B」になります。エラーは出ず、静かに間違うのがこの失敗の厄介な点です。

入れ子は64レベルまで書けますが、3段を超えると読みづらくなります。

③ IFS関数で並べて書く(2019以降)

段階が多い場合は、IFS関数のほうが読めます。

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

条件と値を交互に並べ、最後の TRUE が「それ以外すべて」を受け止めます。この TRUE を書き忘れると、どれにも当てはまらない行が #N/A になります。

IFS関数はExcel 2019以降です。2016までの環境ではIFの入れ子を使います。

④ 空欄のときだけ何もしない

未入力の行に判定結果が並ぶのを防ぐ形です。

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

先に空欄を除外してから本来の判定に進みます。

⚠️ ="" と ISBLANK関数は同じではありません。他の数式が "" を返しているセルは、見た目は空でもISBLANKでは FALSE と判定されます。数式の結果を含む列を判定するなら A2="" のほうが実態に合います。

IF関数の使い方|条件式の書き方と複数条件・空欄判定のつまずきの解説図3

うまくいかないときの原因と直し方

症状原因直し方
#NAME?文字列を " で囲んでいない/関数名の綴り違い文字列を " で囲む。IF の綴りと全角を確認
FALSE と表示される第3引数(偽の場合)を省略した"" を明示する
すべて同じ結果になる参照が絶対参照で固定されている$B$2 を B2 に直す
数値なのに一致しない数値が文字列として入っている元データを数値に直す。左寄せなら文字列
合計に含まれない返り値を "1000" と囲んでいる引用符を外して数値で返す
段階判定がおかしい条件の順番が逆大きいほうから順に並べ直す
#VALUE!文字列と数値を計算しようとしている参照先の型を確認する
条件式に全角記号> = が全角すべて半角で入力し直す

「見た目は同じなのに一致しない」の切り分け

=IF(A2="東京","○","") が空欄のままになるときは、次の順に確認します。

  1. 前後に余分な空白がある — =TRIM(A2) で確認し、置換で除去する
  2. 全角と半角が混ざっている — =ASC(A2) で半角に寄せて比較する
  3. 数値と文字列が混ざっている — 数値は右寄せ、文字列は左寄せで見分ける
  4. 末尾に改行が入っている — 外部システムからの取り込みで起きやすい

部分一致で判定する

IF関数の論理式に * などのワイルドカードは使えません。「〇〇を含む」を判定するなら、COUNTIF関数を組み合わせます。

=IF(COUNTIF(A2,"*東京*")>0, "該当", "")

COUNTIFの範囲に1つのセルを指定し、その中でワイルドカードを使う書き方です。

IF関数の使い方|条件式の書き方と複数条件・空欄判定のつまずきの解説図4

似た関数との使い分け

関数対応バージョン選ぶ場面
IF2016〜条件が1つ、または2〜3段階の分岐
IFS2019〜4段階以上を横並びで書きたい
IFERROR2016〜エラーのときだけ別の値にしたい
SWITCH2019〜1つの値を複数の候補と照合する
VLOOKUP(近似一致)2016〜段階が多く、区分表を別に持ちたい

段階が10を超えるようなら、IFを積むより区分表を作ってVLOOKUPで引くほうが保守しやすくなります。基準が変わったときに、数式ではなく表を直せば済むためです。

集計が目的ならIFではない

「条件に合う行だけ合計・カウントしたい」場合、IF関数で判定列を作る必要はありません。SUMIF関数・COUNTIF関数が1つの式で済ませます。

=SUMIF($A$2:$A$100, "東京", $C$2:$C$100)

作業列を作らないぶん、シートも軽くなります。

色を変えるのはIFの担当ではない

IF関数はセルの値しか返せません。条件によって色を変えたいなら条件付き書式を使います。値の判定と見た目の判定は別の機能に分かれています。


よくある質問

Q1:IF関数で何もしない(元の値を残す)ことはできますか?

できません。数式を入れたセルは常に数式の結果になります。「条件を満たさないときは手入力の値を残す」という動作は、IF関数では実現できません。入力欄と判定欄を別の列に分ける設計にしてください。

Q2:"" と 0 はどちらを返すべきですか?

後で合計や平均を取るなら 0、表として見せるだけなら "" が扱いやすくなります。"" は文字列なので、AVERAGE関数の分母には含まれません。逆に 0 を返すとグラフに0の点が描かれます。用途で決める項目です。

Q3:条件が「空欄でない」の場合はどう書きますか?

=IF(A2<>"", "入力済", "未入力") と書きます。<> は「等しくない」を表す演算子です。

Q4:エラーのときだけ空欄にしたいのですが。

IF関数ではなくIFERROR関数の担当です。=IFERROR(元の数式, "") の形で包みます。ただし本当に確認すべきエラーまで隠れるため、データの整備が済むまでは包まないほうが安全です。

Q5:IF関数の中で別のシートを参照できますか?

できます。=IF(マスタ!B2>=80,"合格","不合格") のように、シート名と ! を付けて参照します。シート名にスペースや記号が含まれる場合は、'シート 名'!B2 のようにシングルクォートで囲みます。


まとめ

IF関数の要点
  • 引数は論理式・真の場合・偽の場合の3つ。第3引数を省くと FALSE が出る
  • 文字列は " で囲む。集計する数値は囲まない
  • 入れ子は大きいほうから順。逆順はエラーが出ずに静かに間違う
  • 4段階以上ならIFS(2019以降)、10段階を超えるなら区分表+VLOOKUP
  • 集計が目的ならSUMIF・COUNTIF、色分けなら条件付き書式が担当

※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。お使いの環境や更新プログラムの適用状況により、利用できる関数や表示が異なる場合があります。

あわせて読みたい

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、白石です。製造業の生産管理で15年、毎日の実績集計と帳票づくりをExcelでやってきました。マクロを組もうとして早々に挫折し、そこからは「関数と表の機能だけでどこまでやれるか」でしのいできた口です。部門では「この集計どうやるの」と聞かれる係になり、聞かれた内容を手元にメモし続けました。そのメモがいつのまにか、関数名ではなくやりたいことから引く形になっていて、それがこのサイトのもとになっています。Excelは同じことをやるのに何通りもやり方があって、しかもバージョンによって使える関数が違います。ここでは実際に動かして確かめた式だけを載せ、つまずきやすいところと使えないバージョンを先に書くようにしています。

目次