共用方式為


If 和 Switch 函數

適用於: 畫布應用程式 Copilot Studio 桌面流程 Dataverse 公式欄 模型導向應用程式 Power Platform CLI Dataverse 函數 Power Pages

判斷集合中的任何條件是否為 true (If) 或公式的結果是否符合集合 (Switch) 中的任何值,然後傳回結果或執行動作。

描述

函數測試 If 一或多個條件,直到找到 真實 結果為止。 If 找到這樣的結果,傳回對應的值。 If 找不到這類結果,則會傳回預設值。 在任一情況下,傳回的值可能是要顯示的字串、要評估的公式,或另一種形式的結果。

Switch 函數會評估公式,並判斷結果是否符合您指定序列中的任何值。 If 找到相符項,則傳回對應的值。 If 找不到相符專案,則會傳回預設值。 在任一情況下,傳回的值可能是要顯示的字串、要評估的公式,或另一種形式的結果。

If 並且 Switch 非常相似,但您應該使用最適合您情況的函數:

  • 用來 If 評估單一條件。 此函式最常見的語法是 IfConditionThenResultDefaultResult ),它提供常見的「if ... 當時。。。 else …" 模式,常在其他程式設計工具中看到。
  • 用於 If 評估多個不相關的條件。 在 Power Apps 中 (與 Microsoft Excel 不同),您可以指定多個條件,而不需要巢狀 If 公式。
  • 用來 Switch 針對多個可能的相符項目評估單一條件。 在這種情況下,您也可以使用 If ,但您需要對每個可能的匹配項重複公式。

您可以在 行為公式 中同時使用這兩個函式,以在兩個以上的動作之間分支。 只有一個分支會觸發動作。 條件和相符項目是按照順序進行評估,如果條件為 true 或者找到相符項目時則會停止。

如果沒有條件為 true ,未找到匹配項,並且您未指定預設結果,則返回 Blank

語法

If條件thenResult [, 預設結果 ] )
If條件 1然後結果 1 [, 條件 2然後結果 2, ...[ , 預設結果 ] ])

  • 條件 - 必需。 要針對 true 測試的公式。 此類公式通常包含比較 運算子 (例如 <>,和 =) 並測試函式,例如 IsBlankIsEmpty
  • ThenResults - 必需。 針對評估為 true 的條件傳回的對應值。
  • DefaultResult - 可選。 如果沒有條件評估為 true 時要傳回的值。 If 您未指定此引數,則會傳回 空白

Switch公式比對 1結果 1 [, 比對 2結果 2, ...[, 預設結果 ] ])

  • 公式 - 必需。 評估相符項目的公式。 此公式只評估一次。
  • 匹配項 - 必需。 與 Formula 的結果進行比較的值。 If 找到完全相符的,則傳回對應的 結果
  • 結果 - 必需。 找到完全相符的項目時傳回的對應值。
  • DefaultResult - 可選。 If 找不到完全相符的,則會傳回此值。 If 您未指定此引數,則會傳回 空白

範例

公式中的值

在下列範例中,名為 Slider1Slider 控制項值為 25

公式 描述 Result
If( 滑塊1.值 = 25, “結果1” ) 條件是 true,並傳回對應的結果。 "Result1"
If( 滑塊1.值 = 25, “結果1”, “結果2” ) 條件是 true,並傳回對應的結果。 "Result1"
If( 滑塊1.值 > 1000, “結果1” ) 條件是 false ,且不會提供 DefaultResult 空白
If( 滑塊1.值 > 1000, “結果1”, “結果2” ) 條件是 false ,且已提供並傳回 DefaultResult "Result2"
If( Slider1.Value = 25, “結果1”, Slider1.值 > 0, “結果2” ) 第一個條件是 true,並傳回對應的結果。 第二個條件也是 true,但是不會評估它,因為它會比評估為 true 的條件更晚出現在引數清單中。 "Result1"
If( IsBlank( Slider1.Value ), “結果1”, IsNumeric( Slider1.Value ), “結果2” ) 第一個條件是 false,因為滑桿不是 空白。 第二個條件是 true,因為滑桿值是數字,並傳回對應的結果。 "Result2"
If( 滑塊1.值 > 1000, “結果1”, 滑塊1.值 > 50, “結果2”, “結果3”) 第一個和第二個條件都是 false ,且已提供並傳回 DefaultResult "Result3"
Switch( 滑塊1.值, 25, “結果1” ) 滑桿的值符合要檢查的第一個值,並且傳回對應的結果。 "Result1"
Switch( 滑塊1.值, 20, “結果1”, 25, “結果2”, 30, “結果3” ) 滑桿的值符合要檢查的第二個值,並且傳回對應的結果。 "Result2"
Switch( Slider1.Value, 20, “Result1”, 10, “Result2”, 0, “Result3”, “DefaultResult” ) 滑桿的值不符合要檢查的任何值。 提供 DefaultResult,因此傳回該值。 "DefaultResult"

行為公式中的分支

在這些範例中,名為 FirstNameText input 控制項已在其中輸入 "John" 的值。

公式 描述 Result
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) 條件是 true,因此執行 Navigate 函式。 您可以使用 IsBlank 函式來測試是否已填入必要的表單欄位。 If FirstName空白,則此公式將不起作用。

顯示變更為 Screen1
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) 沒有 ! 運算子,條件是 false,因此並未執行 Navigate 函式。 提供 Back 函式作為 DefaultResult,因此它會執行。

顯示會回到先前所示的畫面。
Switch( FirstName.Text, “Carlos”, Navigate( Screen1, ScreenTransition.None ), “Kirstin”, Navigate( Screen2, ScreenTransition.None ), “John”, Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text 的值會根據 "Carlos"、"Kirstin" 和 "John" 的順序進行比較。 找到 "John" 的相符項目,因此應用程式會瀏覽至 Screen3

顯示變更為 Screen3

按步就班

  1. 新增 Text input 控制項,如果它依預設沒有該名稱,則將其命名為 Text1

  2. Text1 中,輸入 30

  3. 新增 Label 控制項,並將其 Text 屬性設定為下列公式:
    If( Value(Text1.Text) < 20, “訂購更多!”, Value(Text1.Text) < 40, “訂購更多!”, Text1.Text )

    Label 控制項顯示訂購更多!,因為 Text1 的值大於 20 小於 40。

  4. Text1 中,輸入 15

    Label 控制項顯示訂購非常更多!,因為 Text1 的值小於 20。

  5. Text1 中,輸入 50

    Label 控制項會顯示您輸入的值,因為它超過 40。