GoogleスプレッドシートのIF(イフ)関数は、指定した条件を満たしているか(真:TRUE)、満たしていないか(偽:FALSE)を判定し、その結果に応じてセルに表示する文字や数値、計算式を自動で切り替える論理関数です。
テストの得点から「合格/再試験」を判定する採点表、購入金額に応じて「送料無料(0円)/送料500円」を切り替える注文一覧表、売上実績と目標額を比較して「達成/未達」を表示する管理シートなど、条件に応じた振り分け処理を自動化できます。本記事では、IF関数の3つの引数(論理式・TRUE値・FALSE値)の仕組みと記述ルール、条件式で使う6つの比較演算子、サンプルデータと実際の画面キャプチャーを用いた作成手順、および複数条件(AND・OR・IFS)との組み合わせ方法を順を追って詳しく解説します。
この記事でわかること
- IF関数の基本構文
=IF(論理式, TRUE値, FALSE値)と3つの引数の役割 - 引数におけるダブルクォーテーション(
" ")の付け方(文字列・数値・数式・空欄の違い) - 論理式で使用する6つの比較演算子(
=,<>,>=,>,<=,<)の意味と境界値の扱い - サンプルデータと実際の画面キャプチャーで確認するIF関数の基本的な作り方(合否判定・送料計算・空白行ガード)
- 複数条件を組み合わせる方法(
AND関数・OR関数・IFの入れ子・IFS関数)とエラー解消手順
IF関数とは?条件によって表示や計算を切り替える仕組み
IF関数は、英語の「If(もし〜ならば)」の通り、「もし指定した条件に当てはまるならAを出力し、当てはまらないならBを出力する」という二択の条件分岐を行う関数です。

