在本教程中,您將學習在進階模式下使用運算式和條件比較多個值。
當您建立雲端流程時,可以透過基本模式使用條件卡來快速比較單一值與另一個值。 然而,有時您需要比較多個值。 例如,您可能需要檢查試算表或資料庫資料表中幾個資料行的值。
您可以在條件中使用下列任何邏輯運算式組合。
Expression | 描述 | 範例 |
---|---|---|
and | 採用兩個引數,並在兩個值相符時傳回 True。 注意:兩個引數都必須是布林值。 |
此運算式會傳回 False:and(greater(1,10),equals(0,0)) |
or | 採用兩個引數,並在任一個引數相符時傳回 True。 注意:兩個引數都必須是布林值。 |
這個運算式會傳回 True:or(greater(1,10),equals(0,0)) |
等於 | 如果兩個值相等,會傳回 True。 | 例如,如果 parameter1 是 someValue,則此運算式會傳回 True:equals(parameters('parameter1'), 'someValue') |
less | 採用兩個引數,並在第一個引數小於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 True:less(10,100) |
lessOrEquals | 採用兩個引數,並在第一個引數小於或等於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 True:lessOrEquals(10,10) |
greater | 採用兩個引數,並在第一個引數大於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 False:greater(10,10) |
greaterOrEquals | 採用兩個引數,並在第一個引數大於或等於第二個引數時傳回 True。 注意:支援的類型為 integer、float 和 string。 |
這個運算式會傳回 False:greaterOrEquals(10,100) |
empty | 如果物件、陣列或字串是空的,則傳回 True。 | 這個運算式會傳回 True:empty('') |
not | 傳回相反的布林值。 | 這個運算式會傳回 True:not(contains('200 Success','Fail')) |
if | 如果運算式產生 True 或 False,則會傳回特定值。 | 這個運算式會傳回 "yes":if(equals(1, 1), 'yes', 'no') |
必要條件
以下是完成本演練所需的內容。
- Power Automate 的存取權。
- 您自己的試算表,其中包含本逐步解說稍後所述的資料表。 請務必將試算表儲存至 Dropbox 或 Microsoft OneDrive 這類位置,讓 Power Automate 可以存取它。
- Microsoft 365 Outlook (雖然我們使用 Outlook,但是您可以在流程中使用任何支援的電子郵件服務)。
使用 'or' 運算式
如果項目的值是 valueA or valueB,則有時您的工作流程必須採取動作。 例如,您可能正在試算表中追蹤任務的狀態。 假設資料表具有名為 Status 的資料行,而此資料行中的可能值如下:
- 已完成
- 已封鎖
- 不必要
- 尚未開始
以下是試算表外觀範例:
指定上面的試算表,您想要使用 Power Automate 移除所有狀態欄設定為已完成或不必要的資料列。
請建立流程。
從空白流程開始
登入 Power Automate。
在左窗格中,選取我的流程。
選取新增流程>已排程雲端流程。
將觸發程序新增至流程
為您的流程命名。
設定每天執行一次流程排程。
選取建立按鈕移至下一個步驟。
注意
選取試算表並取得所有資料列
您可以使用 Copilot 為您建立流程,或手動建立。
使用 Copilot 建立流程
要求 Copilot 建立流程。 在 Copilot 中輸入以下提示:
每週,在 Excel 表中列出資料列,如果狀態資料欄等於成功或宣告管理員的電子郵件為 jake@contoso.com,則刪除 Excel 資料列。
選擇提交
。
提交提示後,Copilot 會為您建立流程。 您需要填寫流程正常運作的詳細資訊,例如 Copilot 新增的各種動作的參數。
手動建立流程
或者,您可以執行以下步驟手動建立相同的流程:
若要新增步驟,請選取加號 (+)>新增動作。
搜尋資料列>Excel Online (Business)>與您正在使用的試算表相對應的取得資料列動作。
例如,如果您使用 Google 試算表,請選擇 Google 試算表 - 取得資料列。
選擇列出資料表中的資料列動作。
選取包含資料的位置、文件庫、檔案和資料表。
檢查每個資料列的 status 資料行
若要新增步驟,請選取加號 (+)>新增動作。
在新增動作畫面,搜尋適用於各項目,然後選取控制項底下的套用至每個。
透過選擇避雷針圖示,將值權杖新增到從前面的步驟中選擇輸出框。
此數值權杖代表試算表資料表及其所有資料。
在套用至每個卡片上,選取加號 (+)>新增動作,以新增步驟。
搜尋條件,然後選取 Condition 控制項。
新增下列 OR 運算式。 此 OR 運算式會檢查資料表中每一個資料列的值。
如果 Status 資料行的值是 completed或unnecessary,則 OR 運算式會評估為 True。
以下是條件卡片的範例。
從試算表刪除相符的資料列
選擇加號 (+) 可在條件的 True 分支上新增動作。
如果 Or 條件計算結果為真,則執行 True 分支。
搜尋 Excel Online (Business),然後選擇刪除資料列。
在刪除資料列面板上,設定位置、文件庫、檔案和 資料表框,就像您在本教學前面的列出資料表中的資料列卡片上設定這些框一樣。
在索引鍵資料行下拉式清單中,選取 _PowerAppsId_。
在索引鍵值欄位中,插入 _PowerAppsId_ 動態值。
儲存您的流程。
使用 'or' 運算式執行流程
在您儲存流程之後,即會執行流程。 如果您已建立本教學課程稍早所示的試算表,則以下是其執行完成後的結果。
請注意,已刪除 Status 資料行中具有已完成或非必要資料列的所有資料。
使用 'and' 運算式
假設您的試算表資料表有兩個資料行。 資料行名稱為 Status 和 Assigned。 如果 Status 資料行的值為已封鎖,而且 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(item()?['Due'], item()?['Paid'])
使用 'less' 運算式
想像一下,您為同事購買了棒球票,並且您使用試算表來確保每個人都在大家同意的日期之前得到報銷。 您可以建立一個雲端流程,如果目前日期距到期日不到一天,則向每個未全額支付的人發送提醒電子郵件。
因為有兩個要驗證的條件,所以會搭配使用 and 運算式與 less 運算式。
要驗證的條件 | 要使用的運算式 | 範例 |
---|---|---|
已支付全額欠款嗎? | greater | @greater(item()?['Due'], item()?['Paid']) |
離到期日不到一天嗎? | less | @less(item()?['DueDate'], addDays(utcNow(),1)) |
在 'and' 運算式中合併使用 'greater' 和 'less' 運算式
使用較大的運算式來識別支付金額少於應付全額的員工,並使用較小的運算式來確定付款到期日是否距離目前日期少於一天。 然後,您可以使用發送電子郵件動作向未全額付款,且到期日不到一天的員工發送提醒電子郵件。
以下是試算表資料表的檢視。
這是 and 運算式的實作,它標識所有支付金額低於應付金額,且到期日距目前日期不到一天的員工。
@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))
在運算式中使用函數
某些運算式會從雲端流程開始執行時可能還不存在的執行階段動作取得其值。 若要在運算式中參考或使用這些值,您可以使用工作流程定義語言提供的函數。 更多資訊。 若要深入了解,請前往 Azure Logic Apps 和 Power Automate 中的工作流程運算式函數參考指南。