IF関数のネスト(AND関数・OR関数)
前回のIF関数は「1つの条件で2分岐」でした。
実務では「もう少し複雑な条件」を扱いたい場面が出てきます。
- 「国語80点以上 かつ 数学80点以上」なら合格
- 「営業部 または 開発部」なら対象者
- 「80点以上はA、60点以上はB、それ以外はC」のように3段階以上の判定
これを実現するのが、今回学ぶ AND関数 / OR関数 と、IF関数のネスト(入れ子) です。
まずは AND関数と OR関数から
IF関数の中で使うことが多い、論理関数の代表選手です。
AND関数
=AND(条件1, 条件2, ...)
「すべての条件を満たす場合に TRUE」を返します。1つでも満たさない条件があれば FALSE。
「かつ」の関係ですね。
OR関数
=OR(条件1, 条件2, ...)
「いずれかの条件を満たす場合に TRUE」を返します。すべて満たさないときだけ FALSE。
「または」の関係です。
どちらも単独で使うこともできますが、IF関数の「論理式」部分に組み込んで使う のが、もっとも実用的な使い方です。
IF と AND の組み合わせ
「国語80点以上 かつ 数学80点以上」なら合格、と判定したいとき。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 名前 | 国語 | 数学 | 判定 |
| 2 | 田中 | 85 | 92 | ★ |
| 3 | 鈴木 | 78 | 85 | |
| 4 | 佐藤 | 90 | 68 | |
| 5 | 山田 | 82 | 88 | |
| 6 | 高橋 | 70 | 75 |
セルD2 ★ に次の数式を入れます。
=IF(AND(B2>=80, C2>=80), "合格", "不合格")
論理式の部分に AND(B2>=80, C2>=80) が入っています。両方の条件を満たすときだけ「合格」 になります。
下にコピーすると、
- 田中(85,92) → 両方80以上 → 合格
- 鈴木(78,85) → 国語が80未満 → 不合格
- 佐藤(90,68) → 数学が80未満 → 不合格
- 山田(82,88) → 両方80以上 → 合格
- 高橋(70,75) → どちらも80未満 → 不合格
「両方クリア」のハードルは、思ったより高いですね。実務でも「全条件クリア」を求めるシーンは多いので、ANDは頻出です。
ネストの操作
では、実際に Excel で見ていきましょう。
まず、該当のセルにIF関数を使用します。IF関数の引数ダイアログを出したら、まず AND() 関数を手入力で行ってください。ネストは、引数ダイアログに関数を直接入力するのが一番シンプルです。

その後、数式バーに移動し、AND関数をクリックします。誤操作を防ぐために、() の中にカーソルが入るようにクリックしましょう。

すると、関数の引数ダイアログが切り替わります。ネスト操作は、このように数式バーの関数をクリックすることでスイッチすることができます。
関数の引数ダイアログは2つ以上出すことができないので、この操作で切り替えるように覚えてください。

AND条件が完成しました。
ここで、ほっとしてOKボタンを押してしまいがちなのですが、まだIF関数の条件が完成していません。そのため、ここでOKボタンを押すと、数式が未完成のまま終わってしまいます。

ですので、数式バー内の IF をクリックしてください。

ダイアログが戻るので、これで条件を完成させて終了です。

