Devuelve un valor si una condición es true y otro valor si es false.

Descripción

La función Si prueba condiciones hasta que se encuentra un resultado true. En ese momento, se devuelve el valor correspondiente como resultado. Puede usar Si para devolver resultados diferentes basados en comparaciones y otras pruebas.

Puede usar Si en fórmulas de comportamiento para crear una bifurcación entre dos acciones. Como máximo, se ejecutará una rama. Las condiciones se evalúan por orden y después de encontrar un resultado true, no se comprobará ninguna condición adicional.

Si no se satisface ninguna condición y se proporciona un número impar de argumentos, se devolverá el valor del último argumento. Este es el caso de la fórmula habitual Si( Condition, Value, Else ). Si se proporciona un número par de argumentos, se devolverá en blanco.

Sintaxis

Si( Condition, Result [, ElseResult ] )
Si( Condition1, Result1 [, Condition2, Result2, ... [ , ElseResult ] ] )

  • Condition(s): requerido. Las fórmulas para comprobar si el resultado es true. Normalmente, estas fórmulas contienen operadores de comparación (como <, > y =) y permiten probar funciones como EsBlanco e IsEmpty.
  • Result(s): requerido. El valor correspondiente que se devuelve para una condición que se evalúa como true.
  • ElseResult: opcional. El valor que se devuelve si no se cumple ninguna condición. Si no se especifica este argumento, se devolverá un valor en blanco.

Ejemplos

Valores en las fórmulas

En los ejemplos siguientes, un control deslizante denominado Slider1 tiene un valor de 25.

Fórmula Descripción Resultado
Si( Slider1.Value = 25, "Result1" ) La condición es true y se devuelve el resultado correspondiente. "Result1"
Si( Slider1.Value > 1000, "Result1" ) La condición es falsey no se proporciona ningún ElseResult. en blanco
Si( Slider1.Value = 25, "Result1", "Result2" ) La condición es true y se devuelve el resultado correspondiente. "Result1"
Si( Slider1.Value > 1000, "Result1", "Result2" ) La condición es falsey se ha proporcionado el ElseResult y se devuelve. "Result2"
Si( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) La primera condición es true y se devuelve el resultado correspondiente. La segunda condición también es true, pero no se devolverá su valor correspondiente porque aparece en la lista de argumentos después de la primera condición. "Result1"
Si( EsBlanco( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) La primera condición es false porque el control deslizante tiene un valor de 25 y no está en blanco. La segunda condición es true porque el valor del control deslizante es un número y se devolverá el resultado correspondiente. "Result2"
Si( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") La primera y la segunda condición son false y se ha proporcionado el ElseResult y este se devuelve. "Result3"

Bifurcación en fórmulas de comportamiento

En los ejemplos siguientes, un cuadro Entrada de texto denominado FirstName tiene el valor "John" escrito en él.

Fórmula Descripción Resultado
If( ! EsBlanco( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) La condición es truey se ejecuta la función Navegar. Puede usar la función EsBlanco para comprobar si se ha rellenado un campo de formulario obligatorio. Si el cuadro de texto estuviera vacío, esta fórmula no tendría ningún efecto. true

La pantalla cambia a Screen1.
Si( EsBlanco( FirstName.Text ), Navegar( Screen1, ScreenTransition.None ), Atrás() ) Sin el operador . la condición es false y no se ejecuta la función Navegar. Como se ha proporcionado ElseResult, se ejecutará la función Atrás. true

Se vuelve a la pantalla que aparecía anteriormente.

Paso a paso

  1. En una pantalla vacía, agregue un cuadro Entrada de texto y asígnele el nombre Text1 si no tiene ese nombre de forma predeterminada.

  2. En Text1, escriba 15.

  3. Agregue una etiqueta y establezca su propiedad Texto en las siguientes fórmulas:

Fórmula Descripción Resultado
Text1.Text Sin ninguna condición, el valor devuelto es el valor del cuadro Entrada de texto. "15"
Si( Value(Text1.Text) < 40, "Pida más", Text1.Text ) La condición es true y se devuelve el valor correspondiente. "Pida más"
Si( Value(Text1.Text) < 20, "Pida MUCHO más", Value(Text1.Text) < 40, "Pida más", Text1.Text ) La primera condición es true y se devuelve el valor correspondiente. "Pida MUCHO más"