Fonctions If et Switch dans PowerAppsIf and Switch functions in PowerApps

Déterminent si une condition présente dans un ensemble est vraie (If) ou si le résultat d’une formule correspond à une valeur quelconque dans un ensemble (Switch), puis retourne un résultat ou exécute une action.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.

DescriptionDescription

La fonction If teste une ou plusieurs conditions jusqu’à ce qu’un résultat true soit trouvé.The If function tests one or more conditions until a true result is found. Si un résultat de ce type est trouvé, une valeur correspondante est retournée.If such a result is found, a corresponding value is returned. Si aucun résultat de ce type n’est trouvé, une valeur par défaut est retournée.If no such result is found, a default value is returned. Dans les deux cas, la valeur retournée peut être une chaîne à afficher, une formule à évaluer ou une autre forme de résultat.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

La fonction Switch évalue une formule et détermine si le résultat correspond à une valeur dans une séquence que vous spécifiez.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. Si une correspondance est trouvée, sa valeur est retournée.If a match is found, a corresponding value is returned. Si aucune correspondance n’est trouvée, une valeur par défaut est retournée.If no match is found, a default value is returned. Dans les deux cas, la valeur retournée peut être une chaîne à afficher, une formule à évaluer ou une autre forme de résultat.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Les fonctions If et Switch sont très similaires, mais vous devez utiliser celle qui est la mieux adaptée à votre situation :If and Switch are very similar, but you should use the best function for your situation:

  • Utilisez la fonction If pour évaluer une condition unique.Use If to evaluate a single condition. La syntaxe la plus courante pour cette fonction est If (Condition, ThenResult, DefaultResult), qui correspond au schéma « Si...The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … Alors...then … Autrement... »else …” dans d’autres outils de programmation.pattern seen in other programming tools.
  • Utilisez la fonction If pour évaluer plusieurs conditions sans lien entre elles.Use If to evaluate multiple unrelated conditions. Dans PowerApps (contrairement à Microsoft Excel), vous pouvez spécifier plusieurs conditions sans avoir à imbriquer des formules If.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • Utilisez la fonction Switch pour évaluer une condition unique par rapport à plusieurs correspondances possibles.Use Switch to evaluate a single condition against multiple possible matches. Vous pouvez également utiliser la fonction If dans ce cas, mais vous devez répéter la formule pour chaque correspondance possible.You can also use If in this case, but you'd need to repeat the formula for each possible match.

Vous pouvez utiliser ces deux fonctions dans des formules de comportement afin de créer une branche entre deux actions ou plus.You can use both of these functions in behavior formulas to branch between two or more actions. Une seule branche déclenche une action.Only one branch will trigger an action. Les conditions et les correspondances sont évaluées dans l’ordre, et l’évaluation s’arrête si une condition est vraie (true) ou si une correspondance est trouvée.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

Le résultat Blank est retourné si aucune condition n’est vraie (true), si aucune correspondance n’est trouvée, et si vous ne spécifiez pas de résultat par défaut.Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

SyntaxeSyntax

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

  • Condition(s) - Requis.Condition(s) - Required. Formule(s) pour tester un résultat true.Formula(s) to test for true. De telles formules contiennent généralement des opérateurs de comparaison tels que <, > et =, et des fonctions de test telles que IsBlank et IsEmpty.Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • ThenResult(s) - Requis.ThenResult(s) - Required. La valeur correspondante à retourner pour une condition qui donne la valeur true.The corresponding value to return for a condition that evaluates to true.
  • DefaultResult - Facultatif.DefaultResult - Optional. La valeur à retourner si aucune condition n’est true.The value to return if no condition evaluates to true. Si vous ne spécifiez pas cet argument, une valeur vide est retournée.If you don't specify this argument, blank is returned.

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

  • Formula - Requis.Formula - Required. Formule pour évaluer des correspondances.Formula to evaluate for matches. Cette formule n’est évaluée qu’une seule fois.This formula is evaluated only once.
  • Match(s) - Requis.Match(s) - Required. Valeurs à comparer au résultat de la Formule.Values to compare with the result from Formula. Si une correspondance exacte n’est trouvée, le Résultat correspondant est retourné.If an exact match is found, the corresponding Result is returned.
  • Result(s) - Requis.Result(s) - Required. La valeur correspondante à retourner quand une correspondance exacte est trouvée.The corresponding value to return when an exact match is found.
  • DefaultResult - Facultatif.DefaultResult - Optional. Si aucune correspondance exacte n’est trouvée, cette valeur est retournée.If an exact match isn't found, this value is returned. Si vous ne spécifiez pas cet argument, une valeur vide est retournée.If you don't specify this argument, blank is returned.

