Excel IF 関数の使い方
IF(イフ)は、条件が成り立つときに一方の値、成り立たないときに別の値を返す Excel(エクセル)の論理関数です。複数のしきい値はネストした IF か IFS、複数条件は AND / OR を条件に入れます。構文と書き方、複数条件の例、文字を含むかの判定を、例題と練習問題で身につけましょう。
IF 関数の構文と引数
IF は、表計算の論理判定の基本です。条件が成り立つ(TRUE)ときは一方の値を、成り立たない(FALSE)ときは別の値を返します。
結果が TRUE または FALSE になる条件や式です(例:A2 >= 90、B2 = "Pending"、C2 > AVERAGE(C$2:C$10))。
条件式が TRUE のときに返す値です。ダブルクォーテーションで囲んだ文字("Pass")、数値、セル参照、別の数式も使えます。
条件式が FALSE のときに返す値です。省略すると FALSE が返ります。段階的な等級では、ここに次のネストした IF を入れることが多いです。
定番の例:点数を字母の等級に変換する
しきい値は高いほうから順に判定します(先に 90、次に 80、次に 70)。先に真になった分岐のあとは評価されません。
Excel で IF 関数を書く手順
- まず条件(条件式)を書く — 何を判定するかを決めます。例:A2>=90 の合格ライン、B2="Done" の状態比較。結果は TRUE か FALSE になる必要があります。
- 2つの戻り値を書く — 真の場合は条件が成り立つときの結果、偽の場合は成り立たないときの結果です。文字はダブルクォーテーションで囲みます。
- 分岐が多ければネストした IF か IFS — 1つの IF は二者択一です。しきい値が複数あるときは、偽の場合に次の IF を入れ子にするか、新しい Excel なら IFS を使います。
IF + AND / OR:複数条件を1つの IF で判定する
IF の条件には、本来1つの論理式しか置けません。AND や OR を条件に入れると、複数のセルやしきい値を一度に調べられます。
AND:すべての条件が TRUE のときだけ成立します。例:2科目とも 60 以上なら Pass。
OR:どれか1つでも TRUE なら成立します。例:どちらかの科目が 90 以上なら合格。
IF で文字を含むか・空白でないかを判定する
IF に「含む」という引数はありません。定番は SEARCH で位置を探し、ISNUMBER で TRUE/FALSE にして IF に渡す方法です。
SEARCH は A2 から "urgent" を探します(大文字小文字は区別せず、見つかると位置の数字、見つからないとエラー)。ISNUMBER がその結果を TRUE/FALSE にします。大文字小文字を区別したいときは SEARCH を FIND に替えます。
空白でない判定:<>"" は「空文字と等しくない」です。空白かどうかを見るなら ISBLANK(A2) も使えます。
ネストした IF と IFS の違い
ネストした IF
どのバージョンの Excel・Google スプレッドシートでも使え、面接でもよく出ます。いちばん高いしきい値から上から読んでいくと分かりやすいです。
IFS
新しい Excel と Google スプレッドシートでは、複数分岐を =IFS(A2>=90,"A", A2>=80,"B", A2>=70,"C", TRUE,"D") のように書け、括弧の入れ子を減らせます。
よくある誤りと注意点
- 判定の順番 — 判定の順番が重要です。先に A2>=70 で C を返すと、95 点も C になります。しきい値は高いほうから低いほうへ並べます。
- 文字の引用符 — 文字の結果は半角のダブルクォーテーションで囲みます("A")。囲まないと名前や範囲として解釈され、#NAME? になることがあります。
- 空白セル — 空白セルの扱い:空白と数値 0 の比較は意図しない結果になりやすいので、必要なら ISBLANK で確認します。
関連する練習問題
実際の業務に近いミニ表で、IF の組み合わせや論理の問題を練習して身につけましょう。
よくある質問
IF 関数の構文は何ですか?
=IF(条件式, 真の場合, 偽の場合) と書きます。例:=IF(A2>=60, "Pass", "Fail") は、A2 が 60 以上なら Pass、それ以外なら Fail を返します。
Excel で IF 関数の使い方を教えてください。
まず条件を書き、次に2つの結果を書きます:=IF(A2>=90, "A", "B")。結果が3つ以上のときは、偽の場合の引数に次の IF を入れ子にするか、新しい Excel や Google スプレッドシートなら IFS 関数を使います。
IF で複数条件(AND / OR)を指定するには?
条件の位置に AND または OR を入れます。=IF(AND(A2>=60, B2>=60), "Pass", "Fail") は両方の条件が真のときだけ成立し、OR にするとどれか1つが真なら成立します。
IF でセルに特定の文字が含まれるかを判定するには?
ISNUMBER と SEARCH を組み合わせます:=IF(ISNUMBER(SEARCH("urgent", A2)), "Priority", "Normal")。SEARCH は大文字と小文字を区別しません。区別したいときは FIND を使います。
IF で空白でないセルを判定するには?
空の文字列と比較します:=IF(A2<>"", "入力あり", "未入力")。空白かどうかを直接見るなら =IF(ISBLANK(A2), "空白", "値あり") です。
IF と COUNTIF、SUMIF の違いは何ですか?
IF は条件に応じて2つの値のどちらかを返します。COUNTIF は条件に合うセルの個数を数え、SUMIF は条件に合う数値を合計します。集計は COUNTIF / SUMIF、行ごとの判定は IF、と使い分けることが多いです。
ネストした IF と IFS はどちらを使うべきですか?
ネストした IF はどのバージョンでも使えます。分岐が多いときは、新しい Excel や Google スプレッドシートの IFS のほうが読みやすいです。
ネストした IF で等級が間違うのはなぜですか?
判定の順番が原因です。いちばん高いしきい値を先に書いて、先に真になった条件が優先されるようにします。