LEVEL 5 データを整理・抽出する 中級
Lesson 045

IF関数について②(ネスト)

練習用Excelファイル lesson045-practice.xlsx

練習用ファイルは、パソコンからダウンロードしてください。

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() 関数を手入力で行ってください。ネストは、引数ダイアログに関数を直接入力するのが一番シンプルです。

IF関数にAND関数を手入力
IF関数にAND関数を手入力

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

数式バーのAND関数をクリック
数式バーのAND関数をクリック

すると、関数の引数ダイアログが切り替わります。ネスト操作は、このように数式バーの関数をクリックすることでスイッチすることができます。

関数の引数ダイアログは2つ以上出すことができないので、この操作で切り替えるように覚えてください。

関数の引数ダイアログが切り替わる
関数の引数ダイアログが切り替わる

AND条件が完成しました。

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

条件を入力後、OKボタンは押さない
条件を入力後、OKボタンは押さない

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

数式バーでIFをクリック
数式バーで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関数 のほうが読みやすい

ショートカット

※このレッスンに対応するショートカットはありません。

次のLessonへ Lesson 046 IFS関数について