メインコンテンツへスキップ
レッスン 6 / 12推定時間: 35

条件分岐:「もし〜なら」で賢い自動化

単純な自動化から一歩進んで、状況に応じて動作を変える「賢い自動化」を作りましょう。条件分岐を使えば、まるで人間のように判断して、最適な処理を選択する自動化が実現できます。

はじめに

これまでのレッスンで、自動化の基本的な流れを学んできました。

でも、現実の業務では「いつも同じ処理」というわけにはいきませんよね。

  • 金額によって承認者を変えたい
  • 時間帯によって通知方法を変えたい
  • 顧客のタイプによって対応を変えたい

今回は、このような「場合分け」を実現する条件分岐について学びます。

条件分岐をマスターすれば、あなたの自動化は「ただの機械的な処理」から「賢い秘書」へと進化します!

条件分岐は日常生活そのもの

朝の身支度での条件分岐

私たちは無意識に、たくさんの条件分岐をしています。

起床
↓
もし雨が降っていたら
  → 傘を持つ
そうでなければ
  → 傘は持たない
↓
もし寒かったら
  → コートを着る
そうでなければ
  → 薄着で出かける

買い物での条件分岐

スーパーで牛乳を見る
↓
もし賞味期限が3日以上あるなら
  → 買う
そうでなければ
  → もし半額なら
      → 買う
    そうでなければ
      → 買わない

このような「判断」を自動化に組み込むのが条件分岐です!

基本的な条件分岐

シンプルな「もし〜なら」

最も基本的な形:

もし [条件] なら
    [処理A]
そうでなければ
    [処理B]

実例1:メール自動返信

もし 営業時間内(9:00-18:00)なら
    「本日中に返信いたします」
そうでなければ
    「翌営業日に返信いたします」

実例2:在庫アラート

もし 在庫が10個以下なら
    発注アラートを送信
そうでなければ
    何もしない

条件分岐の基本構造

  • 必ず「Yes」と「No」の2つの道がある
  • 条件は明確に(曖昧さをなくす)
  • 「何もしない」も立派な処理

条件の種類

1. 数値の比較

もし 金額 > 10000 なら
もし 在庫 <= 5 なら
もし 温度 = 25 なら
もし 点数 >= 80 なら

記号の意味:
> :より大きい
< :より小さい
>= :以上
<= :以下
= :等しい
!= :等しくない

2. テキストの比較

もし 件名に「緊急」が含まれるなら
もし 部署が「営業部」なら
もし メールアドレスが「@gmail.com」で終わるなら
もし 名前が空欄なら

3. 日時の比較

もし 現在時刻が18:00以降なら
もし 今日が月末なら
もし 曜日が土曜日または日曜日なら
もし 期限まで3日以内なら

4. 真偽(Yes/No)の判定

もし ファイルが存在するなら
もし メールに添付ファイルがあるなら
もし ユーザーがログイン中なら
もし 処理が成功したなら

複数の条件を組み合わせる

AND条件(かつ)

すべての条件を満たす場合:

もし 平日 かつ 営業時間内 なら
    通常対応
そうでなければ
    時間外対応

実例:VIP顧客の特別対応

もし 購入金額が10万円以上 かつ 会員ランクがゴールド なら
    - 特別割引を適用
    - 優先配送
    - VIP担当者が対応
そうでなければ
    通常対応

OR条件(または)

いずれかの条件を満たす場合:

もし 土曜日 または 日曜日 なら
    休日料金
そうでなければ
    平日料金

実例:緊急対応の判定

もし 件名に「至急」を含む または 優先フラグがON なら
    - 即座に担当者へ通知
    - 上司にもCC
    - 30分以内の対応を目標
そうでなければ
    通常の順番で処理

NOT条件(〜でない)

条件を反転させる:

もし 承認済みでない なら
    承認依頼を送信
そうでなければ
    次の処理へ進む

多段階の条件分岐

IF-ELSE IF-ELSE構造

複数の条件を順番にチェック:

もし 金額が5万円以上なら
    部長承認
そうでなければ、もし 金額が1万円以上なら
    課長承認
そうでなければ、もし 金額が5千円以上なら
    主任承認
そうでなければ
    自動承認

実践例:顧客サポートの自動振り分け

受信メールの内容を確認

もし 「返品」「返金」を含むなら
    → カスタマーサポート部門へ
    → 優先度:高
    → SLA:24時間以内

