STEP 21:ネストしたIF関数(複数条件)

🔀 Step 21: ネストしたIF関数(複数条件)

3段階以上の条件分岐をマスター!AND/OR関数との組み合わせも

📋 このステップで学ぶこと

  • IF関数のネスト(入れ子)とは
  • 3段階・4段階の条件分岐
  • AND関数との組み合わせ(〜かつ〜)
  • OR関数との組み合わせ(〜または〜)
  • 成績判定・割引計算の実例

🎯 1. ネストしたIF関数とは

なぜネストが必要なのか

STEP 20で学んだIF関数は、「もし〜なら A、そうでなければ B」という2択でした。でも実務では「優・良・可」のような3択以上の判定が必要なことがあります。

🏠 日常生活に例えると…

ネストは「入れ子」という意味です。
  • 普通のIF = 「傘を持っていくか、持っていかないか」(2択)
  • ネストしたIF = 「大雨なら長靴、小雨なら傘、晴れなら何もなし」(3択)
選択肢が3つ以上のときは、IFの中にIFを入れます。
🔑 ネスト(入れ子)の意味

ネストとは、IF関数の中にIF関数を入れることです。マトリョーシカ人形のように、箱の中に箱を入れるイメージです。

ネストのイメージ図

📊 箱の中に箱を入れる感じ(※横スクロールできます)

【ネストのイメージ】 ┌─────────────────────────────────────────┐ │ 外側のIF │ │ 「80点以上?」 │ │ ├─ はい → 「優」 │ │ │ │ │ └─ いいえ → ┌───────────────────┐ │ │ │ 内側のIF │ │ │ │ 「60点以上?」 │ │ │ │ ├─ はい → 「良」 │ │ │ │ └─ いいえ → 「可」│ │ │ └───────────────────┘ │ └─────────────────────────────────────────┘ 最初の条件(80点以上)に当てはまらなかったら、 次の条件(60点以上)を確認する。

📝 2. 3段階の条件分岐

基本の書き方

📊 3段階IFの構文(※横スクロールできます)

=IF(条件1, 結果1, IF(条件2, 結果2, 結果3)) 【読み方】 もし 条件1なら → 結果1 そうでなくて、条件2なら → 結果2 それ以外なら → 結果3 【例:成績判定】 =IF(A1>=80, “優”, IF(A1>=60, “良”, “可”)) 80点以上 → 「優」 60点以上80点未満 → 「良」 60点未満 → 「可」

動作を確認しよう

📋 点数ごとの判定結果(※横スクロールできます)

【A1 = 90 のとき】 =IF(A1>=80, “優”, IF(A1>=60, “良”, “可”)) Step 1: 90>=80 を判定 → TRUE(真) Step 2: 結果1の「優」を返す → 結果: “優” 【A1 = 70 のとき】 Step 1: 70>=80 を判定 → FALSE(偽) Step 2: 次のIF関数へ進む Step 3: 70>=60 を判定 → TRUE(真) Step 4: 結果2の「良」を返す → 結果: “良” 【A1 = 50 のとき】 Step 1: 50>=80 を判定 → FALSE(偽) Step 2: 次のIF関数へ進む Step 3: 50>=60 を判定 → FALSE(偽) Step 4: 結果3の「可」を返す → 結果: “可”
⚠️ 条件の順番が超重要!

条件は上から順に判定されます。最初の条件が満たされたら、それ以降の条件は見ません。だから厳しい条件(大きい数字)を先に書きます。

❌ 間違い:=IF(A1>=60, “良”, IF(A1>=80, “優”, “可”))
→ 80点の人も「60点以上」に当てはまって「良」になってしまう!

✅ 正解:=IF(A1>=80, “優”, IF(A1>=60, “良”, “可”))
→ 80点以上を先にチェックするので正しく判定される

🔢 3. 4段階以上の条件分岐

4段階の例

📊 4段階の成績判定(※横スクロールできます)

【評価基準】 90点以上 → 「秀」 80点以上 → 「優」 60点以上 → 「良」 60点未満 → 「可」 【数式】 =IF(A1>=90, “秀”, IF(A1>=80, “優”, IF(A1>=60, “良”, “可”))) 【分解して理解】 =IF(A1>=90, “秀”, ← 90点以上なら「秀」 IF(A1>=80, “優”, ← そうでなくて80点以上なら「優」 IF(A1>=60, “良”, “可”) ← そうでなくて60点以上なら「良」、それ以外は「可」 ) )

