「IF関数くらい、余裕でしょう」
そう思っていたのに、気づいたら数式バーの中に IF が5つも6つも入れ子になっていて、自分でも何を判定しているのか分からなくなっていた——そんな経験はありませんか。
IF関数は、Excelの関数の中でもっとも早い段階で覚える関数の一つです。書き方もシンプルで、慣れるまでにそれほど時間はかかりません。ただ、実務で条件が増えていくたびに、そのシンプルさに甘えて条件をどんどん詰め込んでしまい、気づいたときには誰にも読めない数式になっている、ということがよく起こります。
「関数の使い方シリーズ」では、実務でよく使う関数を目的別に整理しています。今回は基本12関数の中でも使用頻度がとくに高いIF関数について、基本の書き方から、複数条件の扱い方、そして条件が増えすぎたときの整理の仕方まで、一通りまとめていきます。
1. IF関数とは
IF関数は、指定した条件が真(TRUE)か偽(FALSE)かによって、返す値を切り替える関数です。書式は次の通りです。
=IF(論理式, 真の場合, 偽の場合)
- 論理式:判定したい条件を指定します。
- 真の場合:条件が満たされたときに返す値を指定します。
- 偽の場合:条件が満たされないときに返す値を指定します。
たとえば、テストの点数が60点以上かどうかで「合格」「不合格」を判定したい場合、次のように書きます。
=IF(A1>=60, "合格", "不合格")
A1のセルの値が60以上であれば「合格」、そうでなければ「不合格」と表示されます。文字列を返す場合は、必ずダブルクォーテーション(”)で囲む必要がある点に注意してください。数値をそのまま返す場合は、クォーテーションは不要です。
2. 実務でよくある使用例
2-1. 予算超過をひと目でわかるようにする
=IF(B1>予算セル, "予算オーバー", "予算内")
経費や仕入れの管理表で、実績が予算を超えていないかを自動で判定させたいときによく使われます。条件付き書式と組み合わせて、予算オーバーのセルに色をつけると、資料としてもさらに見やすくなります。
2-2. 在庫が一定数を下回ったら発注アラートを出す
=IF(C1<10, "発注が必要です", "")
在庫数が10を下回ったときだけ「発注が必要です」と表示し、それ以外は何も表示しない、という使い方です。偽の場合の値を空の文字列(””)にしておくと、条件に当てはまらない行を無理に埋めずに済みます。
2-3. 評価ランクを自動で振り分ける
=IF(D1>=90, "S", IF(D1>=70, "A", IF(D1>=50, "B", "C")))
点数によって評価ランクを振り分ける例です。ここではIF関数を3段階入れ子(ネスト)にしています。基本的な考え方は「まず一番厳しい条件から順番に判定していく」というものです。90点以上をまず確認し、それに当てはまらなければ次に70点以上を確認する、という流れで絞り込んでいきます。
2-4. 割引率をまとめて判定する(AND関数との組み合わせ)
=IF(AND(I1="会員", J1>=10000), "20%引き", "割引なし")
会員であり、かつ購入金額が10,000円以上のときだけ20%引きを適用する、という例です。条件が複雑になりやすい割引・キャンペーンの判定も、AND関数と組み合わせることで1行の数式にまとめられます。この形に慣れておくと、次の章で扱うANDとORの使い分けにもスムーズに入っていけます。
3. 複数条件を1つの式で判定する:AND関数・OR関数
IF関数だけでも複数条件を判定できますが、「すべての条件を満たすかどうか」「どれか1つでも満たせばよいか」を判定したい場合は、AND関数・OR関数と組み合わせるのが基本です。
=IF(AND(E1>=60, F1>=60), "合格", "不合格")
E1とF1の両方が60以上のときだけ「合格」と表示します。ANDはすべての条件を満たしたときにTRUEを返し、1つでも満たさない条件があればFALSEを返します。
=IF(OR(G1="欠席", H1="遅刻"), "要確認", "問題なし")
G1が「欠席」またはH1が「遅刻」のどちらか一方でも当てはまれば「要確認」と表示します。ORは条件のどれか1つでも満たせばTRUEを返します。
ANDとORを使い分けられるようになると、IFのネストを増やさずに複数条件をすっきり表現できる場面がぐっと増えます。
4. IF関数でよくある間違い
4-1. 文字列を返すのにダブルクォーテーションを忘れる
=IF(A1>=60, 合格, 不合格)
このように文字列をクォーテーションで囲まずに書くと、Excelは「合格」「不合格」をセル名(名前付き範囲)だと解釈しようとして、エラーになります。文字列を返す場合は必ず”(半角のダブルクォーテーション)で囲む、というルールを徹底しておくと事故を防げます。
4-2. 比較演算子を間違える
「以上」のつもりで「>」だけを使ってしまい、実際には「より大きい」の意味になっていた、という間違いもよくあります。60点ちょうどの人を「合格」に含めたい場合は「>=」、含めたくない場合は「>」を使う、という違いを意識しておく必要があります。「=」と「>」を続けて書く順番(>=であって=>ではない)も、慣れないうちは間違えやすいポイントです。
4-3. 真の場合・偽の場合を逆に書いてしまう
条件を否定形で書いたとき(「不合格でなければ」のような書き方)に、真の場合と偽の場合が入れ替わっていることに気づかず、結果が丸ごと反転してしまうことがあります。数式を書き終えたら、必ずいくつかのパターンで実際の値を当てはめて、期待通りの結果が返ってくるかを確認する習慣をつけておくと安心です。
4-4. 数値と文字列の比較で意図しない結果になる
セルに入っている値が、見た目は数値でも実際には文字列として保存されている場合、数値としての比較(60以上かどうか、など)が正しく機能しないことがあります。IF関数自体は正しく書けているのに結果がおかしいときは、比較対象のセルが本当に数値として認識されているかを、まず確認してみてください。
4-5. 境界値をあいまいなまま数式に落とし込んでしまう
「だいたい60点くらいで合格ラインにしよう」という曖昧な合意のまま数式を書き始めると、後から「59点は合格?不合格?」と聞かれて、自分の書いた数式を確認し直す羽目になることがあります。境界値をIF関数に落とし込む前に、「60点ちょうどはどちらに含めるか」を関係者と具体的な数値で合意しておくと、後々の認識のズレを防げます。とくに複数人で管理する表では、この境界値の認識違いがそのまま集計ミスにつながりやすいので注意しておきたいポイントです。
4-6. 判定に使うセルが表の途中で書式・入力ルールが変わっている
IF関数そのものが正しく書けていても、判定に使っているセル範囲の書式や入力ルールが表の途中で変わっていると、意図しない結果が返ることがあります。たとえば、途中の行から金額の単位(円)がセルの中に文字として入力されるようになっていると、数値としての比較ができなくなり、IF関数の判定がすべて「偽の場合」に流れてしまう、といった事故につながります。IF関数を使う前提として、判定対象の列は形式を統一しておくことが欠かせません。
5. ネストが深くなりすぎたときの対処法
IF関数のネストは、条件が2〜3個程度であれば読みやすさに大きな問題はありません。ただ、条件が4個、5個と増えていくと、どこからどこまでが1つの条件のカッコなのかが分からなくなり、修正するたびに数式全体を壊さないか冷や冷やする、という状態になりがちです。
条件が多くなってきたと感じたら、次のような整理の仕方があります。
- 条件を書き出してから数式にする:いきなりExcel上で数式を書き始めるのではなく、紙やメモ帳に「条件1:◯◯なら△△」という形で先に書き出しておくと、数式に落とし込むときの間違いが減ります。
- IFS関数を使う(利用できるバージョンの場合):複数の条件を、ネストせずに順番に並べて書ける関数です。ただし古いバージョンのExcelでは使えないため、ファイルを共有する相手の環境によっては注意が必要です。
- 判定用の表を別に用意する:評価ランクの境界値のような固定的な条件は、別のセル範囲に一覧表としてまとめておき、VLOOKUPやXLOOKUPで参照する方法もあります。条件が変わったときも、数式ではなく表の数値を書き換えるだけで済むようになります。
すでにネストが読めなくなってしまった数式を目の前にしている場合は、いきなり書き直すのではなく、まず「今の数式が何を判定しているか」を1つずつ分解して確認するところから始めるのが安全です。この分解の具体的な手順については、以下の記事で詳しく扱っています。
IF関数のネストが読めない原因と解決法|実務で使える分解テクニック https://www.excel-laboratory.online/if-nest-fix/