そうでなければ、もし 「不具合」「故障」を含むなら
    → 技術サポート部門へ
    → 優先度:中
    → SLA:48時間以内

そうでなければ、もし 「見積」「料金」を含むなら
    → 営業部門へ
    → 優先度:中
    → SLA:翌営業日

そうでなければ、もし 「採用」「求人」を含むなら
    → 人事部門へ
    → 優先度:低
    → SLA:1週間以内

そうでなければ
    → 総合受付へ
    → 優先度:低
    → SLA:3営業日以内

ネストした条件分岐

条件の中に条件を入れる

もし 会員なら
    もし ゴールド会員なら
        20%割引
    そうでなければ、もし シルバー会員なら
        10%割引
    そうでなければ
        5%割引
そうでなければ(非会員)
    もし 初回購入なら
        初回限定3%割引
    そうでなければ
        割引なし

実践例:配送料の計算

もし 配送先が国内なら
    もし 離島なら
        もし 商品重量が10kg以上なら
            配送料 3,000円
        そうでなければ
            配送料 1,500円
    そうでなければ(本土)
        もし 商品金額が5,000円以上なら
            配送料無料
        そうでなければ
            配送料 500円
そうでなければ(海外)
    もし アジア圏なら
        配送料 5,000円
    そうでなければ
        配送料 10,000円

ネストの注意点

  • 深くなりすぎないように(3段階まで)
  • 複雑になったら分割を検討
  • 条件の優先順位を明確に
  • すべてのパターンを網羅

実践的な条件分岐パターン

パターン1:閾値による段階処理

在庫数をチェック

もし 在庫 = 0 なら
    - 「在庫切れ」表示
    - 購入ボタンを非表示
    - 入荷通知の登録を促す

そうでなければ、もし 在庫 <= 5 なら
    - 「残りわずか」表示
    - 赤文字で在庫数表示
    - カートに入れるを促す

そうでなければ、もし 在庫 <= 20 なら
    - 在庫数を表示
    - 通常の購入ボタン

そうでなければ
    - 「在庫あり」のみ表示
    - 通常の購入ボタン

パターン2:時間帯による処理切り替え

現在時刻を確認

もし 深夜(0:00-6:00)なら
    - メンテナンスモード
    - 緊急時のみ通知

そうでなければ、もし 早朝(6:00-9:00)なら
    - 静音モード
    - 重要な通知のみ

そうでなければ、もし 業務時間(9:00-18:00)なら
    - 通常モード
    - すべての通知ON

そうでなければ、もし 夜間(18:00-24:00)なら
    - 省エネモード
    - 通知をまとめて配信

パターン3:エラーハンドリング

ファイルのアップロードを受信

もし ファイルサイズが0なら
    エラー:「ファイルが空です」

そうでなければ、もし ファイルサイズが10MB以上なら
    エラー:「ファイルが大きすぎます」

そうでなければ、もし 拡張子が許可リストにないなら
    エラー:「このファイル形式は使用できません」

そうでなければ、もし ウイルスチェックでNGなら
    エラー:「セキュリティ上の問題があります」

そうでなければ
    - ファイルを保存
    - サムネイル作成
    - 完了通知

パターン4:優先順位による振り分け

タスクを受信

もし 締切が本日中 かつ 重要度が高 なら
    → 最優先キューへ
    → 担当者に即時通知

そうでなければ、もし 締切が3日以内 または 重要度が高 なら
    → 優先キューへ
    → 朝イチで通知

そうでなければ、もし 締切が1週間以内 なら
    → 通常キューへ
    → 定期通知に含める

そうでなければ
    → 低優先度キューへ
    → 週次レポートに含める

条件分岐の設計手法

ステップ1:すべてのパターンを洗い出す

例:会員種別による処理
- ゴールド会員
- シルバー会員  
- 一般会員
- 非会員
- (エラー:不明な会員種別)

ステップ2:優先順位を決める

1. エラーチェック(最初に)
2. 特殊ケース
3. 一般的なケース
4. デフォルト処理(最後に)

ステップ3:条件を明確に定義

曖昧:「売上が多い」
明確:「月間売上が100万円以上」

曖昧:「新しい顧客」
明確:「登録から30日以内」

ステップ4:テストケースを作る

テストパターン:
□ 境界値(ちょうど10,000円)
□ 最小値(0円)
□ 最大値(999,999円)
□ エラー値(マイナス、文字列)
□ 組み合わせ(複数条件)

よくある間違いと対策

間違い1:条件の重複