ExemplesExamples

Valeurs dans les formulesValues in formulas

Dans les exemples suivants, un contrôle Slider (nommé Slider1) a la valeur 25.In the following examples, a Slider control (named Slider1) has a value of 25.

FormuleFormula DescriptionDescription RésultatResult
If( Slider1.Value = 25, "Result1" )If( Slider1.Value = 25, "Result1" ) La condition est true, et le résultat correspondant est retourné.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value = 25, "Result1", "Result2" )If( Slider1.Value = 25, "Result1", "Result2" ) La condition est true, et le résultat correspondant est retourné.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value > 1000, "Result1" )If( Slider1.Value > 1000, "Result1" ) La condition est false et aucune valeur DefaultResult n’a été fournie.The condition is false, and no DefaultResult was provided. blankblank
If( Slider1.Value > 1000, "Result1", "Result2" )If( Slider1.Value > 1000, "Result1", "Result2" ) La condition est false, et une valeur DefaultResult a été fournie et retournée.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" ) La première condition est true, et le résultat correspondant est retourné.The first condition is true, and the corresponding result is returned. La deuxième condition est également true mais n’est pas évaluée, car elle apparaît plus loin dans la liste d’arguments qu’une condition qui prend la valeur 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( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" )If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) La première condition est false, car le curseur n’est pas blank.The first condition is false because the slider isn't blank. La deuxième condition est true car la valeur du curseur est un nombre, et le résultat correspondant est retourné.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") Les première et deuxième conditions sont false, et une valeur DefaultResult a été fournie et retournée.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" ) La valeur du curseur correspond à la première valeur à vérifier, et le résultat correspondant est retourné.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" ) La valeur du curseur correspond à la deuxième valeur à vérifier, et le résultat correspondant est retourné.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" ) La valeur du curseur ne correspond à aucune valeur à vérifier.The slider's value doesn't match any value to be checked. Une valeur DefaultResult a été fournie, qui est retournée.A DefaultResult was provided, so it's returned. "DefaultResult""DefaultResult"

Création de branches dans les formules de comportementBranching in behavior formulas

Dans ces exemples, la valeur « John » est tapée dans un contrôle Text input nommé FirstName.In these examples, a Text input control named FirstName has the value "John" typed into it.

FormuleFormula DescriptionDescription RésultatResult
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) La condition étant true, la fonction Navigate s’exécute.The condition is true, so the Navigate function runs. Vous pouvez utiliser la fonction IsBlank pour vérifier si un champ de formulaire obligatoire a été renseigné.You can use the IsBlank function to test whether a required form field has been filled in. Si la valeur FirstName était blank, cette formule n’aurait aucun effet.If FirstName were blank, this formula would have no effect. truetrue

L’affichage passe à Screen1.The display is changed to Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() )If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Sans l’opérateur !,Without the ! la condition est false, de sorte que la fonction Navigate ne s’exécute pas.operator, the condition is false, so the Navigate function doesn't run. La fonction Back ayant été fournie en tant que valeur de DefaultResult, elle s’exécute.The Back function was provided as a DefaultResult, so it runs. truetrue

L’affichage revient à l’écran présenté précédemment.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 ) ) La valeur de FirstName.Text est comparée à « Carlos », « Kirstin » et « John », dans cet ordre.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. Une correspondance étant trouvée avec « John », l’application accède à Screen3.A match is found with "John", so the app navigates to Screen3. truetrue

L’affichage passe à Screen3.The display is changed to Screen3.

Étape par étapeStep by step

  1. Ajoutez un contrôle Text input, puis nommez-le Text1 s’il n’a pas ce nom par défaut.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. Dans Text1, tapez 30.In Text1, type 30.
  3. Ajoutez un contrôle Label et définissez sa propriété Text sur cette formule :Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20, "Commandez beaucoup plus !", Value(Text1.Text) < 40, "Commandez plus !", Text1.Text ) If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Le contrôle Label affiche Commandez plus !The Label control shows Order more! parce que la valeur de Text1 est supérieure à 20, mais inférieure à 40.because the value of Text1 is more than 20 but less than 40.

  4. Dans Text1, tapez 15.In Text1, type 15.

    Le contrôle Label affiche Commandez beaucoup plus !The Label control shows Order MANY more! parce que la valeur de Text1 est inférieure à 20.because the value of Text1 is less than 20.

  5. Dans Text1, tapez 50.In Text1, type 50.

    Le contrôle Label affiche la valeur que vous avez tapée, car elle est supérieure à 40.The Label control shows the value that you typed because it's more than 40.