IF関数の使い方

確認環境:Microsoft 365(Windows)最終確認日:2026-08-19練習問題 3 問つき
最短回答

=IF(条件, 条件に合うとき, 合わないとき) と書きます。 文字を返すときは "高" のようにダブルクォートで囲みます

書式

=IF(論理式, 真の場合, 偽の場合)
1条件を判定する
2 真合っていればこちらを返す
3 偽合っていなければこちらを返す

引数の意味

引数意味指定の例つまずきやすい点
論理式判定する条件B2>=100ここはクォートで囲まない
真の場合条件に合うときに返す値"高"文字はクォートで囲む
偽の場合合わないときに返す値"安"省略すると FALSE が表示される

最小の例

=IF(B2>=100, "高", "安")
行番号ABCD
1商品単価数量判定
2りんご1203
3みかん8010
4ぶどう4002
B列の単価を見て、D列に判定を出しています。

条件の書き方

判定したいこと条件の書き方
100 以上B2>=100
100 より大きいB2>100
「売上」と一致C2="売上"
「売上」以外C2<>"売上"
空欄C2=""
AかつBAND(B2>=100,C2="売上")
AまたはBOR(B2>=100,C2="売上")

使うときの手順

  1. 結果を表示したいセルを選び、= に続けて IF( と入力します。
  2. 判定したいセルをクリックし、>=100 のように条件を続けて書きます。ここはクォートで囲みません。
  3. , を入力し、条件に合うときに表示したい値を書きます。 文字なら "高" のようにクォートで囲みます。
  4. , を入力し、合わないときの値を書きます。ここを省略すると FALSE と表示されます。
  5. ) で閉じて Enter を押します。

条件が3つ以上のとき

IF の「偽の場合」に、さらに IF を入れます。これを入れ子と呼びます。

=IF(B2>=300,"A",IF(B2>=100,"B","C"))
大きいほうから順に書く

300以上 → 100以上 → それ以外 の順です。 逆に 100以上 を先に書くと、400 も「B」になってしまいます。 最初に合った条件で判定が終わるためです。

Microsoft 365 と Excel 2019 以降なら IFS が使えます。入れ子より読みやすくなります。

=IFS(B2>=300,"A",B2>=100,"B",TRUE,"C")

最後の TRUE は「どれにも当てはまらない場合」を表します。 これを省くと該当なしのとき #N/A になります。

空欄のときに何も表示しない

数量が未入力の行に 0 が並ぶと、表が読みにくくなります。

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

""空の文字列で、 見た目には何も表示されません。

見た目は空でも、空欄ではない

"" を返したセルは「空の文字列が入っている」状態で、 本当の空欄ではありません。COUNTA では数えられ、COUNTBLANK でも数えられる、という紛らわしい振る舞いをします。 集計が合わないときは、ここを疑ってください。

やってみる

条件式の書き方と、入れ子の順序が要点です。実際に入力して確かめます。

この操作は、下の練習で実際に試せます。
この操作は、下の練習で実際に試せます。
この操作は、下の練習で実際に試せます。

よくある失敗

  • FALSE と表示される

    第3引数(偽の場合)を省略しています。=IF(B2>=100,"高") ではなく、=IF(B2>=100,"高","安") と書きます。

  • #NAME? になる

    文字をクォートで囲んでいません。=IF(B2>=100,高,安) は名前として解釈されます。"高" と囲みます。

  • 入れ子にしたら思った結果にならない

    条件の順序が逆です。範囲の狭いほう(大きい値)から 書きます。最初に合った条件で判定が終わるためです。

  • 空欄なのに 0 が表示される

    =IF(C2="","",B2*C2) のように、空欄のときは空の文字列を返すようにします。

  • IF の中で条件をクォートで囲んでしまう

    =IF("B2>=100",...) は文字列そのものになり、判定になりません。条件はクォートで囲まないのが IF の特徴です。 COUNTIF や SUMIF とは逆なので混同しやすいところです。

仕事ならどれを使う?

やりたいこと使うもの備考
2択で表示を変えるIF基本形
3〜4択IF の入れ子 / IFSIFS は Excel 2019 以降
5択以上・対応表があるVLOOKUP / XLOOKUPIF を重ねずに済む
エラーのときだけ変えるIFERRORIF より短く書ける

IF を4つ以上重ねたら、対応表を作って XLOOKUP に置き換えてください。入れ子が深い数式は、書いた本人でも半年後には読めません。 区分と表示を並べた小さな表を作り、そこから引くほうが、 あとから条件を追加するのも簡単です。

Googleスプレッドシートの場合

Googleスプレッドシートでも IF / IFS / IFERROR は同じ書式で使えます。

次に読むもの