5段階の例(S, A, B, C, D)

📊 5段階評価(※横スクロールできます)

【評価基準】 90点以上 → S 80点以上 → A 70点以上 → B 60点以上 → C 60点未満 → D 【数式】 =IF(A1>=90, “S”, IF(A1>=80, “A”, IF(A1>=70, “B”, IF(A1>=60, “C”, “D”)))) 【カッコの数】 IFが4つ → 閉じカッコも4つ必要 ↓ここに4つ =IF(A1>=90, “S”, IF(A1>=80, “A”, IF(A1>=70, “B”, IF(A1>=60, “C”, “D”))))
💡 カッコの数を確認するコツ

  • IFの数 = 閉じカッコ「)」の数
  • 3段階 → IFが2個 → 「)」が2個
  • 4段階 → IFが3個 → 「)」が3個
  • 5段階 → IFが4個 → 「)」が4個
Excelでは、カーソルを動かすと対応するカッコがハイライトされます。
⚠️ ネストの制限と推奨

  • Excelでは最大64段階までネストできます
  • でも実務では5段階以内に抑えましょう
  • それ以上は読みにくく、間違えやすくなります
  • 複雑な場合は別の方法(VLOOKUPやIFS関数)を検討

🔗 4. AND関数との組み合わせ(〜かつ〜)

AND関数とは

AND関数は、すべての条件が真のときだけTRUEを返します。「〜かつ〜」の条件を作るときに使います。

🏠 日常生活に例えると…

AND = 「〜かつ〜」「〜で、さらに〜」

「会員かつ5000円以上で送料無料」
→ 会員であること5000円以上であること、両方満たす必要がある

📝 AND関数の基本(※横スクロールできます)

=AND(条件1, 条件2, 条件3, …) 【例】 =AND(A1>=60, B1>=70) → A1が60以上 かつ B1が70以上 のときだけ TRUE 【判定結果】 A1=80, B1=75 → TRUE(両方OK) A1=80, B1=60 → FALSE(B1がNG) A1=50, B1=75 → FALSE(A1がNG) A1=50, B1=60 → FALSE(両方NG)

IFとANDの組み合わせ

📊 合格判定の例(※横スクロールできます)

【条件】 筆記試験60点以上 かつ 実技試験70点以上 で合格 【数式】 =IF(AND(A1>=60, B1>=70), “合格”, “不合格”) 【分解】 AND(A1>=60, B1>=70) → 両方の条件を満たすか判定 IF(…, “合格”, “不合格”) → 満たせば合格、満たさなければ不合格 【具体例】 A列(筆記) B列(実技) 結果 1 80 75 合格(両方OK) 2 80 60 不合格(実技が足りない) 3 50 75 不合格(筆記が足りない) 4 50 60 不合格(両方足りない)

実用例:会員割引

📊 会員かつ1万円以上で10%引き(※横スクロールできます)

【条件】 会員 かつ 10000円以上 → 10%引き それ以外 → 定価 【数式】 =IF(AND(A2=”会員”, B2>=10000), B2*0.9, B2) 【表】 A列(会員区分) B列(定価) C列(支払額) 2 会員 15000 =IF(AND(A2=”会員”,B2>=10000),B2*0.9,B2) 3 会員 5000 =IF(AND(A3=”会員”,B3>=10000),B3*0.9,B3) 4 非会員 15000 =IF(AND(A4=”会員”,B4>=10000),B4*0.9,B4) 【結果】 C2: 13500(会員かつ1万以上 → 10%引き) C3: 5000(会員だけど1万未満 → 定価) C4: 15000(非会員 → 定価)

🔀 5. OR関数との組み合わせ(〜または〜)

OR関数とは

OR関数は、いずれか1つでも真ならTRUEを返します。「〜または〜」の条件を作るときに使います。

🏠 日常生活に例えると…

OR = 「〜または〜」「〜か、あるいは〜」

「会員または5000円以上で送料無料」
→ 会員であること5000円以上であること、どちらかを満たせばOK

📝 OR関数の基本(※横スクロールできます)

