De functies If en Switch in PowerAppsIf and Switch functions in PowerApps

Hiermee wordt bepaald of een voorwaarde in een set true is (If) of dat het resultaat van een formule overeenkomt met een willekeurige waarde in een set (Switch). Vervolgens wordt een resultaat geretourneerd of een actie uitgevoerd.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.

BeschrijvingDescription

De functie If test één of meer voorwaarden totdat een true resultaat is gevonden.The If function tests one or more conditions until a true result is found. Als een dergelijk resultaat wordt gevonden, wordt er een overeenkomende waarde geretourneerd.If such a result is found, a corresponding value is returned. Als een dergelijk resultaat niet wordt gevonden, wordt er een standaardwaarde geretourneerd.If no such result is found, a default value is returned. In beide gevallen kan de geretourneerde waarde een tekenreeks die u kunt weergeven, een formule die u kunt evalueren of een ander soort resultaat zijn.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

De functie Switch evalueert een formule en bepaalt of het resultaat overeenkomt met een waarde in een volgorde die u opgeeft.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. Als er een overeenkomst wordt gevonden, wordt er een overeenkomende waarde geretourneerd.If a match is found, a corresponding value is returned. Als er geen overeenkomst wordt gevonden, wordt er een standaardwaarde geretourneerd.If no match is found, a default value is returned. In beide gevallen kan de geretourneerde waarde een tekenreeks die u kunt weergeven, een formule die u kunt evalueren of een ander soort resultaat zijn.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

If en Switch zijn vergelijkbaar, maar het is raadzaam om de aanbevolen functie te gebruiken voor uw situatie:If and Switch are very similar, but you should use the best function for your situation:

  • Gebruik If om één voorwaarde evalueren.Use If to evaluate a single condition. De meestvoorkomende syntaxis voor deze functie is If( Condition, ThenResult, DefaultResult ). Dit resulteert in het veelvoorkomende patroon 'if ...The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … then …then … else …'else …” dat in andere programmeertools te zien is.pattern seen in other programming tools.
  • Gebruik If om meerdere niet-gerelateerde voorwaarden te evalueren.Use If to evaluate multiple unrelated conditions. In PowerApps (in tegenstelling tot Microsoft Excel) kunt u meerdere voorwaarden opgeven zonder If-formules te moeten nesten.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • Gebruik Switch om één voorwaarde te evalueren ten opzichte van meerdere mogelijke overeenkomsten.Use Switch to evaluate a single condition against multiple possible matches. U kunt in dit geval ook If gebruiken, maar dan moet u de formule herhalen voor elke mogelijke overeenkomst.You can also use If in this case, but you'd need to repeat the formula for each possible match.

U kunt beide functies gebruiken in gedragformules om vertakkingen te maken tussen twee of meer acties.You can use both of these functions in behavior formulas to branch between two or more actions. Slechts één vertakking activeert een actie.Only one branch will trigger an action. Voorwaarden en overeenkomsten worden op volgorde geëvalueerd en het proces wordt gestopt als een voorwaarde true is of er een overeenkomst is gevonden.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

Blank wordt geretourneerd als geen voorwaarden true zijn, er geen overeenkomsten zijn gevonden en u geen standaardresultaat opgeeft.Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

SyntaxisSyntax

