Compartilhar via


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.