=OR(条件1, 条件2, 条件3, …) 【例】 =OR(A1=”東京”, A1=”大阪”, A1=”名古屋”) → A1が東京、大阪、名古屋のいずれかなら TRUE 【判定結果】 A1=”東京” → TRUE A1=”大阪” → TRUE A1=”札幌” → FALSE(どれにも当てはまらない)

IFとORの組み合わせ

📊 送料無料判定の例(※横スクロールできます)

【条件】 会員 または 5000円以上 なら送料無料(0円) それ以外 → 送料500円 【数式】 =IF(OR(A1=”会員”, B1>=5000), 0, 500) 【具体例】 A列(会員区分) B列(金額) 結果 1 会員 3000 0円(会員だから無料) 2 非会員 6000 0円(5000円以上だから無料) 3 非会員 3000 500円(どちらも満たさない)

実用例:VIP顧客判定

📊 売上100万以上 または 会員歴5年以上でVIP(※横スクロールできます)

【条件】 売上100万以上 または 会員歴5年以上 → VIP それ以外 → 一般 【数式】 =IF(OR(A2>=1000000, B2>=5), “VIP”, “一般”) 【表】 A列(売上) B列(会員歴) C列(区分) 2 1200000 3 VIP(売上が100万以上) 3 500000 6 VIP(会員歴が5年以上) 4 500000 3 一般(どちらも満たさない)

📊 6. ANDとORの比較

同じ条件での違い

関数 意味 TRUEになる条件
AND(A, B) A かつ B 両方がTRUEのときだけ
OR(A, B) A または B どちらか1つでもTRUEなら

📊 判定結果の違い(※横スクロールできます)

【条件A】会員である 【条件B】5000円以上 会員区分 金額 AND(A,B) OR(A,B) 1 会員 6000 TRUE TRUE 2 会員 3000 FALSE TRUE 3 非会員 6000 FALSE TRUE 4 非会員 3000 FALSE FALSE 【解説】 AND: 両方満たす必要あり → 1だけTRUE OR: どちらか1つでOK → 1, 2, 3がTRUE
🔗 AND(かつ)を使う場面

「両方の条件を満たす必要がある」とき
  • 会員かつ1万円以上で割引
  • 筆記かつ実技が合格点で合格
  • 在庫ありかつ入金確認済みで発送
🔀 OR(または)を使う場面

「どちらか一方を満たせばOK」のとき
  • 会員または5千円以上で送料無料
  • 土曜または日曜なら休業
  • 売上高または会員歴でVIP判定

🎓 7. ANDとORの組み合わせ

複雑な条件の例

ANDとORを組み合わせると、さらに複雑な条件が作れます。

📊 複雑な送料計算(※横スクロールできます)

【条件】 (会員 かつ 1万円以上) または (非会員 かつ 3万円以上) なら送料無料 【数式】 =IF(OR(AND(A1=”会員”,B1>=10000), AND(A1=”非会員”,B1>=30000)), 0, 500) 【分解して理解】 AND(A1=”会員”, B1>=10000) → 会員かつ1万以上 AND(A1=”非会員”, B1>=30000) → 非会員かつ3万以上 OR(上記2つ) → どちらかを満たせば 【判定結果】 会員, 15000円 → 0円(会員かつ1万以上 ✓) 会員, 5000円 → 500円(会員だけど1万未満 ✗) 非会員, 35000円 → 0円(非会員かつ3万以上 ✓) 非会員, 20000円 → 500円(非会員だけど3万未満 ✗)
⚠️ 複雑になりすぎに注意

ANDとORを何重にも組み合わせると、読みにくく間違えやすくなります。
  • 数式が長くなりすぎたら、別のセルで中間判定を行う
  • 例:C列で「会員かつ1万以上か?」を判定し、D列でその結果を使う
  • コメントを残して、何を判定しているか説明する

💼 8. 実用例

例1:3科目すべて合格で総合合格

📊 全科目60点以上で合格(※横スクロールできます)

【条件】 国語・数学・英語の3科目すべてが60点以上で合格 【表】 A列 B列 C列 D列 E列 1 名前 国語 数学 英語 判定 2 田中 80 75 90 ? 3 佐藤 90 85 50 ? 4 鈴木 70 65 80 ? 【E2の数式】 =IF(AND(B2>=60, C2>=60, D2>=60), “合格”, “不合格”) 【結果】 E2: 合格(すべて60点以上) E3: 不合格(英語が50点で不足) E4: 合格(すべて60点以上)

