IF 関数:構文、例とエラーの解決
2026-10-13 更新 · 無料 · Excel と Google Sheets に対応
構文
=IF(論理式, 真の場合, [偽の場合])クイック回答
IF は 1 つのテストの結果に応じて 2 つの値のどちらかを返します:=IF(B2>=50, "Pass", "Fail") なら B2 が 50 以上のとき Pass、それ以外は Fail と表示されます。文字列の結果には二重引用符が必須で、数値や数式は裸で書きます。第 3 引数は省略可能ですが、省略すると空白ではなく FALSE が返ります。
構文
=IF(論理式, 真の場合, [偽の場合])| 引数 | 意味 |
|---|---|
| 論理式 | TRUE か FALSE かを判定する条件:B2>=50 のような比較、C2="Paid" のような一致確認、あるいは TRUE/FALSE を返す任意の式。 |
| 真の場合 | テストが TRUE のときに返す値——二重引用符付きのテキスト、数値、日付、または別の数式。 |
| 偽の場合 | 省略可能。テストが FALSE のときに返す値。省略すると IF は FALSE を返します。空のセルに見せたい場合は空の引用符 "" を書きます。 |
地域設定によっては、引数がコンマではなくセミコロンで区切られます:=IF(B2>=50; "Pass"; "Fail")。コンマを小数点として使う国ではこれが標準です。
基本例
=IF(B2>=50, "Pass", "Fail")定番の合格/不合格テスト:50 点以上は Pass、それ未満は Fail と表示されます。文字列の結果には必ず二重引用符が必要で、比較演算子(=、<>、>、>=、<、<=)は結果ではなく論理式の中に書きます。
=IF(C2>1000, C2*0.1, 0)1,000 を超える売上に 10% の歩合、それ以外は 0。両方の結果が計算式なので引用符は一切不要です——IF は固定値だけでなく任意の数式を返せます。
=IF(D2="", "Missing", D2*1.2)まず空セルかどうかを判定して印を付け、空でなければ値上げ計算を実行します。="" との比較は、計算の前に空値を拾う定番の書き方です。
=IF(E2="Done", "Closed", "")完了した行にラベルを付け、それ以外は本当に空のままにします。セルを空に見せるのは空の引用符の役割です——第 3 引数を省略すると、空白ではなく FALSE が表示されます。
数値の結果に引用符を付けてはいけません:=IF(A1>0, "50", 0) が返すのはテキストの "50" で、SUM や AVERAGE はそれを黙ってスキップします。引用符を付けるのは文字列の結果だけ。数値・日付・数式は裸で書きます。
よくあるエラーと修正方法
| 症状 | 最も多い原因 | 修正方法 |
|---|---|---|
| #NAME? | IF のスペルミス——または Excel が別言語版で、関数がローカライズ名(SI、WENN、SE)を持っている。 | =I や =W と入力してオートコンプリートに名前を補完させるか、対応する言語版の Excel で開きます。 |
| 結果が FALSE とそのまま表示される | 第 3 引数を省略したため、テストが失敗したとき IF が FALSE を表示する。 | 偽の場合の引数を追加します。空に見せたいなら "" を書きます。 |
| 数値がテキストになる | 結果を引用符で書いた:=IF(A1>0, "50", 0) はテキストを返し、SUM はスキップする。 | 数値の結果から引用符を外します:=IF(A1>0, 50, 0)。 |
| 一部の行に #VALUE! | IF 自体は正常——結果の中の数式(D2*1.2 など)が、元の列のテキストや空値に当たっている。 | 元データを修正するか、計算をガードします:=IF(D2="", "Missing", D2*1.2)。 |
| どの行も同じ結果になる | 論理式に比較がない:=IF(B2, "Yes", "No") は 0 以外の数をすべて TRUE 扱い、=IF(B2>50, ...) のつもりが =IF(B2=50, ...) になっている。 | 完全な比較を書き(B2>50、B2<>"")、= は本当に等値を判定するときだけ使います。 |
見えない空白も文字列の一致判定を壊します:=IF(C2="Paid", ...) は末尾に空白のある「Paid 」に一致しません。まず列全体をクリーンアップしてから比較すれば一致します。
ネストした IF と IFS の比較
| ネストした IF | IFS | |
|---|---|---|
| 1 つの数式あたりの条件数 | 無制限。ただし 1 段ごとに閉じ括弧が 1 個増える | 最大 127 組。「条件, 結果」をフラットに並べる |
| 可読性 | 3〜4 段を超えると検証が困難 | 条件を上から下にそのまま読める。括弧の迷路なし |
| 対応バージョン | すべての Excel バージョン(Google Sheets 含む) | Excel 2019+/365(Google Sheets 含む) |
=IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=70, "C", "F")))定番の成績ラダー:条件が失敗すると次の IF に落ちていきます。内側から読み、閉じ括弧が末尾に積み上がる点に注意——3 段のネストは最後に閉じ括弧が 3 個並びます。
=IFS(B2>=90, "A", B2>=80, "B", B2>=70, "C", TRUE, "F")同じラダーを IFS で書いたもの:条件と結果がフラットなペアで交互に並び、順に評価されます。IFS に組み込みの「それ以外」はありません——末尾の TRUE, "F" のペアが、上の最後の IF と同じ役割の受け皿になります。
Google Sheets での IF
Google Sheets は Excel と同じ引数と挙動の IF をサポートしており、上の数式はそのまま貼り付けられます。
- 省略可能な第 3 引数の挙動も同じ:省略すると Sheets も空白ではなく FALSE を返します。
- コンマを小数点に使う地域設定(ヨーロッパとラテンアメリカの多く)では、引数の区切りにセミコロンを入力します:=IF(B2>=50; "Pass"; "Fail")。Excel も同じ挙動です。
- Sheets にも IFS があり、やはりデフォルトの「それ以外」がありません——末尾を TRUE, フォールバック にして残りをすべてカバーします。
- 分岐が多いときは、両アプリとも SWITCH を用意しています。1 つのセルを値のリストと順に比較でき、深い IF ラダーよりはるかに読みやすくなります。
制限と上級テクニック
- IF は値を返すだけで、操作を実行したり「何もしない」ことはできません。条件付き書式・フィルター・行の削除などは IF を介さず、各機能を直接使います。
- ネストが 3〜4 段を超えたら IFS に切り替えるか、ラダー全体を検索に置き換えます:=VLOOKUP(B2, $F$2:$G$5, 2, TRUE) なら 1 行で点数帯を成績に対応付けられます。
- 数値の結果に引用符を付けない——引用符付きの数値はテキストになり、SUM・AVERAGE・グラフから消えます。
- 第 3 引数を省略すると FALSE が返り、空セルにはなりません:空に見せたい場合は明示的に "" と書きます。
- & でテキストとセルを連結します:=IF(B2>=50, "Passed with "&B2, "Failed with "&B2) なら補助列なしで動的なメッセージを作れます。
IF の信頼性は判定対象のデータ次第です。先に列を検証しましょう——空値・テキスト数値・重複はすべて静かに結果を裏切ります——そのうえで数式に仕事をさせます。
関連ツール
関連関数
よくある質問
IF 関数は Excel で何をしますか?
1 つのテストを実行し、2 つの値のどちらかを返します:=IF(B2>=50, "Pass", "Fail") はテストが TRUE のとき Pass、FALSE のとき Fail を表示します。テストは数値・テキスト・日付を比較でき、両方の結果にはテキスト・数値・日付・完全な数式を置けます。
テキストを返す IF 数式はどう書きますか?
テキストを数式内で二重引用符で囲みます:=IF(C2="Paid", "Yes", "No")。引用符は結果にだけ付きます——セルに引用符まで表示されるなら、引用符を文字列の中に誤って入れ子にしています。
IF 数式が FALSE を返すのはなぜですか?
第 3 引数が不足しています:=IF(B2>50, "High") はテストが失敗すると FALSE を表示します。偽の場合に返したい値を追加するか、空に見せたいなら "" を書きます:=IF(B2>50, "High", "")。
IF はテキストではなく計算結果を返せますか?
はい——数式を引用符なしで結果の位置に置きます:=IF(C2>1000, C2*0.1, 0) は C2 が 1,000 を超えるとその 10%、それ以外は 0 を返します。両方の結果の位置には、ネストした IF を含む任意の数式を置けます。
IF で複数の条件を扱うには?
テストを AND(すべて成立)や OR(どれか 1 つで十分)で組み合わせます:=IF(AND(B2>=50, C2<3), "Bonus", "No bonus")。どちらか一方のロジックなら AND を OR に替えます:=IF(OR(B2="", C2=""), "Missing", "OK")。
IF は何段までネストできますか?
技術的には最新の Excel で 64 段までですが、3〜4 段を超えると可読性が崩れます。それ以上は IFS で条件をフラットに並べるか(Excel 2019+/365)、点数帯のラダーを範囲検索に置き換えます:=VLOOKUP(B2, $F$2:$G$5, 2, TRUE)。
IF は Google Sheets でも使えますか?
はい——名前・3 つの引数・第 3 引数省略時の FALSE も同じです。コンマを小数点に使う地域設定でのみ引数の区切りがセミコロンに変わります:=IF(B2>=50; "Pass"; "Fail")。
自分のファイルで試す準備はできましたか?
Excelデータ検証マーカーを開く — 無料