If( Condition, ThenResult [, DefaultResult ] )If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condition(s) - vereist.Condition(s) - Required. Formule(s) om te controleren op true.Formula(s) to test for true. Deze formules bevatten gewoonlijk vergelijkings-operators (zoals <, > en =) en testfuncties zoals IsBlank en IsEmpty.Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • ThenResult(s) - vereist.ThenResult(s) - Required. De overeenkomstige waarde die voor een voorwaarde moet worden geretourneerd en die wordt beoordeeld als true.The corresponding value to return for a condition that evaluates to true.
  • DefaultResult - optioneel.DefaultResult - Optional. De waarde die moet worden geretourneerd als geen voorwaarden true is.The value to return if no condition evaluates to true. Als u dit argument niet opgeeft, wordt blank geretourneerd.If you don't specify this argument, blank is returned.

Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formule - vereist.Formula - Required. De formule die moet worden geëvalueerd op overeenkomsten.Formula to evaluate for matches. Deze formule wordt slechts één keer geëvalueerd.This formula is evaluated only once.
  • Match(s) - vereist.Match(s) - Required. Waarden die moeten worden vergeleken met het resultaat van Formula.Values to compare with the result from Formula. Als een exacte overeenkomst wordt gevonden, wordt het bijbehorende Result geretourneerd.If an exact match is found, the corresponding Result is returned.
  • Result(s) - vereist.Result(s) - Required. De overeenkomstige waarde die moet worden geretourneerd wanneer er een exacte overeenkomst is gevonden.The corresponding value to return when an exact match is found.
  • DefaultResult - optioneel.DefaultResult - Optional. Als er geen exacte overeenkomst wordt gevonden, wordt deze waarde geretourneerd.If an exact match isn't found, this value is returned. Als u dit argument niet opgeeft, wordt blank geretourneerd.If you don't specify this argument, blank is returned.

VoorbeeldenExamples

Waarden in formulesValues in formulas

In de volgende voorbeelden heeft een schuifregelaar met de naam Schuifregelaar1 een waarde van 25.In the following examples, a Slider control (named Slider1) has a value of 25.

