「70点以上なら合格、それ未満なら不合格」のように、条件によって表示する内容を変えたいときに使うのがIF関数です。結論から言うと、IF関数は=IF(論理式, 真の場合, 偽の場合)という3つの引数で構成され、論理式の結果がTRUEかFALSEかによって、返す値を出し分けます。この記事では基本の書き方と、複数条件・入れ子にする場合の考え方を解説します。
IF関数の基本構文
次のような点数表(A1:C5)を例に見ていきます。A列が氏名、B列が点数です。C列にIF関数で判定結果を出します。
| A(氏名) | B(点数) | C(判定) | |
|---|---|---|---|
| 2 | 佐藤 | 82 | |
| 3 | 鈴木 | 68 | |
| 4 | 田中 | 91 | |
| 5 | 山本 | 55 |
B列=点数、C列=IFで出す判定結果、という対応を踏まえてC2に次の数式を入れます。
=IF(B2>=70,"合格","不合格")
論理式B2>=70がTRUEなら「合格」、FALSEなら「不合格」を返します。佐藤(82)は70以上なので「合格」、鈴木(68)は70未満なので「不合格」、田中(91)は「合格」、山本(55)は「不合格」となり、実際に検算しても一致します。
IF関数で複数条件を判定する方法(AND・OR・入れ子)
「AかつB」「AまたはB」のように条件が2つ以上になる場合は、論理式の部分をAND関数・OR関数に置き換えます。たとえばB列(点数)が70以上90未満かどうかを判定するには、次のように書きます。
=IF(AND(B2>=70,B2<90),"合格(標準)","それ以外")
上の表で検算すると、70以上90未満を満たすのは佐藤(82)だけなので「合格(標準)」、鈴木(68)・田中(91)・山本(55)は「それ以外」になります。
また、3段階以上に分岐させたい場合はIFを入れ子にすることもできますが、条件が3つを超えるとカッコの対応が読みにくくなりがちです。その場合は入れ子にせず一度に複数条件を書けるIFS関数で複数条件分岐をすっきり書く方法を使うほうが見通しがよくなります。
IF関数のよくある注意点
- “合格”のような文字列は必ずダブルクォーテーションで囲む: 数値ではなく文字列を返す場合、囲み忘れると#NAME?エラーの原因になります(詳しくは#NAME?エラーが出たときの確認ポイント参照)。
- 論理式の比較演算子を間違えない: 「以上」は
>=、「より大きい」は>です。境界の値(この例では70点ちょうど)をどちらに含めたいか事前に決めておきましょう。 - 真の場合・偽の場合を省略すると意図しない結果になる: 3番目の引数(偽の場合)を省略するとFALSEが返るため、空欄にしたいときは
""を明示的に指定します。
IF関数が登場する記事
IF関数は単体の記事だけでなく、他の関数のエラー処理や条件分岐の中でもたびたび登場します。あわせて読むと理解が深まります。
- 期間(開始日・終了日)が重複しているかどうかを判定する方法
- #NUM!エラーの原因と対処法
- #DIV/0!エラーを回避する方法
- #NAME?エラーが出たときの確認ポイント
- TEXTJOINで複数セルの文字列を条件付きで結合する方法
- MEDIAN関数で0を無視して計算する方法
- サイトの人気記事であるエクセル関数で条件付きで中央値(MEDIAN)を計算する方法でも、配列内の条件判定にIFの考え方が使われています。
IF関数の使い方まとめ
IF関数は=IF(論理式, 真の場合, 偽の場合)の3引数で条件分岐を行う、Excelでもっとも使用頻度の高い関数のひとつです。条件が2つ以上になる場合はAND・ORと組み合わせ、3条件を超えて分岐が複雑になる場合はIFS関数への切り替えを検討しましょう。





