如果條件成立則傳回一個值,如果相同條件不成立則傳回另一個值。

說明

If 函式會測試條件,直到找到 true 結果為止。 然後,對應的值會傳回做為結果。 您可以使用 If 傳回根據比較和其他測試的不同結果。

您可以使用行為公式中的 If 在兩個動作之間分支。 最多將會執行一個分支。 條件會依序評估,在找到 true 結果之後,不會檢查任何進一步的條件。

如果未滿足任何條件,並提供奇數數目的引數,會傳回最後一個引數的值。 這個情況包含常見的 If( Condition, Value, Else )。 如果是提供偶數數目的引數,則會傳回空白。

語法

If( Condition, Result [, ElseResult ] )
If( Condition1, Result1 [, Condition2, Result2, ... [ , ElseResult ] ] )

  • Condition(s) - 必要項目。 要針對 true 測試的公式。 這些公式通常包含比較運算子 (例如 <>=) 並測試函式,例如 IsBlankIsEmpty
  • Result(s) - 必要項目。 針對評估為 true 的條件傳回的對應值。
  • ElseResult - 選擇性。 如果未滿足任何條件時要傳回的值。 如果您沒有指定這個引數,會傳回空白。

範例

公式中的值

在下列範例中,名為 Slider1 的滑桿控制項具有值 25

公式 說明 結果
If( Slider1.Value = 25, "Result1" ) 條件是 true,並傳回對應的結果。 "Result1"
If( Slider1.Value > 1000, "Result1" ) 條件是 false,且不會提供 ElseResult。 空白
If( Slider1.Value = 25, "Result1", "Result2" ) 條件是 true,並傳回對應的結果。 "Result1"
If( Slider1.Value > 1000, "Result1", "Result2" ) 條件是 false,且已提供並傳回 ElseResult。 "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) 第一個條件是 true,並傳回對應的結果。 第二個條件也是 true,但不傳回其對應的值,因為它出現在第一個條件之後的引數清單。 "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) 第一個條件是 false,因為滑桿的值為 25,且不是空白。 第二個條件是 true,因為滑桿的值是數字,並傳回對應的結果。 "Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") 第一個和第二個條件都是 false,且已提供並傳回 ElseResult。 "Result3"

行為公式中的分支

在下列範例中,名為 FirstName文字輸入控制項已在其中輸入 "John" 的值。

公式 說明 結果
If( !IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) 條件是 true,且已執行 Navigate 函式。 您可以使用 IsBlank 函式來測試是否已填入必要的表單欄位。 如果文字輸入方塊空白,此公式不會有任何作用。 true

顯示變更為 Screen1
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) 不含 運算子,條件是 false,且並未執行 Navigate 函式。 已提供 ElseResult,因此會執行 Back 函式。 true

顯示會回到先前所示的畫面。

逐步解說

  1. 在空白畫面上,新增文字輸入控制項,如果它依預設沒有該名稱,則將其命名為 Text1

  2. Text1 中,輸入 15

  3. 新增標籤,並將其 Text 屬性設定為下列公式:

公式 說明 結果
Text1.Text 沒有條件,傳回的值是輸入文字控制項的值。 "15"
If( Value(Text1.Text) < 40, "Order more!", Text1.Text ) 條件是 true,並傳回對應的值。 「訂購更多!」
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text ) 第一個條件是 true,並傳回對應的值。 「訂購更多一點!」