
IF関数は、すべてのExcelユーザーが最初にマスターすべき数式のひとつです。その本質は、シンプルな問いに答えることにあります。「この条件は真か偽か、そしてそれぞれの場合にどう処理するか?」この概念を理解すれば、基本的な合否判定から複数段階の成績評価システム、業務ルールまで、スプレッドシート内に強力な意思決定ロジックを直接構築できます。
このガイドでは、IF関数の基礎から始め、ネストIF、よくあるミス、そして複雑なロジックを読みやすく保つためにExcelが提供する最新の代替関数まで順を追って解説します。
IFの構文はシンプルです。
=IF(logical_test, value_if_true, value_if_false)
A2>100、B5="Yes")列Bに売上数値が入力されており、10,000ドルのノルマを超えた担当者にフラグを立てたいとします。列Cに次の数式を入力します。
=IF(B2>10000, "Quota Met", "Below Quota")
ExcelはB2が10,000より大きいかどうかを評価します。条件を満たす場合はセルに「Quota Met」が表示され、そうでない場合は「Below Quota」が表示されます。これがIF関数のすべての仕組みであり、他の応用はすべてこの考え方の拡張です。
結果としてテキストではなく数値を返したり、別の数式を指定したりすることもできます。たとえば次のようにします。
=IF(B2>10000, B2*0.1, 0)
この数式はノルマを達成した場合のみ10%のコミッションを支払い、そうでない場合は0を返します。
論理式には、Excelの標準的な比較演算子を使用できます。
| 演算子 | 意味 | 例 |
|---|---|---|
| = | 等しい | A2="Approved" |
| <> | 等しくない | A2<>"Pending" |
| > | より大きい | B2>500 |
| < | より小さい | B2<0 |
| >= | 以上 | C2>=90 |
| <= | 以下 | C2<=59 |
論理式の中でANDやORを使って複数の条件を組み合わせることもできます。
=IF(AND(B2>10000, C2="Active"), "Bonus Eligible", "Not Eligible")
この数式は、両方の条件が同時に真の場合のみ「Bonus Eligible」を返します。
3つ以上の結果が必要な場合は、IFを別のIFの中にネストします。代表的な使用例として、成績の文字評価の計算があります。
=IF(A2>=90, "A",
IF(A2>=80, "B",
IF(A2>=70, "C",
IF(A2>=60, "D", "F"))))
Excelは各条件を左から右へ評価します。条件がTRUEになった時点でその結果を返し、残りは無視されます。たとえばスコアが85の場合、最初のテスト(≥90)はFALSE、次のテスト(≥80)はTRUEとなり、「B」が返されます。
ネストIFはテキストを返すだけに限りません。段階的な割引の数式は次のようになります。
=IF(B2>=1000, B2*0.85,
IF(B2>=500, B2*0.90,
IF(B2>=100, B2*0.95, B2)))
1,000ドル以上の注文は15%オフ、500〜999ドルは10%オフ、100〜499ドルは5%オフ、それ以外は定価となります。このようなロジックは、営業ダッシュボードやKPI管理において、パフォーマンスの段階がコミッションや評価を決定する場面で常に登場します。
IF(A2=Yes, ...)と書くとエラーが発生します。テキストは必ずダブルクォーテーションで囲んでください。IF(A2="Yes", ...)A2>=90より前にA2>=60をチェックすると、高いスコアがすべて最初の(低い)閾値に一致してしまい、それ以上の条件に到達しません。=IF(A2>10, "High")は、条件が満たされないときに(文字どおりの)FALSEという語を返します。空白にしたい場合は、""を明示的に指定してください。IF("10">5, ...)は「10」がテキストであるため、期待どおりに動作しない場合があります。セル内のデータ型を統一してください。Excel 2019およびMicrosoft 365で導入されたIFSは、ネストIFを読みにくくする閉じ括弧の山を排除します。構文は次のとおりです。
=IFS(logical_test1, value1, logical_test2, value2, ...)
成績評価の数式がはるかにすっきりします。
=IFS(A2>=90, "A", A2>=80, "B", A2>=70, "C", A2>=60, "D", TRUE, "F")
最後のペアTRUE, "F"は「それ以外」として機能します。それより前の条件がどれも真でない場合、このペアが常に真となるため「F」が返されます。IFSは3つ以上の結果があり、数式を一目で読みやすく保ちたい場合に最適です。
SWITCHは、範囲ではなく特定の値のリストに対して1つの値をテストする場合に最適です。
=SWITCH(A2, "Red", "Stop", "Yellow", "Caution", "Green", "Go", "Unknown")
構造は=SWITCH(式, 一致値1, 結果1, 一致値2, 結果2, ..., 既定値)です。A2が「Red」の場合は「Stop」、「Yellow」は「Caution」、「Green」は「Go」、それ以外は「Unknown」を返します。
SWITCHは、特定のテキストや数値コードをラベルにマッピングする場合、ネストIFよりはるかに読みやすくなります。これは、部門コードを部門名にマッピングするHR データ管理や、勘定コードをカテゴリにマッピングする財務レポートでよく見られるニーズです。
IFは、ルックアップ関数や統計関数と組み合わせることでさらに強力になります。実用的なパターンをいくつか紹介します。
=IF(ISBLANK(B2), "Missing", B2*1.1)
参照しているセルが空の場合のエラーを防ぎます。インポートデータを扱う際の良い習慣です。入力データセットを定期的にクリーニングする場合、IFとエラー処理を組み合わせることは、Power Queryのデータ変換ワークフローでカバーされている多くのテクニックのひとつです。
=IFERROR(VLOOKUP(A2, D:E, 2, 0), "Not Found")
VLOOKUPをIFでネストする代わりに、IFERRORはルックアップが返す可能性のあるエラーをキャッチし、わかりやすいメッセージに置き換えます。詳細なルックアップテクニックについては、VLOOKUPの完全ガイドをご覧ください。
SUM内にIFをネストする必要がない場合もあります。SUMIFとSUMIFSは、SUM をIFでラップするよりも効率的に条件付き集計を処理します。
小さなパフォーマンス評価システムをゼロから構築してみましょう。スプレッドシートの構成は次のとおりとします。
両方の列に基づいて、列Dに「Excellent」「Good」「Needs Improvement」「At Risk」のいずれかの評価を表示したいとします。
ステップ1:ルールを定義します。Excellent=タスク数≥50かつ品質≥85。Good=タスク数≥40かつ品質≥70。Needs Improvement=タスク数≥30またはタスク数≥60。At Risk=それ以外すべて。
ステップ2:D2に数式を入力します。
=IF(AND(B2>=50, C2>=85), "Excellent",
IF(AND(B2>=40, C2>=70), "Good",
IF(OR(B2>=30, C2>=60), "Needs Improvement",
"At Risk")))
ステップ3:すべての従業員について、列D全体に数式をコピーします。
ステップ4:列Dに条件付き書式を適用して、各評価が異なる色で表示されるようにします。Excellentは緑、Goodは黄色、Needs Improvementはオレンジ、At Riskは赤。これにより、各セルを読まなくてもスプレッドシートが一目でコミュニケーションできるようになります。
複数のAND/OR条件を持つネストIFは、特に業務ルールが5段階以上の場合やテキストと数値の条件を組み合わせる場合、ゼロから書くのが本当に困難になることがあります。たとえば「注文金額が5,000ドルを超え、かつ顧客がプレミアム層である場合は高優先度、どちらか一方が該当する場合は中優先度、それ以外は低優先度にフラグを立てる」といった内容を平易な言葉で説明すれば、GPTExcelのようなAIを活用した数式ツールが正しい数式を即座に生成し、括弧の数を数えたり条件の順序をデバッグしたりする試行錯誤を省くことができます。
ExcelはIF関数を最大64レベルまでネストすることをサポートしています。実際には、3〜4レベルを超えると読み書きや保守が難しくなります。条件が多い場合は、IFSやSWITCHに切り替えるか、VLOOKUPやINDEX MATCHと組み合わせた参照テーブルを使ってロジックを再構成しましょう。
どちらも複数の条件をテストして異なる結果を返します。主な違いは構文にあります。ネストIFは各レベルに閉じ括弧が必要で、深くネストされた構造になります。IFSはすべての条件と結果のペアをフラットな順序で並べるため、読み書きや監査が容易です。IFSはExcel 2019、Excel 2021、およびMicrosoft 365で使用できます。
はい。真の場合の引数と偽の場合の引数、またはその両方に、他の関数を含む任意の有効なExcel式を指定できます。たとえば=IF(A2>0, SQRT(A2), 0)は正の数の平方根を返し、それ以外はゼロを返します。これにより、IFは計算をいつ実行するかを制御する柔軟なラッパーとなります。
第3引数を完全に省略して=IF(A2>10, "High")と書くと、Excelはデフォルトでブール値のFALSEを返します。代わりに空のセルを返すには、偽の場合の引数として空の文字列を明示的に含めてください。=IF(A2>10, "High", "")
ExcelのTEXT関数が書式コードを使って数値、日付、時刻を書式付きテキスト文字列に変換する方法を、実際の例と実践的なユースケースを交えて解説します。
ExcelのIF関数の仕組み、複数のIFをネストする方法、そしてより読みやすいロジックを実現するIFSやSWITCHなどの最新の代替関数について解説します。
ExcelのSUMIFとSUMIFSをマスターして、1つまたは複数の条件に基づいてデータを合計する方法を、実際の構文・実践的な例・ステップバイステップの解説で学びましょう。