自動化流程入門 #8:Power Automate Desktop 基礎功能 Switch 條件式應用

一、前言

在自動化流程設計中,條件式邏輯就像道路指引,決定機器人下一步該往哪裡走。If‑Else 好比岔路口的左右分支,而 Switch 則是一座環形交流道──當輸入值是固定選項時,它能讓流程轉向更俐落、維護也更輕鬆。本文將以「會員分級折扣」為情境,帶你一步步實作 Switch 條件式,並比較與 If‑Else 在不同場景下的最佳應用,讓你的 Power Automate Desktop 流程既清晰又高效。


二、示範情境:會員分級折扣

假設你經營電商平台,需要依照會員等級顯示折扣資訊:

會員等級 折扣
Gold 6 折
Silver 7 折
Bronze 9 折

目標:當用戶在機器人對話框選擇等級後,自動彈出對應折扣

三、Switch 條件式設計步驟

  1. 新增下拉選單

    • 動作:顯示從清單選取對話方塊

    • 自訂清單值:Gold, Silver, Bronze, Default

    • 將結果寫入變數 SelectedItem

  2. 建立 Switch 動作

    • SelectedItem 為判斷值

    • 為每個 Case 加入對應訊息:

      • Gold → 顯示 「恭喜!您享有 6 折優惠」

      • Silver → 顯示 「恭喜!您享有 7 折優惠」

      • Bronze → 顯示 「恭喜!您享有 9 折優惠」

      • Default → 顯示 「目前無折扣」

  3. 測試腳本

    • 執行流程,逐一選擇三種等級及「Default」,確認訊息正確。

貼心提醒:若會員等級未來新增,只要在 Switch 補一個 Case 即可,維護成本遠低於多層巢狀 If‑Else。

參考範例:


四、If‑Else vs. Switch:何時用哪一個?

 
情境 建議結構 原因說明
數值範圍、大小比較
(例:金額>1000)
If‑Else 需要判斷「條件是否成立」或「落在哪個範圍」時較彈性
固定選項/字串比對
(例:會員等級、地區代碼)
Switch 同一變數對多個「固定值」進行比較,可讀性高、維護簡單
邏輯巢狀超過 3 層 Switch + 子流程 拆分為多個 Switch 或封裝成子流程,避免迴圈式 If‑Else 造成維護困難

五、實務小結與最佳做法

  1. 先畫流程、再選條件式:寫程式前,先用流程圖標出所有分支,清楚哪些是「範圍判斷」哪些是「固定值選擇」。

  2. 命名變數要足夠語義化SelectedItem 比 x 更易讀,也方便日後交接。

  3. Default 分支一定要留:即使今天只有三個合法選項,也要保留「其他」路徑;錯誤處理從來不是多餘的。

  4. 將折扣邏輯獨立成子流程:當折扣規則未來更複雜(如活動時間、VIP 限定),可在子流程先判斷,再回傳折扣值給主要流程,讓主流程保持乾淨。


六、常見問題 (FAQ) 

Q1:Power Automate Desktop 的 Switch 最多可以放幾個 Case?

➡️ 官方文件未設硬性上限,但每個 Case 仍佔用記憶體並增加維護成本。實務經驗建議單一 Switch 控制在 8–10 個分支內;若分支數量更多或規則常變動,可改用「資料表 + 查詢」或拆分子流程,維持可讀性並降低風險。

Q2:Switch 能比較數值範圍嗎?

➡️ Switch 僅比對「單一值是否等於某個固定值」。若要比較範圍(大於、小於),請使用 If‑Else 或先行將數值分類成固定類別後再用 Switch。

Q3:可以在同一流程同時用 If‑Else 和 Switch 嗎?

➡️ 可以!兩者並不衝突。常見做法是 先用 If‑Else 檢查例外或空值,通過驗證後再進入 Switch 分支,提高流程健壯性。

Q4:Switch 條件式跟 Excel 的 VLOOKUP/XLOOKUP 有什麼差別?

➡️ 功能概念相似,都是「依輸入值找到對應結果」。差異在於 Switch 屬於流程控制語句,執行效率高且不需維護外部資料表;XLOOKUP 則適合大量、易變動的對照表。

Q5:在 PAD 執行 Switch 出現「變數未定義」錯誤怎麼辦?

➡️ 請檢查

  1. 下拉選單或前一步動作是否確實把值寫入 SelectedItem

  2. Switch 的變數拼字與大小寫是否一致。

  3. 流程是否曾經提前結束,導致變數尚未被宣告。

Q6:Switch 能放在循環(Loop)裡面嗎?

➡️ 可以。但若一次迴圈處理上千筆資料,建議先分群或改用資料表查表,避免在迴圈內大量分支影響效能。


小結

選對條件式,能讓你的 Power Automate Desktop 流程更易讀、更好維護,也能避免日後需求變動時的「骨牌效應」。當你的邏輯是固定值比對,請優先考慮 Switch;若是範圍判斷或多層條件,則以 If‑Else 搭配子流程更彈性。掌握這些技巧,你就能在日常工作中快速組裝出穩定又可擴充的 RPA 自動化流程,讓數位員工成為真正的高效助手!

本文已獲原作者授權改寫 & 轉載:Hsuan Yu Chen

————————————————————————————————————

掌握更多智能自動化思維

立即查看我們的培訓課程,深入探索智能 RPA 和企業流程自動化實踐:

延伸閱讀本系列其他文章