Funkcje If i Switch w usłudze PowerAppsIf and Switch functions in PowerApps

Funkcje te umożliwiają określenie, czy dowolny warunek w zestawie jest spełniony (If) lub czy wynik formuły jest zgodny z dowolną wartością w zestawie (Switch), a następnie zwracają wynik lub wykonują akcję.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.

OpisDescription

Funkcja If sprawdza co najmniej jeden warunek aż do napotkania wyniku true.The If function tests one or more conditions until a true result is found. Jeśli taki wynik zostanie znaleziony, jest zwracana odpowiadająca wartość.If such a result is found, a corresponding value is returned. Jeśli taki wynik nie zostanie znaleziony, jest zwracana wartość domyślna.If no such result is found, a default value is returned. W obu przypadkach zwrócona wartość może być ciągiem w postaci do wyświetlenia, formułą do obliczenia lub wynikiem w innej postaci.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Funkcja Switch umożliwia obliczenie formuły i określenie, czy wynik pasuje do dowolnej wartości w podanej sekwencji.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. Jeśli dopasowanie zostanie znalezione, jest zwracana odpowiadająca wartość.If a match is found, a corresponding value is returned. Jeśli dopasowanie nie zostanie znalezione, jest zwracana wartość domyślna.If no match is found, a default value is returned. W obu przypadkach zwrócona wartość może być ciągiem w postaci do wyświetlenia, formułą do obliczenia lub wynikiem w innej postaci.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Funkcje If i Switch są bardzo podobne, ale należy użyć najlepszej funkcji w danej sytuacji:If and Switch are very similar, but you should use the best function for your situation:

  • Użyj funkcji If do obliczenia pojedynczego warunku.Use If to evaluate a single condition. Najczęściej składnia tej funkcji to If( Warunek, Wynik, WynikDomyślny ), to znaczy typowy wzorzec „if ...The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … then ...then … else ...”else …” dostępny w innych narzędziach programistycznych.pattern seen in other programming tools.
  • Użyj funkcji If do obliczenia wielu niepowiązanych warunków.Use If to evaluate multiple unrelated conditions. W usłudze PowerApps (w przeciwieństwie do programu Microsoft Excel) można określić wiele warunków bez konieczności zagnieżdżania formuł If.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • Użyj funkcji Switch do obliczenia pojedynczego warunku względem wielu możliwych dopasowań.Use Switch to evaluate a single condition against multiple possible matches. W takim przypadku można także użyć funkcji If, lecz wtedy należy powtórzyć formułę dla każdego możliwego dopasowania.You can also use If in this case, but you'd need to repeat the formula for each possible match.

Obu tych funkcji można użyć w formułach zachowania w celu utworzenia gałęzi prowadzących do co najmniej dwóch akcji.You can use both of these functions in behavior formulas to branch between two or more actions. Tylko jedna gałąź spowoduje wyzwolenie akcji.Only one branch will trigger an action. Warunki i dopasowania są obliczane po kolei, a przetwarzanie jest zatrzymywane po napotkaniu warunku o wartości true lub znalezieniu dopasowania.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

Wartość pusta jest zwracana, jeśli żaden warunek nie ma wartości true, nie znaleziono żadnych dopasowań i nie określono wyniku domyślnego.Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

SkładniaSyntax

If( Warunek, Wynik [, WynikDomyślny ] )If( Condition, ThenResult [, DefaultResult ] )
If( Warunek1, Wynik1 [, Warunek2, Wynik2, ... [ , WynikDomyślny ] ] )If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Warunki — wymagane.Condition(s) - Required. Co najmniej jedna formuła do testowania pod kątem wartości true.Formula(s) to test for true. Takie formuły zwykle zawierają operatory porównania (takie jak <, > i =) i funkcje testowe (takie jak IsBlank i IsEmpty).Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • Wynik — wymagana co najmniej jedna wartość.ThenResult(s) - Required. Odpowiadająca wartość do zwrócenia dla warunku, którego obliczenie daje wartość true.The corresponding value to return for a condition that evaluates to true.
  • WynikDomyślny — wartość opcjonalna.DefaultResult - Optional. Wartość zwracana, gdy obliczenie żadnego warunku nie daje wartości true.The value to return if no condition evaluates to true. Jeśli nie określisz tego argumentu, zostanie zwrócona wartość pusta.If you don't specify this argument, blank is returned.

Switch( Formuła, Dopasowanie1, Wynik1 [, Dopasowanie2, Wynik2, ... [, WynikDomyślny ] ] )Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formuła — wymagane.Formula - Required. Formuła obliczana pod kątem dopasowań.Formula to evaluate for matches. Jest ona obliczana tylko raz.This formula is evaluated only once.
  • Dopasowanie — wymagana co najmniej jedna wartość.Match(s) - Required. Wartości do porównania z wynikiem, który daje Formuła.Values to compare with the result from Formula. Jeśli zostanie znalezione dokładne dopasowanie, zostanie zwrócona odpowiadająca wartość Wynik.If an exact match is found, the corresponding Result is returned.
  • Wynik — wymagana co najmniej jedna wartość.Result(s) - Required. Odpowiadająca wartość zwracana, gdy zostanie znalezione dokładne dopasowanie.The corresponding value to return when an exact match is found.
  • WynikDomyślny — wartość opcjonalna.DefaultResult - Optional. Jeśli dokładne dopasowanie nie zostanie znalezione, zostanie zwrócona ta wartość.If an exact match isn't found, this value is returned. Jeśli nie określisz tego argumentu, zostanie zwrócona wartość pusta.If you don't specify this argument, blank is returned.