6. エラー処理と組み合わせる
IF関数の中で別の関数(VLOOKUPなど)を使っていると、その関数がエラーを返したときに、IF関数の結果全体もエラーになってしまうことがあります。この場合はIFERROR関数と組み合わせて、エラーが出たときの表示をあらかじめ指定しておくと、資料としての見た目も安定します。IFERROR関数については、関数の使い方シリーズの中で改めて詳しく取り上げる予定です。
7. IF関数は単体で使うより、他の関数と組み合わせて力を発揮する
ここまで見てきた通り、IF関数は単独でも十分に便利ですが、実務ではAND・OR・IFERRORのほか、VLOOKUPやXLOOKUPと組み合わせて使う場面が非常に多い関数です。「検索して見つかった値を条件によって表示を変える」「合計や平均の結果によって次の処理を分岐させる」といった使い方は、IF関数と他の関数のどちらか一方だけを覚えていても実現できません。
どの関数をどんな目的で組み合わせればよいか迷ったときは、目的別に関数を整理した以下の記事もあわせて参考にしてみてください。
Excel関数の選び方がわかる|目的別によく使う関数の見つけ方 https://www.excel-laboratory.online/kansu-itiran/

よくある質問
Q. IF関数は何段階までネストできますか?
Excelの仕様上は複数段階のネストが可能ですが、実務での目安としては3段階程度までにとどめておくのが無難です。それ以上になる場合は、IFS関数や参照表を使う方法に切り替えることをおすすめします。
Q. 条件に一致するものが1つもない場合はどうなりますか?
すべての条件に当てはまらなかった場合の値は、一番最後の「偽の場合」の部分で指定した値が返されます。想定していない組み合わせが発生したときに気づけるよう、最後の偽の場合には「該当なし」のような、明らかにわかる文言を入れておくと安全です。
Q. IF関数と条件付き書式は、どう使い分ければよいですか?
セルの見た目(色や文字装飾)だけを変えたい場合は条件付き書式、セルに表示する値そのものを条件によって変えたい場合はIF関数、という使い分けが基本です。両方を組み合わせて、IF関数で判定した文字列に対してさらに条件付き書式で色をつける、という使い方もよく行われます。
まとめ
IF関数は書き方こそシンプルですが、条件が増えるほど「読みやすい数式」を保つ工夫が必要になる関数でもあります。
- 文字列を返すときはダブルクォーテーションを忘れない
- 比較演算子(以上・より大きい)の違いを意識する
- 複数条件はAND・ORを使って整理する
- ネストが深くなったら、書き出し・IFS関数・参照表への切り替えを検討する
一つひとつは難しいことではありません。条件が増えてきたときに「一度立ち止まって整理する」という習慣を持っておくだけで、IF関数まわりのトラブルはかなり防げるようになります。

コメント