

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar funções condicionais em expressões de fórmula
<a name="expression-conditional-functions"></a>

Em [transformações](transforms.md) e [métricas](metrics.md), você pode usar a função a seguir para verificar uma condição e retornar resultados diferentes de acordo com a avaliação da condição como verdadeira ou falsa.


| Função | Description | 
| --- | --- | 
|   `if(condition, result_if_true, result_if_false)`  |  Avalia `condition` e retorna `result_if_true` se a condição for avaliada como verdadeira ou `result_if_false` se a condição for avaliada como `false`. `condition` deve ser um número. Essa função considera `0` uma string vazia como `false` e todo o resto (inclusive `NaN`) como `true`. Os Booleanos são convertidos em `0` (falso) e `1` (verdadeiro). Você pode retornar a [constante nula](expression-constants.md#none-definition) dessa função para descartar a saída de uma condição específica. Isso significa que você pode filtrar pontos de dados que não atendam a uma condição. Para obter mais informações, consulte [Filtrar pontos de dados](expression-tutorials.md#filter-data). 

**Example Exemplos**  
+ `if(0, x, y)` retorna a variável `y`.
+ `if(5, x, y)` retorna a variável `x`.
+ `if(gt(temp, 300), x, y)` retorna a variável `x` se a variável `temp` for maior que `300`.
+ `if(gt(temp, 300), temp, none)` retorna a variável `temp` se for maior ou igual a `300`, ou `none` (sem valor), se `temp` for menor que `300`. Recomendamos que você use UFCS para funções condicionais aninhadas onde um ou mais argumentos forem funções condicionais. Você pode usar `if(condition, result_if_true)` para avaliar uma condição e `elif(condition, result_if_true, result_if_false)` para avaliar condições adicionais. Por exemplo, você pode usar `if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false)`, em vez de `if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false))`. Você também pode encadear funções condicionais intermediárias adicionais. Por exemplo, você pode usar `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)` em vez de aninhar várias instruções `if`, como `if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))`.  Você deve usar `elif(condition, result_if_true, result_if_false)` com UFCS.   | 