PrzykładyExamples

Wartości w formułachValues in formulas

W poniższych przykładach kontrolka Suwak (o nazwie Slider1) ma wartość 25.In the following examples, a Slider control (named Slider1) has a value of 25.

FormułaFormula OpisDescription WynikResult
If( Slider1.Value = 25, "Wynik1" )If( Slider1.Value = 25, "Result1" ) Warunek ma wartość true i zostanie zwrócony odpowiadający wynik.The condition is true, and the corresponding result is returned. „Result1”"Result1"
If( Slider1.Value = 25, "Result1", "Result2" )If( Slider1.Value = 25, "Result1", "Result2" ) Warunek ma wartość true i zostanie zwrócony odpowiadający wynik.The condition is true, and the corresponding result is returned. „Result1”"Result1"
If( Slider1.Value > 1000, "Result1" )If( Slider1.Value > 1000, "Result1" ) Warunek ma wartość false i nie określono wartości WynikDomyślny.The condition is false, and no DefaultResult was provided. wartość pustablank
If( Slider1.Value > 1000, "Result1", "Result2" )If( Slider1.Value > 1000, "Result1", "Result2" ) Warunek ma wartość false i podano wartość WynikDomyślny, która zostanie zwrócona.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" ) Pierwszy warunek ma wartość true i zostanie zwrócony odpowiedni wynik.The first condition is true, and the corresponding result is returned. Drugi warunek ma także wartość true, ale nie jest obliczany, ponieważ znajduje się dalej na liście argumentów niż warunek, który daje wynik 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" ) Pierwszy warunek ma wartość false, ponieważ suwak nie ma wartości pustej.The first condition is false because the slider isn't blank. Drugi warunek ma wartość true, ponieważ wartość suwaka jest liczbą, i zostanie zwrócony odpowiadający wynik.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") Pierwszy i drugi warunek mają wartość false i określono wartość WynikDomyślny, która zostanie zwrócona.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" ) Wartość suwaka pasuje do pierwszej sprawdzanej wartości i zostanie zwrócony odpowiadający wynik.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" ) Wartość suwaka pasuje do drugiej sprawdzanej wartości i zostanie zwrócony odpowiadający wynik.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" ) Wartość suwaka nie pasuje do żadnej sprawdzanej wartości.The slider's value doesn't match any value to be checked. Podano wartość DefaultResult, która zostanie zwrócona.A DefaultResult was provided, so it's returned. „DefaultResult”"DefaultResult"

Rozgałęzianie w formułach zachowaniaBranching in behavior formulas

W poniższych przykładach w kontrolce Wprowadzanie tekstu o nazwie Imię jest wpisana wartość „Jan”.In these examples, a Text input control named FirstName has the value "John" typed into it.

FormułaFormula OpisDescription WynikResult
If( ! IsBlank( Imię.Text), Navigate( Screen1, ScreenTransition.None ) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Warunek ma wartość true, więc zostanie uruchomiona funkcja Navigate.The condition is true, so the Navigate function runs. Funkcja IsBlank umożliwia sprawdzenie, czy wymagane pole formularza zostało wypełnione.You can use the IsBlank function to test whether a required form field has been filled in. Jeśli kontrolka Imię zawierałaby wartość pustą, formuła nie miałaby żadnego efektu.If FirstName were blank, this formula would have no effect. truetrue

Wyświetlanie zostanie przełączone na ekran o nazwie 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() ) Bez operatora !Without the ! warunek ma wartość false, więc funkcja Navigate nie zostanie uruchomiona.operator, the condition is false, so the Navigate function doesn't run. Funkcja Back została podana jako wartość WynikDomyślny, więc zostanie uruchomiona.The Back function was provided as a DefaultResult, so it runs. truetrue

Wyświetlanie zostanie przełączone z powrotem na poprzedni ekran.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 ) ) Wartość FirstName.Text zostanie porównana z wartościami „Carlos”, „Kirstin” i „John” w tej kolejności.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. Zostanie znalezione dopasowanie z wartością „John”, więc aplikacja przejdzie do ekranu o nazwie Screen3.A match is found with "John", so the app navigates to Screen3. truetrue

Wyświetlanie zostanie przełączone na ekran o nazwie Screen3.The display is changed to Screen3.

Krok po krokuStep by step

  1. Dodaj kontrolkę Wprowadzanie tekstu i nadaj jej nazwę Text1, jeśli nazwa domyślna jest inna.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. W kontrolce Text1 wpisz wartość 30.In Text1, type 30.
  3. Dodaj kontrolkę Etykieta i ustaw dla jej właściwości Text następującą formułę:Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20, "Zamów dużo więcej!", Value(Text1.Text) < 40, "Zamów więcej!", Text1.Text ) If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Kontrolka Etykieta wyświetla wartość Zamów więcej!,The Label control shows Order more! ponieważ wartość kontrolki Text1 jest większa niż 20, lecz mniejsza niż 40.because the value of Text1 is more than 20 but less than 40.

  4. W kontrolce Text1 wpisz wartość 15.In Text1, type 15.

    Kontrolka Etykieta wyświetla wartość Zamów dużo więcej!,The Label control shows Order MANY more! ponieważ wartość kontrolki Text1 jest mniejsza niż 20.because the value of Text1 is less than 20.

  5. W kontrolce Text1 wpisz wartość 50.In Text1, type 50.

    Kontrolka Etykieta wyświetla wpisaną wartość, ponieważ wartość jest większa od 40.The Label control shows the value that you typed because it's more than 40.