在條件中使用運算式來檢查多個值
在本逐步解說中,您將學習使用運算式和 條件,以在 進階模式 中比較多個值。
當您建立雲端流程時,可以透過基本模式使用 條件卡來快速比較單一值與另一個值。 不過,有時您需要比較多個值。 例如,您可能需要檢查試算表或資料庫資料表中幾個資料行的值。
您可以在條件中使用下列任何邏輯運算式組合。
Expression | 描述 | 範例 |
---|---|---|
和 | 採用兩個引數,並在兩個值相符時傳回 True。 注意:兩個引數都必須是布林值。 |
這個運算式會傳回 false: and(greater(1,10),equals(0,0)) |
或 | 採用兩個引數,並在任一個引數相符時傳回 True。 注意:兩個引數都必須是布林值。 |
這個運算式會傳回 true: or(greater(1,10),equals(0,0)) |
等於 | 如果兩個值相等,會傳回 True。 | 例如,如果 parameter1 是 someValue,則此運算式會傳回 true: equals(parameters('parameter1'), 'someValue') |
較少 | 採用兩個引數,並在第一個引數小於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 true: less(10,100) |
lessOrEquals | 採用兩個引數,並在第一個引數小於或等於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 true: lessOrEquals(10,10) |
大於 | 採用兩個引數,並在第一個引數大於第二個引數時傳回 true。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 false: greater(10,10) |
greaterOrEquals | 採用兩個引數,並在第一個引數大於或等於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 false: greaterOrEquals(10,100) |
empty | 如果物件、陣列或字串是空的,則傳回 True。 | 這個運算式會傳回 true: empty('') |
不等於 | 傳回相反的布林值。 | 這個運算式會傳回 true: not(contains('200 Success','Fail')) |
if | 如果運算式產生 True 或 False,則會傳回特定值。 | 這個運算式會傳回 "yes": if(equals(1, 1), 'yes', 'no') |
先決條件
- Power Automate 的存取權。
- 具有本逐步解說稍後所述之資料表的試算表。 請務必將試算表儲存至 Dropbox 或 Microsoft OneDrive 這類位置,讓 Power Automate 可以存取它。
- Microsoft Office 365 Outlook (雖然我們使用 Office 365 Outlook,但是您可以在流程中使用任何支援的電子郵件服務)。
使用 or 運算式
如果項目的值是 valueA or valueB,則有時您的工作流程必須採取動作。 例如,您可能會追蹤試算表資料表中工作的狀態。 假設資料表具有名為 Status 的資料行,而 Status 資料行中的可能值如下:
- 已完成
- blocked
- unnecessary
- 尚未開始
以下是試算表外觀範例:
在上述試算表中,您需要使用 Power Automate 移除所有已將 Status 欄設定為 completed 或 unnecessary 的列。
請建立流程。
從空白流程開始
登入 Power Automate。
選取 我的流程 索引標籤。
選取 從空白建立。
將觸發程序新增至流程
搜尋 排程,然後選取 排程 - 重複 觸發程序
設定每天執行一次排程。
選取試算表並取得所有資料列
選取 新增步驟 > 新增動作。
搜尋 資料列,然後選取 Excel - 取得資料列。
注意:選取對應於您所使用試算表的 [取得資料列] 動作。 例如,如果您要使用 Google 試算表,請選取 Google 試算表 - 取得資料列。
選取 檔案名稱 方塊中的資料夾圖示,然後瀏覽並選取包含您資料的試算表。
從 資料表名稱 清單中,選取包含您資料的資料表。
檢查每個資料列的 status 欄
選取 新步驟 > 更多 > 新增「套用至各項」。
將 值 權杖新增至 選取先前步驟中的輸出 方塊。
選取 新增條件 > 在進階模式中編輯。
新增下列 or 運算式。 這個 or 運算式會檢查資料表中每個資料列的值 (在運算式中存取時,資料列稱為項目)。 如果 狀態 資料行的值是 已完成或非必要,則 or 運算式會評估為 "true"。
or 運算式會顯示如下:
@or(equals(item()?['status'], 'unnecessary'), equals(item()?['status'], 'completed'))
條件 卡與下圖類似:
從試算表刪除相符的資料列
在條件的 如果是,不要執行任何動作 分支中,選取 新增動作。
搜尋 刪除資料列,然後選取 Excel - 刪除資料列。
在 檔案名稱 方塊中,搜尋並選取包含您想要刪除之資料的試算表檔案。
在 資料表名稱 清單中,選取包含您資料的資料表。
在 資料列識別碼 方塊中,放置 資料列識別碼 權杖。
命名並儲存流程
替您的流程命名,然後選取 建立流程 按鈕。
使用 or 運算式執行流程
在您儲存流程之後,即會執行流程。 如果您已建立本逐步解說稍早所示的試算表,則以下是其執行完成後的結果:
請注意,已刪除資料列的 Status 資料行是 "completed" 或 "unnecessary" 的所有資料。
使用 and 運算式
假設您的試算表資料表有兩個資料行。 資料行名稱為 Status 和 Assigned。 如果 Status 資料行的值為 "blocked",而且 Assigned 資料行的值為 "John Wonder",則也假設您需要刪除所有資料列。 若要完成這項工作,請遵循本逐步解說稍早的所有步驟,不過,當您以進階模式編輯 條件 卡時,請使用 and 運算式,如下所示:
@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))
條件 卡與下圖類似:
使用 and 運算式執行流程
如果您遵循,則試算表與下圖類似:
在您的流程執行之後,試算表與下圖類似:
使用 empty 運算式
請注意,試算表中現在有幾個空白資料列。 若要移除它們,請使用 empty 運算式來識別 Assigned 和 Status 資料行中沒有任何文字的所有資料列。
若要完成這項工作,請遵循本逐步解說稍早 使用 and 運算式 一節中列出的所有步驟,不過,當您以進階模式編輯 條件 卡時,也會以相同的方式使用 empty 運算式:
@and(empty(item()?['Status']), empty(item()?['Assigned']))
條件 卡與下圖類似:
在您的流程執行之後,試算表與下圖類似:
請注意,會從資料表中移除額外行。
使用 greater 運算式
假設您為同事購買棒球票,而且您要使用試算表確保每個人都會還您錢。 您可以快速建立雲端流程,以將每日電子郵件傳送給每個未支付全額的人員。
使用 greater 運算式來識別尚未支付全額的員工。 您接著可以自動將好記的提醒電子郵件傳送給未支付全額的人員。
以下是試算表的檢視:
以下是 greater 運算式實作,以找出支付金額小於應支付金額的所有人員:
@greater(item()?['Due'], item()?['Paid'])
使用 less 運算式
假設您為同事購買棒球票,而且您要使用試算表確保每個人都會在同意的日期之前還錢。 您可以建立雲端流程,以在目前日期離到期日不到一天時,將提醒電子郵件傳送給每個未支付全額的人員。
因為有兩個要驗證的條件,所以會搭配使用 and 運算式與 less 運算式:
要驗證的條件 | 要使用的運算式 | 範例 |
---|---|---|
已支付全額欠款嗎? | 大於 | @greater(item()?['Due'], item()?['Paid']) |
離到期日不到一天嗎? | 較少 | @less(item()?['DueDate'], addDays(utcNow(),1)) |
在 and 運算式中合併使用 greater 和 less 運算式
使用 greater 運算式來找出支付金額小於應支付金額的員工,並使用 less 運算式來判斷付款到期日是否離目前日期不到一天。 您接著可以執行 傳送電子郵件 動作,以將好記的提醒電子郵件傳送給未支付全額且離到期日不到一天的人員。
以下是試算表資料表的檢視:
以下是 and 運算式實作,以找出支付金額小於應支付金額且到期日離目前日期不到一天的所有人員:
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
在運算式中使用函式
某些運算式會從雲端流程開始執行時可能還不存在的執行階段動作取得其值。 若要在運算式中參考或使用這些值,您可以使用工作流程定義語言提供的函式。 其他資訊:Power Automate 中工作流程定義語言的函式參考