IF関数の使い方|条件によって表示を変える基本の関数

執筆者:

カテゴリ:

IFは、条件を満たすかどうかで表示を変える関数です。「80点以上なら合格、そうでなければ不合格」といった判定に使います。

条件分岐のすべての出発点になる関数です。

書式

=IF(条件, 真の場合, 偽の場合)
引数 内容
条件 判定する式。結果が TRUEFALSE になるもの
真の場合 条件を満たしたときに返す値
偽の場合 満たさなかったときに返す値。省略すると FALSE が表示される

3つ目の引数は省略しないでください。 省略すると条件を満たさないセルに FALSE という文字が並びます。何も表示したくないなら "" を指定します。

基本の使い方

A2に点数が入っているとします。

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

A2が90なら「合格」、70なら「不合格」が返ります。

文字列を返すときはダブルクォートで囲む必要があります。数値や数式ならクォートは不要です。

=IF(A2 >= 80, A2 * 1.1, A2)

条件に使える比較演算子

演算子 意味
= 等しい A2 = "東京"
<> 等しくない A2 <> ""
> より大きい A2 > 100
>= 以上 A2 >= 100
< 未満 A2 < 100
<= 以下 A2 <= 100

「以上」と「より大きい」の取り違えは実務で頻発します。境界の値をテストデータに必ず入れて確認してください。 80点ちょうどが合格になるか、を実際に見るのが確実です。

複数の条件を組み合わせる

かつ(すべて満たす)

AND を使います。

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

または(どれかを満たす)

OR を使います。

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

否定

NOT で反転できますが、<> を使うほうが読みやすいことが多いです。

=IF(A2 <> "東京", "地方", "首都圏")

3段階以上に分ける(ネスト)

IFの中にIFを入れると、段階を増やせます。

=IF(A2 >= 90, "A", IF(A2 >= 80, "B", IF(A2 >= 70, "C", "D")))

上から順に判定され、最初に当てはまったところで止まります。 そのため、条件は厳しい順(大きい順)に並べる必要があります。逆順にすると全部が最初の条件に吸い込まれます。

ただし、3段階を超えたら IFS に切り替えるほうが読みやすくなります。

=IFS(A2 >= 90, "A", A2 >= 80, "B", A2 >= 70, "C", TRUE, "D")

括弧の対応を数えなくて済むぶん、後から直すのが格段に楽です。

空白の判定でつまずくところ

「空欄なら何も表示しない」はよく使う書き方です。

=IF(A2 = "", "", A2 * 1.1)

ここで注意したいのが、数式で "" を返したセルは「空白」ではないという点です。見た目は空欄ですが、COUNTA では1件として数えられ、ISBLANKFALSE を返します。

厳密に「何も入力されていない」を判定したいなら ISBLANK を使います。

=IF(ISBLANK(A2), "未入力", "入力済み")

見た目の空欄をまとめて扱いたいなら A2 = "" のほうが実用的です。どちらが必要かを意識して選んでください。

エラーを条件にしたいとき

「エラーだったら別の値を出す」には、IFではなく IFERROR を使います。

=IFERROR(A2 / B2, "計算できません")

IFで書こうとすると ISERROR との組み合わせになり、同じ計算を2回書くことになります。IFERROR一択です。

よくある失敗

数式が長くなって直せなくなる

ネストが4段を超えたら IFS に。判定表が固定なら、別シートに対応表を作って XLOOKUP で引くほうが保守しやすくなります。条件が増えたときに表へ1行足すだけで済みます。

文字列の比較で大文字小文字が区別されない

IFの = は大文字小文字を区別しません。"abc" = "ABC"TRUE です。区別したいなら EXACT を使います。

=IF(EXACT(A2, "ABC"), "一致", "不一致")

数値と文字列を比べている

"100"(文字列)と 100(数値)は等しくありません。他システムから貼り付けたデータで起きがちです。VALUE() で数値化するか、貼り付け時に形式を揃えてください。

まとめ

  • - 書式は =IF(条件, 真の場合, 偽の場合)
  • - 3つ目の引数を省略しない。不要なら ""
  • - 複数条件は AND / OR と組み合わせる
  • - ネストは厳しい順に並べる。4段を超えたら IFS
  • - 数式が返す "" は「空白」ではない

関連する関数

  • - IFS — 3段階以上の分岐を読みやすく書く
  • - IFERROR — エラー時の表示を制御する
  • - AND / OR — 複数条件を組み合わせる
  • - SWITCH — 値の一致で振り分ける
  • - 関数一覧に戻る

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です