IF関数の使い方
=IF(条件, 条件に合うとき, 合わないとき) と書きます。 文字を返すときは "高" のようにダブルクォートで囲みます。
書式
=IF(論理式, 真の場合, 偽の場合)引数の意味
| 引数 | 意味 | 指定の例 | つまずきやすい点 |
|---|---|---|---|
| 論理式 | 判定する条件 | B2>=100 | ここはクォートで囲まない |
| 真の場合 | 条件に合うときに返す値 | "高" | 文字はクォートで囲む |
| 偽の場合 | 合わないときに返す値 | "安" | 省略すると FALSE が表示される |
最小の例
=IF(B2>=100, "高", "安")| 行番号 | A | B | C | D |
|---|---|---|---|---|
| 1 | 商品 | 単価 | 数量 | 判定 |
| 2 | りんご | 120 | 3 | 高 |
| 3 | みかん | 80 | 10 | 安 |
| 4 | ぶどう | 400 | 2 | 高 |
条件の書き方
| 判定したいこと | 条件の書き方 |
|---|---|
| 100 以上 | B2>=100 |
| 100 より大きい | B2>100 |
| 「売上」と一致 | C2="売上" |
| 「売上」以外 | C2<>"売上" |
| 空欄 | C2="" |
| AかつB | AND(B2>=100,C2="売上") |
| AまたはB | OR(B2>=100,C2="売上") |
使うときの手順
- 結果を表示したいセルを選び、= に続けて
IF(と入力します。 - 判定したいセルをクリックし、
>=100のように条件を続けて書きます。ここはクォートで囲みません。 - , を入力し、条件に合うときに表示したい値を書きます。 文字なら
"高"のようにクォートで囲みます。 - , を入力し、合わないときの値を書きます。ここを省略すると FALSE と表示されます。
- ) で閉じて 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 の入れ子 / IFS | IFS は Excel 2019 以降 |
| 5択以上・対応表がある | VLOOKUP / XLOOKUP | IF を重ねずに済む |
| エラーのときだけ変える | IFERROR | IF より短く書ける |
IF を4つ以上重ねたら、対応表を作って XLOOKUP に置き換えてください。入れ子が深い数式は、書いた本人でも半年後には読めません。 区分と表示を並べた小さな表を作り、そこから引くほうが、 あとから条件を追加するのも簡単です。
Googleスプレッドシートの場合
Googleスプレッドシートでも IF / IFS / IFERROR は同じ書式で使えます。