在條件中使用運算式來檢查多個值

在本教學課程中,您將學習使用運算式和條件,以在進階模式中比較多個值。

當您建立雲端流程時,可以透過基本模式使用條件卡來快速比較單一值與另一個值。 不過,有時您需要比較多個值。 例如,您可能需要檢查試算表或資料庫資料表中幾個資料行的值。

您可以在條件中使用下列任何邏輯運算式組合。

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 的資料行,而此資料行中的可能值如下:

  • 已完成
  • 已封鎖
  • 不必要
  • 尚未開始

以下是試算表外觀範例:

帶有 Status 資料行的範例試算表的螢幕擷取畫面。

在上述試算表中,您需要使用 Power Automate 移除所有已將 Status 資料行設定為 completedunnecessary 的列。

請建立流程。

從空白流程開始

  1. 登入 Power Automate

  2. 在左窗格中,選取我的流程

  3. 選取新增流程>已排程雲端流程

將觸發程序新增至流程

  1. 為您的流程命名。

  2. 設定每天執行一次流程排程。

  3. 選取建立按鈕移至下一個步驟。

注意

Power Automate 使用經典的雲端流程設計工具或帶有 Copilot 的雲端流程設計工具。 若要確定您使用的是哪個設計工具,請移至了解具有副手功能的雲端流程設計工具中的附註區段。

選取試算表並取得所有資料列

  1. 選取新步驟

  2. 搜尋資料列,然後選取 Excel Online (Business)

    選取對應於您所使用試算表的取得資料列動作。 例如,如果您要使用 Google 試算表,請選取Google 試算表 - 取得資料列

  3. 選擇列出資料表中的資料列動作。

    在資料表中列出資料列的螢幕擷取畫面。

  4. 選取包含資料的位置文件庫檔案資料表

    資料表卡片清單資料列中,位置、文件庫、檔案和資料表欄位的螢幕擷取畫面。

檢查每個資料列的 status 資料行

  1. 選取新步驟

  2. 搜尋適用於各項目,然後選取套用至每個控制項 - 控制項

  3. 權杖新增至選取先前步驟中的輸出方塊。

    數值權杖代表試算表資料表及其所有資料。

  4. 選擇套用至每個卡上的新增動作

  5. 搜尋條件,然後選取 Condition 控制項。

  6. 新增下列 Or 運算式。 此 Or 運算式會檢查資料表中每一個資料列的值。 如果狀態資料行的值是已完成不必要,則運算式會評估為 "True"。

    以下是條件卡片的範例。

    'or' 運算式的螢幕擷取畫面。

從試算表刪除相符的資料列

  1. 在條件的如果是分支中,選取新增動作

    如果 OR 條件的計算結果為 True,則執行如果是分支。

  2. 搜尋刪除資料列,選取 Excel Online (Business),然後選取刪除資料列

  3. 刪除資料列卡片上,設定位置資料庫檔案資料表方塊,設定方法與您在本教學課程前文資料表中列出的資料列卡片中的相同。

  4. 索引鍵資料行下拉式清單中,選取 _PowerAppsId_

  5. 索引鍵值欄位中,插入 _PowerAppsId_ 動態值。

  6. 儲存您的流程。

使用 'or' 運算式執行流程

在您儲存流程之後,即會執行流程。 如果您已建立本教學課程稍早所示的試算表,則以下是其執行完成後的結果。

完成「OR」運算式時的試算表螢幕擷取畫面。

請注意,已刪除 Status 資料行中具有已完成非必要資料列的所有資料。

使用 'and' 運算式

假設您的試算表資料表有兩個資料行。 資料行名稱為 StatusAssigned。 如果 Status 資料行的值為已封鎖,而且 Assigned 資料行的值為 John Wonder,則也假設您需要刪除所有資料列。 若要完成這項工作,請遵循本教學課程稍早的所有步驟,不過,當您以進階模式編輯條件卡片時,請使用 and 運算式,如下所示:

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

以下是條件卡片的範例。

 'and' 運算式的螢幕擷取畫面。

使用 'and' 運算式執行流程

如果您已完成此教學課程中的步驟,您的試算表應類似以下螢幕擷取畫面。

執行流程前的試算表螢幕擷取畫面。

執行流程後,您的試算表看起來應該會類似以下螢幕擷取畫面。

執行流程後的試算表螢幕擷取畫面。

使用 'empty' 運算式

請注意,試算表中現在有幾個空白資料列。 若要移除它們,請使用 empty 運算式來識別 AssignedStatus 資料行中沒有任何文字的所有資料列。

若要完成此工作,請遵循本教學課程前文的使用 'and' 運算式區段中所列出的所有步驟。 在進階模式中編輯條件卡片時,請使用以下 empty 運算式。

@and(empty(item()?['Status']), empty(item()?['Assigned']))

您的條件卡片應該會類似以下螢幕擷取畫面。

'empty' 運算式的螢幕擷取畫面。

執行流程後,試算表看起來應該會類似以下螢幕擷取畫面。

執行「empty」後的工作表螢幕擷取畫面。

請注意,會從資料表中移除額外行。

使用 'greater' 運算式

假設您為同事購買棒球票,而且您要使用試算表確保每個人都會還您錢。 您可以快速建立雲端流程,以將每日電子郵件傳送給每個未支付全額的人員。

使用 greater 運算式來識別尚未支付全額的員工。 您接著可以自動將提醒電子郵件傳送給未支付全額的人員。

以下是試算表的檢視。

未支付全額的人員的試算表螢幕擷取畫面。

以下是 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' 運算式

使用 greater 運算式來找出支付金額小於應支付金額的員工,並使用 less 運算式來判斷付款到期日是否離目前日期不到一天。 接著您可以使用傳送電子郵件動作,以將提醒電子郵件傳送給未支付全額且離到期日不到一天的員工。

以下是試算表資料表的檢視。

試算表資料表的螢幕擷取畫面。

以下是 and 運算式實作,以找出支付金額小於應支付金額且到期日離目前日期不到一天的所有員工。

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

在運算式中使用函數

某些運算式會從雲端流程開始執行時可能還不存在的執行階段動作取得其值。 若要在運算式中參考或使用這些值,您可以使用工作流程定義語言提供的函數。 更多資訊。 若要深入了解,請前往 Azure Logic Apps 和 Power Automate 中的工作流程運算式函數參考指南