Die Funktionen „If“- und „Switch“
Gilt für: Canvas-Apps Dataverse Formelspalten Desktop-Flows Modellgesteuerte Apps Power Pages Power Platform CLI
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.
Beschreibung
Die If-Funktion testet eine oder mehrere Bedingungen, bis das Ergebnis TRUE gefunden wird. Wenn ein solches Ergebnis gefunden wird, erfolgt die Rückgabe eines entsprechenden Werts. Wenn kein solches Ergebnis gefunden wird, erfolgt die Rückgabe eines Standardwerts. In beiden Fällen kann der zurückgegebene Wert eine zu zeigende Zeichenfolge, eine auszuwertende Formel oder eine andere Form von Ergebnis sein.
Die Switch-Funktion wertet eine Formel aus und bestimmt, ob das Ergebnis mit einem Wert in einer Sequenz übereinstimmt, die Sie angeben. Wenn eine Übereinstimmung gefunden wird, erfolgt die Rückgabe eines entsprechenden Werts. Wenn keine Übereinstimmung gefunden wird, erfolgt die Rückgabe eines Standardwerts. In beiden Fällen kann der zurückgegebene Wert eine zu zeigende Zeichenfolge, eine auszuwertende Formel oder eine andere Form von Ergebnis sein.
If und Switch sind sehr ähnlich, Sie sollten jedoch die für Ihre Situation beste Funktion verwenden:
- Verwenden Sie If, um eine einzelne Bedingung auszuwerten. Die gebräuchlichste Syntax für diese Funktion ist If( Condition, ThenResult, DefaultResult ), die das gängige Muster „if … then … else ...“ bereitstellt, das Sie aus anderen Programmiersprachen kennen.
- Verwenden Sie If, um mehrere unabhängige Bedingungen auszuwerten. In Power Apps können Sie (im Gegensatz zu Microsoft Excel) mehrere Bedingungen angegeben, ohne If-Formeln schachteln zu müssen.
- Verwenden Sie Switch, um eine einzelne Bedingung im Abgleich mit mehreren möglichen Übereinstimmungen auszuwerten. Sie können auch in diesem Fall If verwenden, doch dann müssen Sie die Formel für jede mögliche Übereinstimmung wiederholen.
Sie können diese beiden Formeln in Verhaltensformeln verwenden, um eine Verzweigung zwischen zwei oder mehr Aktionen zu erstellen. Nur eine Verzweigung löst eine Aktion aus. Bedingungen und Übereinstimmungen werden in der Reihenfolge ausgewertet und angehalten, wenn eine Bedingung TRUE ist oder eine Übereinstimmung gefunden wird.
„Leer“ wird zurückgegeben, wenn keine Bedingungen erfüllt sind , keine Übereinstimmungen gefunden werden und Sie kein Standardergebnis angeben.
Syntax
Wenn( Bedingung, DannErgebnis [, Standardergebnis ] )
Wenn( Bedingung1, DannErgebnis1 [, Bedingung2, DannErgebnis2, ... [, Standardergebnis ] ] )
- Bedingungen - Erforderlich. Auf TRUE zu testende Formeln. Solche Formeln enthalten häufig Vergleichs-Operatoren (z. B. < , > und =) sowie Testfunktionen wie IsBlank und IsEmpty.
- ThenResults – Erforderlich. Der entsprechende Wert für eine Bedingung, die TRUE ergibt, soll zurückgegeben werden.
- DefaultResult – Optional. Dies ist der zurückzugebende Wert, wenn keine Bedingung mit TRUE ausgewertet wird. Wenn Sie dieses Argument nicht angeben, wird blank zurückgegeben.
Schalter( Formel, Übereinstimmung1, Ergebnis1 [, Übereinstimmung2, Ergebnis2, ... [, Standardergebnis ] ] )
- Formel – Erforderlich. Die für Übereinstimmungen auszuwertende Formel. Diese Formel wird nur einmal ausgewertet.
- Übereinstimmungen – Erforderlich. Werte für einen Vergleich mit dem Ergebnis der Formel. Wird eine genaue Übereinstimmung gefunden, wird das entsprechende Ergebnis zurückgegeben.
- Ergebnisse - Erforderlich. Der entsprechende Wert, der zurückgegeben wird, wenn eine genaue Übereinstimmung gefunden wird.
- DefaultResult – Optional. Wenn keine genaue Übereinstimmung gefunden wird, wird dieser Wert zurückgegeben. Wenn Sie dieses Argument nicht angeben, wird blank zurückgegeben.
Beispiele
Werte in Formeln
In den folgenden Beispielen wird ein Slider-Steuerelement mit dem Namen Slider1 mit dem Wert 25 verwendet.
Formel | Beschreibung | Result |
---|---|---|
Wenn (Schieberegler1.Wert = 25, "Ergebnis1") | Für die Bedingung gilt TRUE, und das entsprechende Ergebnis wird zurückgegeben. | "Result1" |
Wenn (Schieberegler1.Wert = 25, "Ergebnis1", "Ergebnis2") | Für die Bedingung gilt TRUE, und das entsprechende Ergebnis wird zurückgegeben. | "Result1" |
Wenn (Schieberegler1.Wert > 1000, "Ergebnis1") | Die Bedingung ist FALSE, und es wird kein DefaultResult bereitgestellt. | leer |
Wenn (Schieberegler1.Wert > 1000, "Ergebnis1", "Ergebnis2") | Die Bedingung ist FALSE, ein DefaultResult wurde bereitgestellt und wird zurückgegeben. | "Result2" |
Wenn (Schieberegler1.Wert = 25, "Ergebnis1", Schieberegler1.Wert > 0, "Ergebnis2") | Die erste Bedingung ergibt TRUE, und das entsprechende Ergebnis wird zurückgegeben. 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. | "Result1" |
Wenn(IstLeer(Schieberegler1.Wert), "Ergebnis1", IstNumerisch(Schieberegler1.Wert), "Ergebnis2") | Die erste Bedingung ergibt FALSE, weil der Schieberegler nicht blank ist. Die zweite Bedingung ergibt TRUE, da der Wert des Schiebereglers eine Zahl ist und das entsprechende Ergebnis zurückgegeben wird. | "Result2" |
Wenn (Schieberegler1.Wert > 1000, "Ergebnis1", Schieberegler1.Wert > 50, "Ergebnis2", "Ergebnis3") | Die erste und zweite Bedingung ergeben FALSE, ein Standardergebnis wurde bereitgestellt und wird zurückgegeben. | "Result3" |
Schalter( Schieberegler1.Wert, 25, "Ergebnis1" ) | Der Wert des Schiebereglers entspricht dem ersten Wert, der überprüft werden soll, und das entsprechende Ergebnis wird zurückgegeben. | "Result1" |
Schalter( Schieberegler1.Wert, 20, "Ergebnis1", 25, "Ergebnis2", 30, "Ergebnis3" ) | Der Wert des Schiebereglers entspricht dem zweiten Wert, der überprüft werden soll, und das entsprechende Ergebnis wird zurückgegeben. | "Result2" |
Schalter( Schieberegler1.Wert, 20, "Ergebnis1", 10, "Ergebnis2", 0, "Ergebnis3", "Standardergebnis" ) | Der Wert des Schiebereglers stimmt mit keinem zu überprüfenden Wert überein. Ein DefaultResult (Standardergebnis) wurde bereitgestellt, das zurückgegeben wird. | "DefaultResult" |
Verzweigungen in Verhaltensformeln
In den folgenden Beispielen enthält ein Text input-Steuerelement mit dem Namen FirstName den Wert „John“.
Formel | Beschreibung | Ergebnis |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Die Bedingung ergibt TRUE, weshalb die Navigate-Funktion ausgeführt wird. Sie können die IsBlank-Funktion verwenden, um zu testen, ob ein erforderliches Formularfeld ausgefüllt wurde. Falls FirstName blank wäre, hätte diese Formel keine Auswirkung. | WAHR Die Anzeige wird zu Screen1 geändert. |
Wenn (IstLeer (Vorname.Text), Navigieren (Bildschirm1, Bildschirmübergang.Keine), Zurück ()) | Ohne ! Operator ergibt die Bedingung den Wert FALSE, sodass die Navigate-Funktion nicht ausgeführt wird. Der Back-Funktion wurde ein Standardergebnis bereitgestellt, sodass sie ausgeführt wird. | WAHR Die Anzeige wird auf den Bildschirm zurückgesetzt, der zuvor angezeigt wurde. |
Wechseln(Vorname.Text, "Carlos", Navigieren(Bildschirm1, Bildschirmübergang.Keine), "Kirstin", Navigieren(Bildschirm2, Bildschirmübergang.Keine), "John", Navigieren(Bildschirm3, Bildschirmübergang.Keine)) | Der Wert von FirstName.Text wird mit „Carlos“, „Kirstin“ und „John“ (in dieser Reihenfolge) verglichen. Eine Übereinstimmung mit „John“ wird gefunden, weshalb die App zu Screen3 navigiert. | WAHR Die Anzeige wird in Screen3 geändert. |
Schritt für Schritt
Fügen Sie ein Text input-Steuerelement hinzu, und nennen Sie es Text1, wenn es diesen Namen nicht bereits standardmäßig hat.
Geben Sie in Text1 den Wert 30 ein.
Fügen Sie ein Label-Steuerelement hinzu, und legen Sie dessen Text-Eigenschaft auf diese Formel fest:
Wenn (Wert (Text1.Text) < 20, „Bestellen Sie VIEL mehr!“, Wert (Text1.Text) < 40, „Bestellen Sie mehr!“, Text1.Text)Die Beschriftung Kontrolle zeigt Bestellen Sie mehr!, weil der Wert von Text 1 mehr als 20 ist, aber weniger als 40.
Geben Sie in Text1 den Wert 15 ein.
Die Beschriftung Kontrolle zeigt Bestellen Sie mehr!, weil der Wert von Text 1 mehr als 20 ist.
Geben Sie in Text1 den Wert 50 ein.
Das Label-Steuerelement zeigt den Wert, den Sie eingegeben haben, da er größer als 40 ist.