

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de funciones condicionales en expresiones de fórmula
<a name="expression-conditional-functions"></a>

En las [transformaciones](transforms.md) y las [métricas](metrics.md), puede usar la siguiente función para comprobar una condición y obtener resultados diferentes si la condición se evalúa como verdadera o falsa.


| Función | Description (Descripción) | 
| --- | --- | 
|   `if(condition, result_if_true, result_if_false)`  |  Evalúa la `condition` y devuelve `result_if_true` si la condición se evalúa como verdadera o `result_if_false` si la condición se evalúa como `false`. `condition` debe ser un número. Esta función considera `0` una cadena vacía como `false` y todo lo demás (incluido `NaN`) como `true`. Los valores booleanos se convierten en `0` (falso) y `1` (verdadero). Se puede devolver la [constante none](expression-constants.md#none-definition) de esta función para descartar el resultado de una condición concreta. Esto significa que puede filtrar los puntos de datos que no cumplan una condición. Para obtener más información, consulte [Filtrado de puntos de datos](expression-tutorials.md#filter-data). 

**Example Ejemplos**  
+ `if(0, x, y)` devuelve la variable `y`.
+ `if(5, x, y)` devuelve la variable `x`.
+ `if(gt(temp, 300), x, y)` devuelve la variable `x` si la variable `temp` es mayor que `300`.
+ `if(gt(temp, 300), temp, none)` devuelve la variable `temp` si es mayor o igual que `300`, o `none` (sin valor) si `temp` es menor que `300`. Se recomienda utilizar UFCS para las funciones condicionales anidadas en las que uno o más argumentos son funciones condicionales. Se puede utilizar `if(condition, result_if_true)` para evaluar una condición y `elif(condition, result_if_true, result_if_false)` para evaluar condiciones adicionales. Por ejemplo, en lugar de utilizar `if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false)`, puede utilizar `if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false))`. También puede encadenar funciones condicionales intermedias adicionales. Por ejemplo, puede utilizar `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)` en lugar de anidar varias instrucciones `if`, como `if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))`.  Es necesario usar `elif(condition, result_if_true, result_if_false)` con UFCS.   | 