以上、ネストの方法でした。
IF と OR の組み合わせ
「営業部 または 開発部」なら対象、と判定したいとき。
| A | B | C | |
|---|---|---|---|
| 1 | 社員名 | 部署 | 評価 |
| 2 | 田中 | 営業部 | ★ |
| 3 | 鈴木 | 人事部 | |
| 4 | 佐藤 | 開発部 | |
| 5 | 山田 | 経理部 | |
| 6 | 高橋 | 営業部 |
セルC2 ★ に次の数式を入れます。
=IF(OR(B2="営業部", B2="開発部"), "対象", "")
論理式に OR(B2="営業部", B2="開発部") が入っています。どちらかに該当すれば「対象」 になります。
- 田中(営業部) → 対象
- 鈴木(人事部) → ""(空白)
- 佐藤(開発部) → 対象
- 山田(経理部) → ""
- 高橋(営業部) → 対象
「どちらかでOK」なので、ANDより条件が緩くなります。該当者をリストアップする ような用途で活躍します。
IF関数のネスト
「3段階以上の判定」をしたいときに使うのが、IF関数のネスト(入れ子) です。
「IF関数の中に、もう1つIF関数を入れる」というイメージ。たとえば、
- 80点以上 → A
- 60点以上 → B
- それ以外 → C
これを実現するには、こう書きます。
=IF(B2>=80, "A", IF(B2>=60, "B", "C"))
読み方は次のようになります。
ステップ1:もし B2 が80以上なら 「A」を返す
ステップ2:そうでなければ、もし B2 が60以上なら 「B」を返す
ステップ3:それでもなければ「C」を返す
「偽の場合」のところに、もう1つIF関数を入れる。これがネストの考え方です。
| A | B | C | |
|---|---|---|---|
| 1 | 名前 | 点数 | 評価 |
| 2 | 田中 | 85 | ★ |
| 3 | 鈴木 | 72 | |
| 4 | 佐藤 | 90 | |
| 5 | 山田 | 55 | |
| 6 | 高橋 | 65 |
C2 に上記の数式を入れて下にコピーすると、
- 田中(85) → A
- 鈴木(72) → B
- 佐藤(90) → A
- 山田(55) → C
- 高橋(65) → B
順番に判定されていく様子が見えますね。
ネストの注意点
1. 括弧の数に注意
ネストすると括弧が増えます。「IF(... , IF(... , ... , ...))」のように、閉じ括弧が複数並ぶ ことになります。
Excel は数式バーで 対応する括弧を色分け してくれるので、それを見ながら入力すると間違えにくいです。
2. 判定の順序
IF関数のネストは、上から順に判定 されていきます。先ほどの例で「80以上 → A」を先に書いているのは、これが先に評価されてほしいからです。
もし順序を間違えて「60以上 → B」を先に書くと、85点の人も「60以上」に引っかかって「B」になってしまいます。
厳しい条件から緩い条件へ、上から順に並べる のが基本です。判定は上から流れていく、と覚えてください。
3. 深いネストは読みにくい
3段階くらいまでなら良いですが、4段階・5段階とネストが深くなると、数式が長く・読みにくくなります。
実は、こうした多段階の判定には、次回学ぶ IFS関数 のほうが向いています。「IF関数のネストでも書けるけど、IFSのほうがスッキリ書ける」というケースが増えてきます。
ちょっとした実務シーン
こちらもExcelファイルに収めましたので、練習してみてください。
1. 売上ランク判定
=IF(B2>=1000000, "S", IF(B2>=500000, "A", IF(B2>=100000, "B", "C")))
100万以上S、50万以上A、10万以上B、それ未満C。ネストを使って4段階に分けています。
2. 複合条件での値引き
=IF(AND(B2="会員", C2>=5000), "10%引", "")
「会員 かつ 5000円以上」なら10%引、それ以外は値引きなし。IFとANDの組み合わせ。
3. 出勤対象者の判定
=IF(OR(B2="正社員", B2="契約社員"), "出勤", "在宅可")
「正社員 または 契約社員」なら出勤、それ以外(パート・派遣など)は在宅可。
まとめ
- AND関数:すべての条件を満たすときTRUE(「かつ」)
- OR関数:いずれかの条件を満たすときTRUE(「または」)
- IF関数の論理式に AND / OR を組み込んで使うのが定番
- IF関数の ネスト で3段階以上の判定が可能
- 「偽の場合」にもう1つIFを入れる、が基本
- 判定の順序に注意(上から順に評価される)
- 多段階の判定は、次回 IFS関数 のほうが読みやすい
ショートカット
※このレッスンに対応するショートカットはありません。