FormuleFormula BeschrijvingDescription ResultaatResult
Als( Schuifregelaar1.Value = 25, "Result1" )If( Slider1.Value = 25, "Result1" ) De voorwaarde is true en het bijbehorende resultaat wordt geretourneerd.The condition is true, and the corresponding result is returned. "Result1""Result1"
Als( Schuifregelaar1.Value = 25, "Result1", "Result2" )If( Slider1.Value = 25, "Result1", "Result2" ) De voorwaarde is true en het bijbehorende resultaat wordt geretourneerd.The condition is true, and the corresponding result is returned. "Result1""Result1"
Als( Schuifregelaar1.Value > 1000, "Result1" )If( Slider1.Value > 1000, "Result1" ) De voorwaarde is false en er is geen DefaultResult opgegeven.The condition is false, and no DefaultResult was provided. leegblank
Als( Schuifregelaar1.Waarde > 1000, "Result1", "Result2" )If( Slider1.Value > 1000, "Result1", "Result2" ) De voorwaarde is false, er is een DefaultResult opgegeven en deze wordt geretourneerd.The condition is false, a DefaultResult was provided, and it's returned. "Result2""Result2"
Als( Schuifregelaar1.Waarde = 25, "Result1", Schuifregelaar1.Value > 0, "Result2" )If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) De eerste voorwaarde is true en het bijbehorende resultaat wordt geretourneerd.The first condition is true, and the corresponding result is returned. De tweede voorwaarde is ook true, maar deze wordt niet geëvalueerd omdat deze later in de lijst met argumenten staat dan een voorwaarde die wordt geëvalueerd als true.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( Schuifregelaar1.Value ), "Result1", IsNumeric( Schuifregelaar1.Value ), "Result2" )If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) De eerste voorwaarde is false omdat de schuifregelaar niet leeg is.The first condition is false because the slider isn't blank. De tweede voorwaarde is true omdat de waarde van de schuifregelaar een getal is; het bijbehorende resultaat wordt geretourneerd.The second condition is true because the slider's value is a number, and the corresponding result is returned. "Result2""Result2"
If( Schuifregelaar1.Value > 1000, "Result1", Schuifregelaar1.Value > 50, "Result2", "Result3")If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Zowel de eerste als de tweede voorwaarde is false en DefaultResult is opgegeven en geretourneerd.Both the first and second conditions are false, a DefaultResult was provided, and it's returned. "Result3""Result3"
Switch( Schuifregelaar1.Value, 25, "Result1" )Switch( Slider1.Value, 25, "Result1" ) De waarde van de schuifregelaar komt overeen met de eerste waarde die moet worden gecontroleerd en het bijbehorende resultaat wordt geretourneerd.The slider's value matches the first value to be checked, and the corresponding result is returned. "Result1""Result1"
Switch( Schuifregelaar1.Value, 20, "Result1", 25, "Result2", 30, "Result3" )Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) De waarde van de schuifregelaar komt overeen met de tweede waarde die moet worden gecontroleerd en het bijbehorende resultaat wordt geretourneerd.The slider's value matches the second value to be checked, and the corresponding result is returned. "Result2""Result2"
Switch( Schuifregelaar1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" )Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) De waarde van de schuifregelaar komt niet overeen met een van de waarden die worden gecontroleerd.The slider's value doesn't match any value to be checked. Een DefaultResult is opgegeven, dus deze wordt geretourneerd.A DefaultResult was provided, so it's returned. "DefaultResult""DefaultResult"

Vertakkingen in gedragsformulesBranching in behavior formulas

In deze voorbeelden is in een Tekstinvoer-besturingselement met de naam FirstName de waarde 'John' getypt.In these examples, a Text input control named FirstName has the value "John" typed into it.

FormuleFormula BeschrijvingDescription ResultaatResult
Als( ! IsBlank( Voornaam.Text ), Navigate( Scherm1, Schermovergang.None) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) De voorwaarde is true dus de functie Navigate wordt uitgevoerd.The condition is true, so the Navigate function runs. U kunt de functie IsBlank gebruiken om te testen of een verplicht formulierveld is ingevuld.You can use the IsBlank function to test whether a required form field has been filled in. Als Voornaam leeg was, zou deze formule geen effect hebben.If FirstName were blank, this formula would have no effect. truetrue

De weergave wordt gewijzigd naar Scherm1.The display is changed to Screen1.
Als( IsBlank( Voornaam.Text ), Navigate( Scherm1, Schermovergang.None), Terug() )If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Zonder de operator !Without the ! is de voorwaarde false, dus wordt de functie Navigate niet uitgevoerd.operator, the condition is false, so the Navigate function doesn't run. De functie Terug is opgegeven als een DefaultResult, dus deze wordt uitgevoerd.The Back function was provided as a DefaultResult, so it runs. truetrue

De weergave gaat terug naar het scherm dat eerder werd weergegeven.The display goes back to the screen that was previously shown.
Switch( Voornaam.Text, "Carlos", Navigate( Scherm1, Schermovergang.None ), "Kirstin", Navigate( Scherm2, Schermovergang.None ), "John", Navigate( Scherm3, Schermovergang.None ) )Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) De waarde van Voornaam.Text wordt vergeleken met 'Carlos', 'Kirstin' en 'John', in die volgorde.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. Er is een overeenkomst gevonden met 'John', dus de app navigeert naar Scherm3.A match is found with "John", so the app navigates to Screen3. truetrue

De weergave wordt gewijzigd naar Scherm3.The display is changed to Screen3.

Stap voor stapStep by step

  1. Voeg een Tekstinvoer-besturingselement toe en noem het Tekst1 als het die naam niet standaard al heeft.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. Typ in Tekst1 30.In Text1, type 30.
  3. Voeg een besturingselement van het type Label toe en stel de eigenschap Text in op deze formule:Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20, "Bestel VEEL meer!", Value(Text1.Text) < 40, "Bestel meer!", Text1.Text )If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    In het besturingselement Label wordt Bestel meer! weergegevenThe Label control shows Order more! omdat de waarde van Tekst1 hoger is dan 20, maar lager dan 40.because the value of Text1 is more than 20 but less than 40.

  4. Typ in Tekst1 15.In Text1, type 15.

    In het besturingselement Label wordt Bestel VEEL meer! weergegevenThe Label control shows Order MANY more! omdat de waarde van Tekst1 lager is dan 20.because the value of Text1 is less than 20.

  5. Typ in Tekst1 50.In Text1, type 50.

    Het besturingselement Label geeft de waarde weer die u hebt getypt, omdat deze hoger is dan 40.The Label control shows the value that you typed because it's more than 40.