❌ 悪い例:
もし 年齢 >= 20 なら
もし 年齢 >= 18 なら  ← 20歳以上は届かない!

✅ 良い例:
もし 年齢 >= 20 なら
そうでなければ、もし 年齢 >= 18 なら

間違い2:条件の漏れ

❌ 悪い例:
もし 晴れ なら → 洗濯する
もし 曇り なら → 様子見
(雨の場合は?)

✅ 良い例:
もし 晴れ なら → 洗濯する
そうでなければ、もし 曇り なら → 様子見
そうでなければ → 部屋干し

間違い3:複雑すぎる条件

❌ 悪い例:
もし (A かつ B) または (C かつ D でない) かつ (E または F) なら

✅ 良い例:
# 条件を分解
条件1 = A かつ B
条件2 = C かつ Dでない
条件3 = E または F

もし 条件1 または (条件2 かつ 条件3) なら

今日のまとめ

条件分岐マスターの極意

  1. 基本は「もし〜なら、そうでなければ」
  2. AND、OR、NOTで複雑な条件も表現
  3. 多段階、ネストで細かい制御
  4. すべてのパターンを網羅する
  5. シンプルで分かりやすい条件を心がける

次回予告

次のレッスンでは、「繰り返し処理:大量のデータも怖くない」を学びます。

  • 同じ処理を自動で繰り返す方法
  • リストやデータ全体を処理する
  • 繰り返しと条件分岐の組み合わせ
  • 無限ループを防ぐ方法

条件分岐と繰り返しを組み合わせれば、どんな複雑な自動化も実現できるようになります!

チャレンジ問題

問題1:条件を整理しよう

以下の要件を条件分岐で表現してください:

「平日の9-18時は通常料金、それ以外は割増料金(1.5倍)。ただし、祝日は曜日に関係なく割増料金」

答えを見る
もし 祝日 なら
    割増料金(1.5倍)
そうでなければ、もし 平日 かつ 9:00-18:00 なら
    通常料金
そうでなければ
    割増料金(1.5倍)

ポイント:

  • 祝日チェックを最初に(優先度が高い)
  • 平日かつ時間内のみ通常料金
  • それ以外はすべて割増

問題2:ネストを解きほぐそう

以下の複雑な条件を、分かりやすく整理してください:

もし会員なら、もし購入金額5000円以上なら、もし誕生月なら30%OFF、
そうでなければ20%OFF、そうでなければ、もし誕生月なら20%OFF、
そうでなければ10%OFF、そうでなければ(非会員)、もし初回なら5%OFF
答えを見る
割引率の決定:

もし 会員 なら
    もし 購入金額5000円以上 なら
        もし 誕生月 なら
            30%OFF
        そうでなければ
            20%OFF
    そうでなければ(5000円未満)
        もし 誕生月 なら
            20%OFF
        そうでなければ
            10%OFF
そうでなければ(非会員)
    もし 初回購入 なら
        5%OFF
    そうでなければ
        割引なし

または、表形式で整理:

会員状態購入金額誕生月割引率
会員5000円以上30%
会員5000円以上×20%
会員5000円未満20%
会員5000円未満×10%
非会員初回-5%
非会員2回目以降-0%

問題3:実践設計

「問い合わせメールの自動返信」システムの条件分岐を設計してください。

要件:

  • 営業時間(平日9-18時)の判定
  • 問い合わせ内容による部署振り分け
  • 緊急度による優先順位付け
設計例を見る
メール受信
↓
もし 件名に「緊急」または「至急」を含む なら
    優先度 = 最高
    もし 営業時間内 なら
        即時担当者通知
    そうでなければ
        担当者の携帯に通知
そうでなければ
    優先度 = 通常

内容による振り分け:
もし 「返品」「交換」を含む なら
    → カスタマーサポート
    返信:「返品・交換について承りました」
    
そうでなければ、もし 「故障」「不具合」を含む なら
    → 技術サポート
    返信:「技術的なお問い合わせを承りました」
    
そうでなければ、もし 「見積」「価格」を含む なら
    → 営業部
    返信:「お見積りのご依頼を承りました」
    
そうでなければ
    → 総合窓口
    返信:「お問い合わせを承りました」

返信時間の案内:
もし 営業時間内 なら
    「本日中にご返信いたします」
そうでなければ
    「翌営業日にご返信いたします」

条件分岐をマスターすれば、あなたの自動化は「賢い判断」ができるようになります。次回もお楽しみに!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行