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点以上」なら合格、と判定したいとき。
:::excel
A1=名前
B1=国語
C1=数学
D1=判定
A2=田中
B2=85
C2=92
D2=★
A3=鈴木
B3=78
C3=85
A4=佐藤
B4=90
C4=68
A5=山田
B5=82
C5=88
A6=高橋
B6=70
C6=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 の組み合わせ
「営業部 または 開発部」なら対象、と判定したいとき。
:::excel
A1=社員名
B1=部署
C1=評価
A2=田中
B2=営業部
C2=★
A3=鈴木
B3=人事部
A4=佐藤
B4=開発部
A5=山田
B5=経理部
A6=高橋
B6=営業部
:::
セル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関数を入れる。これがネストの考え方です。
:::excel
A1=名前
B1=点数
C1=評価
A2=田中
B2=85
C2=★
A3=鈴木
B3=72
A4=佐藤
B4=90
A5=山田
B5=55
A6=高橋
B6=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関数 のほうが読みやすい
ショートカット
※このレッスンに対応するショートカットはありません。