Função IF (DAX)
Verifica se foi atendida uma condição fornecida como o primeiro argumento. Retorna um valor se a condição é TRUE; retorna outro valor se a condição é FALSE.
Sintaxe
IF(logical_test>,<value_if_true>, value_if_false)
Parâmetros
Termo |
Definição |
---|---|
logical_test |
Qualquer valor ou expressão que possa ser avaliada como TRUE ou FALSE. |
value_if_true |
O valor retornado quando o teste lógico é TRUE. Se ele for omitido, TRUE será retornado. |
value_if_false |
O valor retornado quando o teste lógico é FALSE. Se ele for omitido, FALSE será retornado. |
Valor de retorno
Qualquer tipo de valor que pode ser retornado por uma expressão.
Comentários
Se o valor de value_if_true ou value_if_false for omitido, IF tratará isso como um valor da cadeia de caracteres vazio ("").
Se o valor referenciado na expressão for uma coluna, IF retornará o valor que corresponde à linha atual.
A função IF tenta retornar um único tipo de dados em uma coluna. Portanto, se os valores retornados por value_if_true e value_if_false forem de tipos de dados diferentes, a função IF converterá implicitamente tipos de dados para acomodar ambos os valores na coluna. Por exemplo, a fórmula IF(<condition>,TRUE(),0) retorna uma coluna de valores um e zero, e os resultados podem ser somados, mas a fórmula IF(<condition>,TRUE(),FALSE()) retorna apenas valores lógicos. Para obter mais informações sobre a conversão implícita de tipos de dados, consulte Tipos de dados com suporte em pastas de trabalho PowerPivot.
Exemplo
O exemplo a seguir usa funções IF aninhadas que avaliam o número na coluna Calls da tabela FactCallCenter no Adventure Works DW2008R2. A função atribui um rótulo desta forma: low se o número de chamadas for menor que 200, medium se o número de chamadas for menor que 300, mas não menor que 200, e high para todos os outros valores.
=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))
O exemplo a seguir obtém uma lista de cidades que contêm clientes em potencial na área da Califórnia usando colunas da tabela ProspectiveBuyer no Adventure Works DW2008R2. Como a lista se destina a planejar uma campanha cujo alvo são pessoas casadas ou pessoas com filhos em casa, a condição na função IF verifica o valor das colunas [MaritalStatus] e [NumberChildrenAtHome], e gera a cidade quando uma das condições é atendida e se o cliente está na Califórnia. Caso contrário, ela gera uma cadeia de caracteres vazia.
=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])
Note que os parênteses são usados para controlar a ordem em que os operadores AND (&&) e OR (||) são usados. Note também que nenhum valor foi especificado para value_if_false. Portanto, a função retorna o padrão, que é uma cadeia de caracteres vazia.
Consulte também