例2:ボーナスランク判定

📊 売上と新規顧客数でランク判定(※横スクロールできます)

【条件】 売上200万以上 かつ 新規顧客10件以上 → ランクS(基本給×3) 売上100万以上 かつ 新規顧客5件以上 → ランクA(基本給×2) それ以外 → ランクB(基本給×1) 【表】 A列(売上) B列(新規) C列(基本給) D列(ボーナス) 2 2500000 12 300000 ? 3 1500000 8 300000 ? 4 800000 3 300000 ? 【D2の数式】 =IF(AND(A2>=2000000,B2>=10), C2*3, IF(AND(A2>=1000000,B2>=5), C2*2, C2)) 【結果】 D2: 900000(ランクS: 300000×3) D3: 600000(ランクA: 300000×2) D4: 300000(ランクB: 300000×1)

例3:在庫状況の判定

📊 在庫数に応じたステータス表示(※横スクロールできます)

【条件】 在庫100個以上 → 「在庫充分」 在庫10個以上 → 「在庫少」 在庫1個以上 → 「残りわずか」 在庫0個 → 「在庫切れ」 【数式】 =IF(A1>=100, “在庫充分”, IF(A1>=10, “在庫少”, IF(A1>=1, “残りわずか”, “在庫切れ”))) 【判定結果】 A1=150 → 在庫充分 A1=50 → 在庫少 A1=5 → 残りわずか A1=0 → 在庫切れ

⚠️ 9. よくあるエラーと注意点

間違い1:カッコの対応が取れていない

❌ カッコが足りない例(※横スクロールできます)

【間違い】 =IF(A1>=80, “優”, IF(A1>=60, “良”, “可”) ↑ 閉じカッコが1つ足りない 【正しい】 =IF(A1>=80, “優”, IF(A1>=60, “良”, “可”)) ↑ カッコが2つ必要 【確認方法】 IFの数 = 閉じカッコの数 IF が 2個 → ) も 2個必要

間違い2:条件の順番が逆

❌ 緩い条件が先にある例(※横スクロールできます)

【間違い】 =IF(A1>=60, “良”, IF(A1>=80, “優”, “可”)) → 80点の人も「60点以上」に当てはまって「良」になる! 【正しい】 =IF(A1>=80, “優”, IF(A1>=60, “良”, “可”)) → 厳しい条件(大きい数字)を先に書く

間違い3:ANDの書き方が間違い

❌ ANDを関数として書いていない例(※横スクロールできます)

【間違い】 =IF(A1>=60 AND B1>=70, “合格”, “不合格”) ↑ ANDは関数なので()が必要 【正しい】 =IF(AND(A1>=60, B1>=70), “合格”, “不合格”) ↑ AND(条件1, 条件2) の形で書く
💡 エラーを防ぐコツ

  • 複雑な数式は少しずつ追加して動作確認
  • カッコの数を数えて確認
  • 条件は厳しい方を先に書く
  • ANDとORは関数として書く(カッコを忘れずに)

📝 練習問題

練習 1
初級

3段階の成績判定を作ってください

80点以上「優」、60点以上「良」、60点未満「可」

解答:

=IF(A1>=80, "優", IF(A1>=60, "良", "可"))

確認:

  • A1=90 → 優
  • A1=70 → 良
  • A1=50 → 可
練習 2
初級

AND関数を使った判定を作ってください

A1が60点以上 かつ B1が70点以上 なら「合格」、そうでなければ「不合格」

解答:

=IF(AND(A1>=60, B1>=70), "合格", "不合格")

確認:

  • A1=80, B1=75 → 合格
  • A1=80, B1=60 → 不合格(B1が70未満)
  • A1=50, B1=75 → 不合格(A1が60未満)
練習 3
中級

4段階の評価を作ってください

90点以上「秀」、80点以上「優」、60点以上「良」、60点未満「可」

解答:

=IF(A1>=90, "秀", IF(A1>=80, "優", IF(A1>=60, "良", "可")))

確認:

  • A1=95 → 秀
  • A1=85 → 優
  • A1=70 → 良
  • A1=50 → 可
