ExcelのIF関数の使い方|実務でそのまま使える具体例
ExcelのIF関数を初心者向けにわかりやすく解説。合否判定や予算管理、AND/OR関数との組み合わせまで、実務でそのままコピーして使える具体例を多数紹介します。
著者 Ayoub Farid · · 6 分で読めます
IF関数は、表計算ソフトで「条件分岐(条件に応じた処理の切り替え)」を行うための基本的な関数です。指定した条件をチェックし、それが成り立っている場合(真)と成り立っていない場合(偽)で、それぞれ異なる結果を返します。最も検索されているエクセル関数の一つであり、就職・転職のExcelスキルテストでも頻出の機能です。
基本構文
=IF(logical_test, value_if_true, value_if_false)
- logical_test(論理式):
B2>=5000のように「はい」または「いいえ」で判定できる条件式 - value_if_true(値が真の場合): 条件を満たしている場合に表示する値
- value_if_false(値が偽の場合): 条件を満たしていない場合に表示する値
例1:目標達成か未達成かの判定
| A | B | C | |
|---|---|---|---|
| 1 | 月 | 売上 | 判定 |
| 2 | 1月 | 4,200 | |
| 3 | 2月 | 5,600 |
セルC2に以下の数式を入力します。
=IF(B2>=5000,"Target hit","Below target")
オートフィルで下にコピーします。1月は「Below target(未達成)」、2月は「Target hit(達成)」と表示されます。
比較演算子一覧
| 演算子 | 意味 |
|---|---|
= | 等しい |
<> | 等しくない |
> / < | より大きい / より小さい(未満) |
>= / <= | 以上 / 以下 |
文字列を条件に指定する場合はダブルクォーテーションで囲みます(例:=IF(C2="Paid","Done","Chase"))。なお、文字列の比較では大文字と小文字は区別されません。
例2:計算結果を返す
IF関数では、文字列だけでなく数値や計算式を返すことも可能です。たとえば、目標を超えた場合にのみ5%のボーナスを計算する場合は次のように入力します。
=IF(B2>=5000,B2*5%,0)
例3:セルを空白のままにする
=IF(B2="","",B2*C2)
価格がまだ入力されていないセルに「0」と表示させず、見た目を空白にしておきたい場合に便利です。
例4:2つの条件を組み合わせる
論理式の中にAND関数やOR関数を組み合わせます。
=IF(AND(B2>=5000,C2<3000),"Great month","OK")
=IF(OR(D2="Late",E2="Missing"),"Check","Fine")
詳しい使い方はANDとORの使い方をご覧ください。
3つ以上の結果に分岐させる場合
成績の「A」「B」「C」評価のように結果が3つ以上ある場合は、IF関数をネスト(入れ子)にするか、IFS関数を使用します。
=IF(B2>=90,"A",IF(B2>=80,"B","C"))
=IFS(B2>=90,"A",B2>=80,"B",TRUE,"C")
詳細はIF関数のネストおよびIFS関数の使い方をご確認ください。
よくあるミス
- 文字列のダブルクォーテーション忘れ:
=IF(C2=Paid,...)のように入力すると#NAME?エラーが発生します。 - 数値をダブルクォーテーションで囲んでしまう:
=IF(B2>"5000",...)と書くと数値ではなく文字列として比較され、予期せぬ判定結果になります。 - ネストの条件の順序ミス: 複数の条件を並べる場合は、最も高い(厳しい)基準値から順に判定してください。
- 基準値を数式に直接書き込む: 基準となる値(例: 5000)を特定のセルに入力し、数式内では
$F$1のように参照してください。後から基準値を1箇所変更するだけで全体に反映できます。詳しくは絶対参照の基本をご覧ください。
関連:条件に一致するセルをカウント・合計する
条件に一致する行を「数える」または「合計する」だけなら、すべての行にIF関数を入力する必要はありません。COUNTIF関数やSUMIF関数を活用しましょう。
IF関数の実践練習
Cellioでは、IF、AND、OR関数を実践できる新レッスン「Decisions(条件分岐)」を近日リリース予定です。公開までの間は、IF関数をオートフィルで下にコピーする際に欠かせない「参照」や「$(ドル記号)によるセル固定」が学べる既存ユニットをぜひご活用ください。
よくある質問
ExcelでIF関数の数式はどのように書きますか?
=IF(条件式, 真の場合の値, 偽の場合の値) の形式で記述します。例えば =IF(B2>=50,"Pass","Fail") のように使います。
IF関数で結果を空白セルにすることはできますか?
可能です。ダブルクォーテーションを2つ連続させて =IF(B2="","",B2*2) のように指定します。
ExcelではIF関数を何重までネストできますか?
仕様上は最大64個までネスト可能ですが、3つ以上重ねると数式が複雑になり可読性が下がります。IFS関数を使用するか、参照テーブルを活用することをおすすめします。
Googleスプレッドシートでも同じように使えますか?
はい。Googleスプレッドシートでもまったく同じ構文 =IF(条件式, 真の場合, 偽の場合) で動作します。