Determina se qualquer condição em um conjunto é verdadeira (If) ou se o resultado de uma fórmula corresponde a qualquer valor em um conjunto (Switch) e, em seguida, retorna um resultado ou executa uma ação.

Descrição

A função If testa uma ou mais condições até que um resultado true seja encontrado. Se tal resultado for encontrado, um valor correspondente será retornado. Se tal resultado não for encontrado, um valor padrão será retornado. Em ambos os casos, o valor retornado pode ser uma cadeia de caracteres para mostrar, uma fórmula para avaliar ou outra forma de resultado.

A função Switch avalia uma fórmula e determina se o resultado corresponde a qualquer valor em uma sequência especificada. Se uma correspondência for encontrada, um valor correspondente será retornado. Se nenhuma correspondência for encontrada, um valor padrão será retornado. Em ambos os casos, o valor retornado pode ser uma cadeia de caracteres para mostrar, uma fórmula para avaliar ou outra forma de resultado.

If e Switch são muito semelhantes, mas a melhor função para sua situação é a que deve ser usada:

  • Use If para avaliar uma única condição. A sintaxe mais comum para essa função é If( Condition, ThenResult, DefaultResult ), que fornece o frequente padrão "if… then… else…” visto em outras ferramentas de programação.
  • Use If para avaliar várias condições não relacionadas. No PowerApps (ao contrário do Microsoft Excel), é possível especificar várias condições sem precisar aninhar fórmulas If.
  • Use Switch para avaliar uma única condição em relação a várias correspondências possíveis. Também é possível usar If nesse caso, mas seria necessário repetir a fórmula para cada correspondência possível.

É possível usar ambas as funções em fórmulas de comportamento para o branch entre duas ou mais ações. Apenas um branch disparará uma ação. Condições e correspondências são avaliadas em ordem e param se uma condição é true ou se uma correspondência é encontrada.

Blank será retornado se nenhuma condição for true, se não houver correspondências e se um resultado padrão não for especificado.

Sintaxe

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

  • Condições - obrigatório. Fórmulas a serem testadas para true. Normalmente, essas fórmulas contêm operadores de comparações (como <, >, e =) e funções de teste como IsBlank e IsEmpty.
  • ThenResult(s) – obrigatório. O valor correspondente para retornar uma condição que é avaliada como verdadeira.
  • DefaultResult – opcional. Valor a ser retornado se nenhuma das condições for avaliada como true. Se você não especificar esse argumento, o valor retornará em branco.

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

  • Formula – Obrigatório. Fórmula a ser avaliada para correspondências. Essa fórmula é avaliada apenas uma vez.
  • Match(s) – Obrigatório. Valores a se comparar com o resultado de Fórmula. Se uma correspondência exata for encontrada, o Resultado correspondente será retornado.
  • Resultados - obrigatório. O valor correspondente a ser retornado quando uma correspondência exata for encontrada.
  • DefaultResult – opcional. Se uma correspondência exata não for encontrada, o valor será retornado. Se você não especificar esse argumento, o valor retornará em branco.

Exemplos

Valores em fórmulas

Nos exemplos a seguir, um controle Deslizante (chamado Slider1) tem um valor de 25.

Fórmula Descrição Resultado
If( Slider1.Value = 25, "Resultado1") A condição é verdadeira e o resultado correspondente é retornado. "Resultado1"
If( Slider1.Value = 25, "Resultado1", "Resultado2") A condição é verdadeira e o resultado correspondente é retornado. "Resultado1"
If( Slider1.Value > 1000, "Resultado1") A condição é false e não é fornecido nenhum DefaultResult. em branco
If( Slider1.Value > 1000, "Resultado1", "Resultado2") A condição é false, um DefaultResult foi fornecido e retornado. "Resultado2"
If( Slider1.Value = 25, "Resultado1" Slider1.Value > 0, "Resultado2") A primeira condição é verdadeira e o resultado correspondente é retornado. A segunda condição é também verdadeira, mas não é avaliada, porque aparece posteriormente na lista de argumentos do que uma condição avaliada como verdadeira. "Resultado1"
If( IsBlank( Slider1.Value ), "Resultado1", IsNumeric( Slider1.Value ), "Resultado2") A primeira condição é false, porque o controle deslizante não está em branco. A segunda condição é verdadeira porque o valor do controle deslizante é um número e o resultado correspondente será retornado. "Resultado2"
If(Slider1.Value > 1000, "Resultado1" Slider1.Value > 50, "Resultado2", "Resultado3") A primeira e segunda condições são false e o DefaultResult foi fornecido e retornado. "Resultado3"
Switch( Slider1.Value, 25, "Result1" ) O valor do controle deslizante corresponde ao primeiro valor a ser verificado e o resultado correspondente é retornado. "Resultado1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) O valor do controle deslizante corresponde ao segundo valor a ser verificado e o resultado correspondente é retornado. "Resultado2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) O valor do controle deslizante não corresponde a qualquer valor a ser verificado. Um DefaultResult foi fornecido, portanto, será retornado. "DefaultResult"

Ramificação em fórmulas de comportamento

Nos exemplos a seguir, um controle Entrada de texto chamado FirstName tem o valor “John” digitado nele.

Fórmula Descrição Resultado
If( ! IsBlank( FirstName.Text ), Navigate( Tela1, ScreenTransition.None ) ) A condição é verdadeira, então a função Navegar é executada. Você pode usar a função IsBlank para testar se um campo de formulário obrigatório foi preenchido. Se FirstName estivesse em branco, essa fórmula não teria efeito. true

A exibição é alterada para Tela1.
If( IsBlank( FirstName.Text ), Navigate( Tela1, ScreenTransition.None ), Back() ) Sem o operador !, a condição é false e a função Navegar não é executada. A função Back foi fornecida como DefaultResult, então, será executada. true

A exibição volta a exibir a tela que estava em exibição anteriormente.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) O valor de FirstName.Text é comparado com "Carlos", "Kirstin" e "John", nessa ordem. Uma correspondência é encontrada para "John", então o aplicativo navega para Screen3. true

A exibição é alterada para Screen3.

Passo a passo

  1. Adicione um controle Entrada de texto e nomeie-o Text1 caso ele não tenha esse nome por padrão.

  2. Em Text1, digite 30.

  3. Adicione um controle Rótulo e defina sua propriedade Text com esta fórmula:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    O controle Rótulo mostra Order more! porque o valor de Text1 é maior que 20, mas inferior a 40.

  4. Em Texto1, digite 15.

    O controle Rótulo mostra Order MANY more! porque o valor de Text1 é menor que 20.

  5. Em Text1, digite 50.

    O controle Rótulo mostra o valor digitado, pois ele é maior do que 40.