練習 4
中級

OR関数を使った送料計算を作ってください

A1が「会員」または B1が5000円以上 なら送料0円、そうでなければ500円

解答:

=IF(OR(A1="会員", B1>=5000), 0, 500)

確認:

  • 会員, 3000円 → 0円
  • 非会員, 6000円 → 0円
  • 非会員, 3000円 → 500円
練習 5
上級

3科目すべてが60点以上で合格の判定を作ってください

A列 B列 C列 D列 E列 1 名前 国語 数学 英語 判定 2 田中 80 75 90 ? 3 佐藤 90 85 50 ?

解答:

E2に =IF(AND(B2>=60, C2>=60, D2>=60), "合格", "不合格")

E2をE3にコピー

結果:

  • E2: 合格(すべて60点以上)
  • E3: 不合格(英語が50点)
練習 6
上級

会員かつ10000円以上で10%引き、それ以外は定価の計算式を作ってください

A列 B列 C列 1 会員区分 定価 支払額 2 会員 15000 ? 3 会員 5000 ? 4 非会員 15000 ?

解答:

C2に =IF(AND(A2="会員", B2>=10000), B2*0.9, B2)

C2をC3、C4にコピー

結果:

  • C2: 13500(会員かつ1万以上 → 10%引き)
  • C3: 5000(会員だけど1万未満 → 定価)
  • C4: 15000(非会員 → 定価)

📝 Step 21 のまとめ

✅ このステップで学んだこと
  • IF関数のネストで3段階以上の条件分岐ができる
  • 厳しい条件を先に書くのがコツ
  • AND関数:すべて真のとき真(〜かつ〜)
  • OR関数:1つでも真なら真(〜または〜)
  • ANDとORを組み合わせて複雑な条件も作れる
  • カッコの数に注意(IFの数 = 閉じカッコの数)
  • 複雑な数式は少しずつ追加して動作確認
🎯 次のステップの予告

ネストしたIF関数をマスターしました!次のStep 22では、「CONCATENATE/TEXTJOIN関数(文字列結合)」を学びます。複数の文字列を1つにまとめる関数です。

❓ よくある質問

Q1: IF関数は何段階までネストできますか?
Excelでは最大64段階ですが、実務では5段階以内が推奨です。それ以上になると読みにくく、メンテナンスが大変になります。複雑な条件は別のセルで中間判定を行うか、VLOOKUP関数やIFS関数を検討しましょう。
Q2: カッコの対応が合っているか確認する方法は?
Excelでは数式バーでカーソルを動かすと、対応するカッコがハイライトされます。また、「IFの数 = 閉じカッコの数」というルールで確認できます。3段階ならIF2つ、閉じカッコ2つです。
Q3: ANDとORを同時に使うときの順番は?
内側から外側に向かって評価されます。例:OR(AND(A,B), AND(C,D))は、まずAND(A,B)とAND(C,D)を評価し、その結果をORで評価します。カッコをしっかり使って、意図した順序になるようにしましょう。
Q4: 5段階以上の条件がある場合はどうすればいいですか?
いくつかの方法があります:
  • IFS関数(Excel 2019以降/Googleスプレッドシート):複数の条件を順番に評価
  • VLOOKUP関数:別のセルに条件表を作って参照
  • 中間判定:別のセルで段階的に判定
Q5: AND条件が3つ以上ある場合は?
AND関数には複数の条件を指定できます。例:AND(A1>=60, B1>=70, C1>=80, D1>=90)のように、カンマで区切ってどんどん条件を追加できます。すべての条件が真のときだけTRUEが返されます。
Q6: NOT関数も使えますか?
はい、使えます。NOT関数は条件を反転させます。NOT(A1="会員")は「会員でない」という意味です。ただし、A1<>"会員"と書いた方が分かりやすい場合が多いです。
Q7: エラーが出たらどうすればいいですか?
確認するポイント:
  1. カッコの数は合っているか
  2. 条件式は正しいか(>=, =, “”など)
  3. 文字列は””で囲んでいるか
  4. カンマは正しい位置にあるか
複雑な数式は、いきなり全部書かずに、少しずつ追加して動作確認しながら作ると間違いが少なくなります。
📝

学習メモ

Excel・Googleスプレッドシート完全マスター - Step 21

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE