Die Funktionen „If“- und „Switch“ in PowerAppsIf and Switch functions in PowerApps

Bestimmt, ob eine beliebige Bedingung in einer Menge TRUE ist (If) oder ob das Ergebnis einer Formel mit einem beliebigen Wert in einer Menge übereinstimmt (Switch) und gibt anschließend ein Ergebnis zurück oder führt eine Aktion aus.Determines whether any condition in a set is true (If) or the result of a formula matches any value in a set (Switch) and then returns a result or executes an action.

BeschreibungDescription

Die If-Funktion testet eine oder mehrere Bedingungen, bis das Ergebnis TRUE gefunden wird.The If function tests one or more conditions until a true result is found. Wenn ein solches Ergebnis gefunden wird, erfolgt die Rückgabe eines entsprechenden Werts.If such a result is found, a corresponding value is returned. Wenn kein solches Ergebnis gefunden wird, erfolgt die Rückgabe eines Standardwerts.If no such result is found, a default value is returned. In beiden Fällen kann der zurückgegebene Wert eine zu zeigende Zeichenfolge, eine auszuwertende Formel oder eine andere Form von Ergebnis sein.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Die Switch-Funktion wertet eine Formel aus und bestimmt, ob das Ergebnis mit einem Wert in einer Sequenz übereinstimmt, die Sie angeben.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. Wenn eine Übereinstimmung gefunden wird, erfolgt die Rückgabe eines entsprechenden Werts.If a match is found, a corresponding value is returned. Wenn keine Übereinstimmung gefunden wird, erfolgt die Rückgabe eines Standardwerts.If no match is found, a default value is returned. In beiden Fällen kann der zurückgegebene Wert eine zu zeigende Zeichenfolge, eine auszuwertende Formel oder eine andere Form von Ergebnis sein.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

If und Switch sind sehr ähnlich, doch sollten Sie die beste Funktion für die jeweilige Situation verwenden:If and Switch are very similar, but you should use the best function for your situation:

  • Verwenden Sie If, um eine einzelne Bedingung auszuwerten.Use If to evaluate a single condition. Die gebräuchlichste Syntax für diese Funktion ist If( Bedingung, DannErgebnis, Standardergebnis ), die das gängige Muster „if ...The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … then …then … else ...“else …” bereitstellt, das Sie aus anderen Programmiersprachen kennen.pattern seen in other programming tools.
  • Verwenden Sie If, um mehrere unabhängige Bedingungen auszuwerten.Use If to evaluate multiple unrelated conditions. In PowerApps können Sie (im Gegensatz zu Microsoft Excel) mehrere Bedingungen angegeben, ohne If-Formeln schachteln zu müssen.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • Verwenden Sie Switch, um eine einzelne Bedingung im Abgleich mit mehreren möglichen Übereinstimmungen auszuwerten.Use Switch to evaluate a single condition against multiple possible matches. Sie können auch in diesem Fall If verwenden, doch dann müssen Sie die Formel für jede mögliche Übereinstimmung wiederholen.You can also use If in this case, but you'd need to repeat the formula for each possible match.

Sie können diese beiden Formeln in Verhaltensformeln verwenden, um eine Verzweigung zwischen zwei oder mehr Aktionen zu erstellen.You can use both of these functions in behavior formulas to branch between two or more actions. Nur eine Verzweigung löst eine Aktion aus.Only one branch will trigger an action. Bedingungen und Übereinstimmungen werden in der Reihenfolge ausgewertet und angehalten, wenn eine Bedingung TRUE ist oder eine Übereinstimmung gefunden wird.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

Leer wird zurückgegeben, wenn keine Bedingungen TRUE sind, keine Übereinstimmungen gefunden werden und Sie kein Standardergebnis angeben.Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

SyntaxSyntax

If( Bedingung, DannErgebnis [, Standardergebnis ] )If( Condition, ThenResult [, DefaultResult ] )
If( Bedingung1, DannErgebnis1 [, Bedingung2, DannErgebnis2, ... [ , Standardergebnis ] ] )If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Bedingung(en): Erforderlich.Condition(s) - Required. Auf TRUE zu testende Formeln.Formula(s) to test for true. Solche Formeln enthalten häufig Vergleichs-Operatoren (z.B. < , > und =) sowie Testfunktionen wie IsBlank und IsEmpty .Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • DannErgebnis(sse): Erforderlich.ThenResult(s) - Required. Der entsprechende Wert für eine Bedingung, die TRUE ergibt, soll zurückgegeben werden.The corresponding value to return for a condition that evaluates to true.
  • Standardergebnis: Optional.DefaultResult - Optional. Dies ist der zurückzugebende Wert, wenn keine Bedingung mit TRUE ausgewertet wird.The value to return if no condition evaluates to true. Wenn Sie dieses Argument nicht angeben, wird blank zurückgegeben.If you don't specify this argument, blank is returned.

Switch( Formel, Übereinstimmung1, Ergebnis1 [, Übereinstimmung2, Ergebnis2, ... [, Standardergebnis ] ] )Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formel: Erforderlich.Formula - Required. Die für Übereinstimmungen auszuwertende Formel.Formula to evaluate for matches. Diese Formel wird nur einmal ausgewertet.This formula is evaluated only once.
  • Übereinstimmung(en): Erforderlich.Match(s) - Required. Werte für einen Vergleich mit dem Ergebnis der Formel.Values to compare with the result from Formula. Wird eine genaue Übereinstimmung gefunden, wird das entsprechende Ergebnis zurückgegeben.If an exact match is found, the corresponding Result is returned.
  • Ergebnis(se): Erforderlich.Result(s) - Required. Der entsprechende Wert, der zurückgegeben wird, wenn eine genaue Übereinstimmung gefunden wird.The corresponding value to return when an exact match is found.
  • Standardergebnis: Optional.DefaultResult - Optional. Wenn keine genaue Übereinstimmung gefunden wird, wird dieser Wert zurückgegeben.If an exact match isn't found, this value is returned. Wenn Sie dieses Argument nicht angeben, wird blank zurückgegeben.If you don't specify this argument, blank is returned.

BeispieleExamples

Werte in FormelnValues in formulas

In den folgenden Beispielen wird ein Schieberegler-Steuerelement mit dem Namen Slider1 mit dem Wert 25 verwendet.In the following examples, a Slider control (named Slider1) has a value of 25.

FormelFormula BeschreibungDescription ErgebnisResult
If( Slider1.Value = 25, "Result1" )If( Slider1.Value = 25, "Result1" ) Für die Bedingung gilt TRUE, und das entsprechende Ergebnis wird zurückgegeben.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value = 25, "Result1", "Result2" )If( Slider1.Value = 25, "Result1", "Result2" ) Für die Bedingung gilt TRUE, und das entsprechende Ergebnis wird zurückgegeben.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value > 1000, "Result1" )If( Slider1.Value > 1000, "Result1" ) Die Bedingung ist FALSE, und es wird kein Standardergebnis bereitgestellt.The condition is false, and no DefaultResult was provided. blankblank
If( Slider1.Value > 1000, "Result1", "Result2" )If( Slider1.Value > 1000, "Result1", "Result2" ) Die Bedingung ist FALSE, ein Standardergebnis wurde bereitgestellt und wird zurückgegeben.The condition is false, a DefaultResult was provided, and it's returned. "Result2""Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" )If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Die erste Bedingung ergibt TRUE, und das entsprechende Ergebnis wird zurückgegeben.The first condition is true, and the corresponding result is returned. Die zweite Bedingung ist auch TRUE, aber sie wird nicht ausgewertet, weil sie später in der Argumentliste als eine Bedingung vorkommt, die mit TRUE auswertet wird.The second condition is also true, but it isn't evaluated because it appears later in the argument list than a condition that evaluates to true. "Result1""Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" )If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Die erste Bedingung ergibt FALSE, weil der Schieberegler nicht leer ist.The first condition is false because the slider isn't blank. Die zweite Bedingung ergibt TRUE, da der Wert des Schiebereglers eine Zahl ist und das entsprechende Ergebnis zurückgegeben wird.The second condition is true because the slider's value is a number, and the corresponding result is returned. "Result2""Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3")If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Die erste und zweite Bedingung ergeben FALSE, ein Standardergebnis wurde bereitgestellt und wird zurückgegeben.Both the first and second conditions are false, a DefaultResult was provided, and it's returned. "Result3""Result3"
Switch (Slider1.Value, 25, "Result1")Switch( Slider1.Value, 25, "Result1" ) Der Wert des Schiebereglers entspricht dem ersten Wert, der überprüft werden soll, und das entsprechende Ergebnis wird zurückgegeben.The slider's value matches the first value to be checked, and the corresponding result is returned. "Result1""Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" )Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Der Wert des Schiebereglers entspricht dem zweiten Wert, der überprüft werden soll, und das entsprechende Ergebnis wird zurückgegeben.The slider's value matches the second value to be checked, and the corresponding result is returned. "Result2""Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" )Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Der Wert des Schiebereglers stimmt mit keinem zu überprüfenden Wert überein.The slider's value doesn't match any value to be checked. Ein DefaultResult (Standardergebnis) wurde bereitgestellt, das zurückgegeben wird.A DefaultResult was provided, so it's returned. "DefaultResult""DefaultResult"

Verzweigungen in VerhaltensformelnBranching in behavior formulas

In den folgenden Beispielen enthält ein Texteingabe-Steuerelement mit dem Namen FirstName den Wert „John“.In these examples, a Text input control named FirstName has the value "John" typed into it.

FormelFormula BeschreibungDescription ErgebnisResult
If (! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Die Bedingung ergibt TRUE, weshalb die Navigate-Funktion ausgeführt wird.The condition is true, so the Navigate function runs. Sie können die IsBlank-Funktion verwenden, um zu testen, ob ein erforderliches Formularfeld ausgefüllt wurde.You can use the IsBlank function to test whether a required form field has been filled in. Falls FirstName leer wäre, hätte diese Formel keine Auswirkung.If FirstName were blank, this formula would have no effect. TRUEtrue

Die Anzeige wird zu Screen1 geändert.The display is changed to Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() )If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Ohne den Operator !Without the ! ergibt die Bedingung den Wert FALSE, sodass die Navigate-Funktion nicht ausgeführt wird.operator, the condition is false, so the Navigate function doesn't run. Der Back-Funktion wurde ein Standardergebnis bereitgestellt, sodass sie ausgeführt wird.The Back function was provided as a DefaultResult, so it runs. TRUEtrue

Die Anzeige wird auf den Bildschirm zurückgesetzt, der zuvor angezeigt wurde.The display goes back to the screen that was previously shown.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) )Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Der Wert von FirstName.Text wird mit „Carlos“, „Kirstin“ und „John“ (in dieser Reihenfolge) verglichen.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. Eine Übereinstimmung mit „John“ wird gefunden, weshalb die App zu Screen3 navigiert.A match is found with "John", so the app navigates to Screen3. TRUEtrue

Die Anzeige wird in Screen3 geändert.The display is changed to Screen3.

Schritt für SchrittStep by step

  1. Fügen Sie ein Texteingabe-Steuerelement hinzu, und nennen Sie es Text1, wenn es diesen Namen nicht bereits standardmäßig hat.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. Geben Sie in Text1 den Wert 30 ein.In Text1, type 30.
  3. Fügen Sie ein Label-Steuerelement (Bezeichnung) hinzu, und legen Sie dessen Text-Eigenschaft auf diese Formel fest:Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20, "VIELE mehr bestellen!", Value(Text1.Text) < 40, "Mehr bestellen!", Text1.Text ) If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Das Bezeichnung-Steuerelement zeigt Mehr bestellen!,The Label control shows Order more! da der Wert von Text1 größer als 20, aber kleiner als 40 ist.because the value of Text1 is more than 20 but less than 40.

  4. Geben Sie in Text1 den Wert 15 ein.In Text1, type 15.

    Das Bezeichnung-Steuerelement zeigt VIELE mehr bestellen!,The Label control shows Order MANY more! da der Wert von Text1 kleiner als 20 ist.because the value of Text1 is less than 20.

  5. Geben Sie in Text1 den Wert 50 ein.In Text1, type 50.

    Das Bezeichnung-Steuerelement zeigt den Wert, den Sie eingegeben haben, da er größer als 40 ist.The Label control shows the value that you typed because it's more than 40.