はじめに
これまでのレッスンで、自動化の基本的な流れを学んできました。
でも、現実の業務では「いつも同じ処理」というわけにはいきませんよね。
- 金額によって承認者を変えたい
- 時間帯によって通知方法を変えたい
- 顧客のタイプによって対応を変えたい
今回は、このような「場合分け」を実現する条件分岐について学びます。
条件分岐をマスターすれば、あなたの自動化は「ただの機械的な処理」から「賢い秘書」へと進化します!
条件分岐は日常生活そのもの
朝の身支度での条件分岐
私たちは無意識に、たくさんの条件分岐をしています。
起床
↓
もし雨が降っていたら
→ 傘を持つ
そうでなければ
→ 傘は持たない
↓
もし寒かったら
→ コートを着る
そうでなければ
→ 薄着で出かける
買い物での条件分岐
スーパーで牛乳を見る
↓
もし賞味期限が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) なら
今日のまとめ
条件分岐マスターの極意
- 基本は「もし〜なら、そうでなければ」
- AND、OR、NOTで複雑な条件も表現
- 多段階、ネストで細かい制御
- すべてのパターンを網羅する
- シンプルで分かりやすい条件を心がける
次回予告
次のレッスンでは、「繰り返し処理:大量のデータも怖くない」を学びます。
- 同じ処理を自動で繰り返す方法
- リストやデータ全体を処理する
- 繰り返しと条件分岐の組み合わせ
- 無限ループを防ぐ方法
条件分岐と繰り返しを組み合わせれば、どんな複雑な自動化も実現できるようになります!
チャレンジ問題
問題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時)の判定
- 問い合わせ内容による部署振り分け
- 緊急度による優先順位付け
設計例を見る
メール受信
↓
もし 件名に「緊急」または「至急」を含む なら
優先度 = 最高
もし 営業時間内 なら
即時担当者通知
そうでなければ
担当者の携帯に通知
そうでなければ
優先度 = 通常
内容による振り分け:
もし 「返品」「交換」を含む なら
→ カスタマーサポート
返信:「返品・交換について承りました」
そうでなければ、もし 「故障」「不具合」を含む なら
→ 技術サポート
返信:「技術的なお問い合わせを承りました」
そうでなければ、もし 「見積」「価格」を含む なら
→ 営業部
返信:「お見積りのご依頼を承りました」
そうでなければ
→ 総合窓口
返信:「お問い合わせを承りました」
返信時間の案内:
もし 営業時間内 なら
「本日中にご返信いたします」
そうでなければ
「翌営業日にご返信いたします」
条件分岐をマスターすれば、あなたの自動化は「賢い判断」ができるようになります。次回もお楽しみに!