目視で1行ずつ数値を確認して「合格」「再試験」などの文字を手入力する場合、後から元の得点が修正された際に判定列の書き換え漏れが生じる原因になります。IF関数を入力しておけば、参照元のセルの数値が変更された瞬間に判定結果も自動で再計算されます。
IF関数の基本構文と「3つの引数(ひきすう)」の詳しいルール
スプレッドシートの関数における「引数(ひきすう)」とは、関数に計算や判定を行わせるためにカッコ () の中へ順番に渡す「設定項目(材料)」のことです。IF関数では、カッコの中に3つの引数を半角カンマ(,)で区切って指定します。
=IF(論理式, TRUE値, FALSE値)
# 具体例:C2セルの値が80以上なら「合格」、それ以外は「再試験」と表示する
=IF(C2>=80, "合格", "再試験")
第1引数から第3引数までのそれぞれの役割と指定できる内容は以下の通りです。
| 引数の順番と名称 | 必須/省略 | 引数の役割と意味 | 指定する記述例 |
|---|---|---|---|
| 第1引数:論理式 (条件式) |
必須 | 「どのセルが、どういう状態か」を判定する条件式を指定します。結果が真(TRUE)または偽(FALSE)になる式を書きます。 |
C2>=80(C2が80以上)B2="完了"(B2が完了)C2=""(C2が空欄) |
| 第2引数:TRUE値 (真の場合の値) |
必須 | 第1引数の論理式が成り立つとき(TRUEのとき)に、セルへ表示または計算させる内容を指定します。 | "合格"(文字列)0(数値)C2*0.9(計算式) |
| 第3引数:FALSE値 (偽の場合の値) |
省略可能 (指定を推奨) |
第1引数の論理式が成り立たないとき(FALSEのとき)に、セルへ表示または計算させる内容を指定します。 | "再試験"(文字列)500(数値)""(空欄にする) |
文字列を指定するときは半角のダブルクォーテーション(” “)で囲む
第1引数の論理式や、第2引数(TRUE値)・第3引数(FALSE値)において、"合格"、"達成"、"○" といった文字列(テキスト)を扱う場合は、必ず文字列の前後を半角のダブルクォーテーション(")で囲みます。
スプレッドシートの数式内では、" " で囲まれた部分が「そのまま表示・比較する文字列」として認識されます。もし =IF(C2>=80, 合格, 再試験) のように " " を付けずに文字を書くと、スプレッドシートは「合格という名前の関数または名前付き範囲」を探しに行き、該当するものが見つからないため #NAME? エラーを返します。
数値・セル参照・計算式にはダブルクォーテーションを付けない
反対に、80 や 0、500 といった「数値」、C2 のような「セル番地(セル参照)」、および C2+500 や SUM(B2:D2) のような「計算式・関数」を引数に指定する場合は、ダブルクォーテーション(" ")を付けずにそのまま記述します。
もし数値を "500" のように " " で囲んでしまうと、計算可能な「数値の500」ではなく「文字としての500」として出力されるため、後からその列を SUM 関数で合計した際に集計対象から除外される原因になります。
セルを空欄(空白)にしたいときは「””」を指定する
ダブルクォーテーションを2つ続けて ""(間にスペースを入れない状態)と書くと、「文字数がゼロの空文字列(見た目が空欄)」を意味します。条件に当てはまらない行に何も表示したくない場合は、第3引数(FALSE値)に "" を指定します。
# C2が80以上なら「合格」と表示し、80未満ならセルを空欄("")にする
=IF(C2>=80, "合格", "")
FALSE値(第3引数)を省略した場合の挙動の違い
公式仕様上、第3引数(FALSE値)は省略可能ですが、カンマの有無によって条件不成立時の出力結果が異なります。
- カンマごと第3引数を省略した場合(
=IF(C2>=80, "合格")):条件を満たさないセルには、論理値のFALSEというアルファベットがそのまま表示されます。 - カンマを書いて第3引数を空にした場合(
=IF(C2>=80, "合格", )):条件を満たさないセルには何も表示されません(内部的には空値となり、数値として参照すると0として扱われます)。
数式を読む人が意図を明確に把握できるようにするため、第3引数は省略せず、空欄にしたい場合は明示的に "" を書き、ゼロにしたい場合は 0 を書く形式が推奨されます。
IF関数の論理式で使う「6つの比較演算子」一覧と書き方
第1引数の「論理式」では、2つの値を比較するために「比較演算子(ひかくえんざんし)」と呼ばれる6種類の半角記号を使用します。

6つの比較演算子の意味、読み方、論理式の記述例、および境界値(基準となる数値そのもの)が含まれるかどうかの違いは以下の通りです。
| 比較演算子 | 意味・条件 | 基準値を含むか | 論理式の記述例 | TRUE(真)と判定される範囲 |
|---|---|---|---|---|
= |
左辺と右辺が等しい(一致する) | 一致のみ含む | B2="完了"C2=100 |
B2が「完了」と一致するとき C2がちょうど100のとき |
<> |
左辺と右辺が等しくない(一致しない) | 一致を除外 | B2<>"完了"C2<>"" |
B2が「完了」以外のとき C2が空欄ではない(入力済み)のとき |
>= |
左辺が右辺以上 | 基準値を含む | C2>=80 |
80を含むそれより大きい数値(整数なら80, 81, 82…) |
> |
左辺が右辺より大きい(超える) | 基準値を含まない | C2>80 |
80を含まず、80を超える数値(整数なら81, 82…) |
<= |
左辺が右辺以下 | 基準値を含む | C2<=50 |
50を含むそれより小さい数値(整数なら50, 49, 48…) |
< |
左辺が右辺より小さい(未満) | 基準値を含まない | C2<50 |
50を含まず、50未満の数値(整数なら49, 48…) |
「以上(>=)」と「より大きい(>)」の境界値の違いと記号の順序
数値の大小を比較する際は、「基準となる数値そのもの(境界値)を条件に含めるかどうか」によって演算子を使い分けます。
- 80点ちょうどを「合格」に含める場合:「80以上」を表す
C2>=80を使用します。 - 80点ちょうどは含めず、80点を超えた場合のみ対象とする場合:「80より大きい」を表す
C2>80を使用します。
また、>=(以上)や <=(以下)を書く際は、必ず不等号(> または <)を左側に書き、イコール(=)を右側に書きます。日本語の語順(「イコール・より大きい」など)に引きずられて => や =< と逆順に記述すると、数式の解析エラー(#ERROR!)になります。
「等しくない(<>)」を使った空白判定の書き方
小なり(<)と大なり(>)を向かい合わせに並べた <> は、「左辺と右辺が等しくない(一致しない)」を表す演算子です。空文字列を表す "" と組み合わせることで、セルの入力有無を判定できます。
# C2セルが「空欄である」ことを判定する論理式
C2=""
# C2セルが「空欄ではない(何かが入力されている)」ことを判定する論理式
C2<>""
【画面キャプチャー付き】サンプルデータで学ぶIF関数の基本的な作り方
ここからは、実際のサンプルデータとスプレッドシートの画面キャプチャーを用いて、IF関数を作成して表全体へ反映するまでの手順を確認します。
サンプルデータ:社内研修テストの採点・合否判定表
以下のサンプルデータをスプレッドシートのA1セル〜D6セルに貼り付けると、同じ手順を手元で再現できます。C列の「テスト得点」が80点以上なら「合格」、80点未満なら「再試験」とD列に自動表示させます。
| 行\列 | A列(社員番号) | B列(氏名) | C列(テスト得点) | D列(合否判定:数式を入れる列) |
|---|---|---|---|---|
| 1行目(見出し) | 社員番号 | 氏名 | テスト得点 | 合否判定(80点以上で合格) |
| 2行目 | S-001 | 佐藤 健太 | 85 | =IF(C2>=80, "合格", "再試験") → 合格 |
| 3行目 | S-002 | 鈴木 美咲 | 72 | =IF(C3>=80, "合格", "再試験") → 再試験 |
| 4行目 | S-003 | 高橋 誠 | 80 | =IF(C4>=80, "合格", "再試験") → 合格 |
| 5行目 | S-004 | 田中 彩香 | 94 | =IF(C5>=80, "合格", "再試験") → 合格 |
| 6行目 | S-005 | 伊藤 翔太 | 65 | =IF(C6>=80, "合格", "再試験") → 再試験 |
先頭行のセル(D2)にIF関数を入力する
まず、判定結果を表示したい一番上のセルである D2セル をクリックして選択し、キーボードの入力モードを「半角英数」に切り替えてから以下の数式を入力します。
=IF(C2>=80, "合格", "再試験")
画面キャプチャー:D2セルに =IF(C2>=80, “合格”, “再試験”) を入力し、C2セル(オレンジ色の点線枠)を参照している状態画面キャプチャーの通り、数式を入力している最中は以下の視覚的なサポートが働きます。
- 参照セルのハイライト表示:数式内に
C2と入力すると、文字がオレンジ色に変わり、対応するシート上のC2セル(85)が同じオレンジ色の点線枠で囲まれます。これにより、どのセルを判定対象にしているかを画面上で確認できます。 - 関数ヘルプの緑色ポップアップ:セルのすぐ下に
IF(論理式, TRUE値, FALSE値)というガイドが表示されます。半角カンマ(,)を打つごとに緑色のハイライトが「論理式 → TRUE値 → FALSE値」へと移動するため、今何番目の引数を入力しているかを一目で把握できます。
Enterキーで確定し、オートフィルで下の行へコピーする
数式を最後まで入力して Enterキー を押すと、2行目の佐藤さん(85点)は C2>=80 の条件を満たす(TRUE)ため、D2セルに 合格 と表示されます。
続いてD2セルを再度クリックし、セル枠の右下にある小さな青い四角(フィルハンドル)にマウスカーソルを合わせて十字マークに変わったら、最終行の D6セルまで下方向へドラッグ(またはフィルハンドルをダブルクリック)します。
- 3行目(D3セル)には自動的に
=IF(C3>=80, "合格", "再試験")が入り、C3セル(72点)は80未満(FALSE)のため 再試験 と表示されます。 - 4行目(D4セル)の高橋さんは 80点ちょうど ですが、比較演算子に基準値を含む
>=(以上)を使用しているため、TRUEと判定されて 合格 になります。
【実践サンプル】数値・計算式の切り替えと「空白行ガード」の作り方
IF関数の第2引数(TRUE値)・第3引数(FALSE値)には、文字列だけでなく「数値」「計算式」や「空欄("")」を指定できます。実務のシート作成で用いられる代表的な3パターンを整理します。

実践サンプルA:購入金額5,000円以上で送料を「0円」、未満で「500円」にする
ECサイトの注文一覧や見積書において、「購入金額(C列)が5,000円以上なら送料0円、5,000円未満なら送料500円」という数値を出力し、隣のE列で購入金額と送料を足した請求合計を求めるサンプルです。
# D2セル(送料判定):数値を返すため 0 や 500 にダブルクォーテーションは付けない
=IF(C2>=5000, 0, 500)
# (別解)送料列を作らず、1つのIF関数で直接「送料込みの請求合計」を計算する場合
=IF(C2>=5000, C2, C2+500)
画面キャプチャー:=IF(C2>=5000, 0, 500) により数値として送料(0または500)を出力し、E列で請求合計を算出している状態画面キャプチャーの通り、第2引数に 0、第3引数に 500 をダブルクォーテーションなしで指定することで、D列の結果は右揃えの「数値」として出力され、E列の足し算(=C2+D2)や列全体の合計(=SUM(D2:D6))でそのまま計算に使用できます。
実践サンプルB:未入力の行に判定文字を出さない「空白行ガード」
今後のデータ追加に備えて、あらかじめ表の下の行(未入力の行)までIF関数をコピーしておくと、まだ数値が入力されていない空欄のセルが「0(基準未満)」とみなされ、空行にまでズラリと「未達」や「再試験」と表示されてしまいます。
これを防ぐには、「もし参照セルが空欄(C5="")なら空欄("")を返し、空欄でないときだけ本来のIF判定を行う」という二段構えの数式(空白行ガード)を記述します。
# C5セルが空欄なら空欄("")にし、入力されていれば10万円以上かどうかを判定する
=IF(C5="", "", IF(C5>=100000, "達成", "未達"))
画面キャプチャー:空白行ガードを組み込むことで、売上実績(C列)が未入力の5行目・6行目はD列も空欄のまま維持されるこの数式の動作ステップは以下の通りです。
- 外側のIF関数:まず第1引数の
C5=""(C5セルが空欄か?)を判定します。5行目・6行目のようにC列が未入力であれば、この時点でTRUEとなり、第2引数の""(空欄)が出力されて処理が終了します。 - 内側のIF関数:2行目〜4行目のようにC列に数値が入力されている場合は、最初の
C5=""がFALSEとなるため、第3引数に書かれた2つ目のIF関数IF(C5>=100000, "達成", "未達")が実行され、「達成」または「未達」が出力されます。
複数の条件を組み合わせる方法(AND関数・OR関数・IFの入れ子・IFS関数)
実務のシートでは、「2つの条件を両方とも満たすとき」や「A・B・Cの3段階以上に振り分けたいとき」など、1つの条件式だけでは完結しない場面があります。その場合は、AND関数、OR関数、IF関数の入れ子(ネスト)、またはIFS関数を組み合わせます。

すべての条件を満たすか判定する「IF × AND関数」
AND(アンド)関数は、AND(条件1, 条件2, ...) のように複数の論理式をカンマで並べて指定し、すべての条件がTRUEのときだけTRUEを返す関数です。これをIF関数の第1引数(論理式)の位置にそのまま組み込みます。
# B2(筆記得点)が70以上、かつ C2(実技得点)が80以上の「両方」を満たすときだけ「合格」
=IF(AND(B2>=70, C2>=80), "合格", "不合格")
いずれか1つでも条件を満たすか判定する「IF × OR関数」
OR(オア)関数は、OR(条件1, 条件2, ...) のように複数の論理式を指定し、どれか1つでもTRUEがあればTRUEを返す関数です。「AまたはBのどちらかに当てはまれば対象とする」という判定に使用します。
# B2(英語得点)が90以上、または C2(数学得点)が90以上の「どちらか一方でも」満たせば「特待生候補」
=IF(OR(B2>=90, C2>=90), "特待生候補", "対象外")
多段階に振り分ける「IF関数の入れ子(ネスト)」と「IFS関数」の比較
たとえばテストの得点を「80点以上はA判定、60点以上(80点未満)はB判定、60点未満はC判定」のように3段階以上に振り分けるには、以下の2通りの書き方があります。
# 方法1:IF関数の第3引数(FALSE値)の中に、もう1つIF関数を入れる(入れ子/ネスト)
=IF(C2>=80, "A判定", IF(C2>=60, "B判定", "C判定"))
# 方法2:複数条件専用の IFS(イフス)関数を使う(条件と値のペアを順番に並べる)
=IFS(C2>=80, "A判定", C2>=60, "B判定", TRUE, "C判定")
どちらの方法でも、スプレッドシートは左側に書かれた条件から順番に判定を行い、最初にTRUEになった時点の結果を採用して処理を終了します。そのため、数値を段階分けする際は必ず「80以上 → 60以上」のように上限(厳しい条件)から順番に記述します(もし先に C2>=60 を書いてしまうと、90点の人も最初の60以上という条件に引っかかってB判定になってしまいます)。
IF関数で発生する主なエラーと意図しない表示の解消手順
IF関数を入力した際にエラーコードが表示されたり、意図と異なる判定結果になったりする場合の原因と修正方法の一覧は以下の通りです。
| 表示されるエラー・事象 | 主な発生原因 | 確認ポイントと修正方法 |
|---|---|---|
#NAME? |
文字列の前後にダブルクォーテーション(" ")を付け忘れている、または関数名のスペルミス(IIF など)。 |
=IF(C2>=80, 合格, 再試験) のように文字が裸になっていないか確認し、"合格" のように半角の " で囲みます。 |
#ERROR!(数式の解析エラー) |
カンマ(,)やダブルクォーテーション(")が全角になっている、または比較演算子の順番が => / =< と逆になっている。 |
数式内の記号(( ) , " > < =)をすべて半角に直し、以上・以下は >= / <= の順序に修正します。 |
#N/A(引数の数が正しくありません) |
1つのIF関数の中にカンマを3つ以上打ち、引数を4つ以上指定している(例:=IF(C2>=80, "A", "B", "C"))。 |
1つのIF関数に渡せる引数は「論理式・TRUE値・FALSE値」の3つまでです。3段階以上に分ける場合は第3引数の中に再度 IF(...) を書くか、IFS 関数を使用します。 |
セルに FALSE と表示される |
第3引数(FALSE値)とカンマを省略しており(例:=IF(C2>=80, "合格"))、条件を満たさない行に論理値がそのまま出力されている。 |
第2引数の後ろに半角カンマを打ち、条件不成立時に表示したい文字("再試験" や空欄 "")を第3引数として追加します。 |
| 80点以上なのにFALSE側になる | 論理式の数値を C2>="80" のように " " で囲んで文字列にしている、または参照先セルの数値が文字列形式として保存されている。 |
数値を比較する際は " " を外して C2>=80 と記述し、参照先セルの表示形式を「自動」または「数値」に設定します。 |
まとめ:スプレッドシートのIF関数を使いこなす要点
GoogleスプレッドシートのIF関数における基本構文、3つの引数のルール、比較演算子、および実践的な活用パターンを整理しました。
本記事の要点まとめ
- 基本構文と3つの引数:
=IF(論理式, TRUE値, FALSE値)の順番に半角カンマで区切って記述し、条件が成り立つときは第2引数(TRUE値)、成り立たないときは第3引数(FALSE値)が出力される - ダブルクォーテーションの使い分け:
"合格"などの文字列や空欄("")には半角の" "を付け、数値(80,0)やセル参照(C2)、計算式(C2+500)には" "を付けない - 比較演算子のルール:基準値を含む「以上・以下」は
>=/<=(イコールが右側)、基準値を含まない場合は>/<、一致しない場合は<>を使用する - 空白行ガードと複数条件:未入力行の不要な表示を防ぐには
=IF(C2="", "", IF(...))を使い、複数条件の判定にはAND関数・OR関数・IFS関数を組み合わせる
