Trabalhar com funções DAX
A biblioteca de funções DAX consiste em centenas de funções, cada uma projetada para atingir uma meta específica.
Como o DAX foi originado com o suplemento Power Pivot para o Microsoft Excel 2010, há mais de 80 funções disponíveis que também podem ser encontradas no Excel. Era uma estratégia de design deliberada da Microsoft para garantir que os usuários do Excel pudessem rapidamente se tornar produtivos com o DAX.
No entanto, existem muitas funções que você não encontrará no Excel porque são específicas à modelagem de dados:
- Funções de navegação de relação
- Funções de modificação de contexto de filtro
- Funções de iterador
- Funções de inteligência de dados temporais
- Funções de caminho
Dica
Para pesquisar a documentação relacionada a uma função DAX, em uma pesquisa da Web, insira a palavra-chave DAX seguida pelo nome da função.
Para obter mais informações, confira Referência à função DAX.
Funções originadas do Excel
As seções a seguir consideram várias funções úteis com as quais você já deve estar familiarizado, pois elas existem no Excel.
A função DAX IF
testa se uma condição fornecida como o primeiro argumento é atendida. Ela retorna um valor se a condição é TRUE e o outro valor se a condição é FALSE. A sintaxe da função é:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
Dica
Um argumento de função é opcional quando a documentação a mostra entre colchetes.
Se logical_test for avaliada como FALSE e value_if_false não for fornecido, a função retornará BLANK.
Muitas funções de resumo do Excel estão disponíveis, incluindo SUM
, COUNT
, AVERAGE
, MIN
, MAX
e várias outras. A única diferença é que, no DAX, você transmite uma referência de coluna e no Excel transmite um intervalo de células.
Muitas funções do Excel matemáticas, de texto, de data e hora, de informações e lógicas também estão disponíveis. Por exemplo, um pequeno exemplo de funções de Excel disponíveis no DAX incluem ABS
, ROUND
, SQRT
, LEN
, LEFT
, RIGHT
, UPPER
, DATE
, YEAR
, MONTH
, NOW
, ISNUMBER
, TRUE
, FALSE
, AND
, OR
, NOT
e IFERROR
.
Funções que não se originam do Excel
Duas funções DAX úteis que não são específicas da modelagem e que não se originam do Excel são DISTINCTCOUNT
e DIVIDE
.
Função DISTINCTCOUNT
Você pode usar a função DAX DISTINCTCOUNT
para contar o número de valores distintos em uma coluna. Essa função é especialmente poderosa em uma solução de análise. Considere que a contagem de clientes é diferente da contagem de clientes distintos. A última não conta os clientes repetidos, portanto, a diferença é "quantos clientes" em comparação a "quantos clientes diferentes".
Função DIVIDE
Você pode usar a função DAX DIVIDE
para obter divisão. Você deve passar as expressões do numerador e do denominador. Opcionalmente, você pode passar um valor que representa um resultado alternativo. A sintaxe da função DIVIDE
é:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
A função DIVIDE
lida automaticamente com casos de divisão por zero. Se um resultado alternativo não for passado e o denominador for zero ou BLANK, a função retornará BLANK. Quando um resultado alternativo é passado, ele é retornado em vez de BLANK.
Essa função é conveniente porque poupa sua expressão de precisar primeiro testar o valor do denominador. A função também é mais otimizada para testar o valor do denominador do que a função IF
. O ganho de desempenho é significativo, pois a verificação da divisão por zero é dispendiosa. Além disso, usar a função DIVIDE
resulta em uma expressão mais concisa e elegante.
Dica
Recomendamos que você use a função DIVIDE
sempre que o denominador for uma expressão que possa retornar zero ou BLANK. No caso de o denominador ser um valor constante, recomendamos que você use o operador de divisão (/), que é apresentado posteriormente neste módulo. Nesse caso, a divisão tem garantia de sucesso e sua expressão terá um desempenho melhor porque evitará testes desnecessários.