Escrever fórmulas DAX

Concluído

Cada tipo de cálculo, tabela calculada, coluna calculada ou medida do modelo é definido pelo nome, seguido pelo símbolo de igual (=), que é seguido por uma fórmula DAX. Utilize o seguinte modelo para criar um cálculo do modelo:

<Calculation name> = <DAX formula>

Por exemplo, a definição da tabela calculada Data de Envio que duplica os dados da tabela Data é:

Ship Date = 'Date'

Uma fórmula DAX consiste em expressões que devolvem um resultado. O resultado é um objeto de tabela ou um valor escalar. As fórmulas de tabela calculadas têm de devolver um objeto de tabela; as fórmulas de medida e coluna calculada têm de devolver um valor escalar (valor único).

As fórmulas são montadas com:

  • Funções DAX
  • Operadores DAX
  • Referências a objetos de modelo
  • Valores constantes, como o número 24 ou o texto literal "FY" (abreviatura do ano fiscal)
  • Variáveis DAX
  • Espaço em branco

Dica

Ao introduzir fórmulas DAX no Power BI Desktop, tem a vantagem do IntelliSense. O IntelliSense é um auxiliar de conclusão de código que lista as funções e os recursos do modelo. Quando seleciona uma função DAX, esta também proporciona uma definição e uma descrição. Recomendamos que utilize o IntelliSense para o ajudar a criar fórmulas precisas rapidamente.

Funções DAX

À semelhança do Microsoft Excel, o DAX é uma linguagem funcional que significa que as fórmulas dependem de funções para atingir objetivos específicos. Normalmente, as funções DAX têm argumentos que permitem transmitir variáveis. As fórmulas podem utilizar muitas chamadas de função e, frequentemente, aninharão funções dentro de outras funções.

Numa fórmula, os nomes das funções devem ser seguidos de parênteses. Dentro dos parênteses, são transmitidas as variáveis.

Nota

Algumas funções não utilizam argumentos ou os argumentos podem ser opcionais.

Posteriormente neste módulo, verá como trabalhar com funções DAX.

Operadores DAX

As fórmulas também dependem de operadores, que podem realizar cálculos aritméticos, comparar valores, trabalhar com cadeias ou testar condições.

Os operadores DAX são descritos em maior detalhe posteriormente neste módulo.

Referências a objetos de modelo

As fórmulas só podem fazer referência a três tipos de objetos de modelo: tabelas, colunas ou medidas. Uma fórmula não pode fazer referência a uma hierarquia nem a um nível de hierarquia (lembre-se de que um nível de hierarquia se baseia numa coluna, portanto, a fórmula pode fazer referência a uma coluna de nível de hierarquia.)

Referências de tabela

Quando referencia uma tabela numa fórmula, oficialmente, o nome da tabela é colocado entre plicas. Na seguinte definição de tabela calculada, repare que a tabela Data está entre plicas.

Ship Date = 'Date'

No entanto, as plicas podem ser omitidas quando ambas as condições a seguir são verdadeiras:

  1. O nome da tabela não inclui espaços incorporados.
  2. O nome da tabela não é uma palavra reservada utilizada pelo DAX. Todos os operadores e nomes de função DAX são palavras reservadas. Date é um nome de função DAX, que explica por que motivo, ao referenciar uma tabela com o nome Data, tem de a colocar entre aspas simples.

Na seguinte definição de tabela calculada, é possível omitir as plicas ao referenciar a tabela Aeroporto :

Arrival Airport = Airport

Referências a colunas

Quando referencia uma coluna numa fórmula, o nome da coluna tem de estar entre parênteses retos. Opcionalmente, pode ser precedido pelo nome da tabela. Por exemplo, a seguinte definição de medida refere-se à coluna Valor de Vendas.

Revenue = SUM([Sales Amount])

Dado que os nomes de coluna são exclusivos numa tabela, mas não necessariamente exclusivos no modelo, pode realizar a desambiguação da referência de coluna ao colocar o nome da tabela antes. Esta coluna desambiguada é conhecida como coluna completamente qualificada. Algumas funções DAX exigem a transmissão de colunas completamente qualificadas.

Dica

Para melhorar a legibilidade das fórmulas, é recomendado colocar sempre o nome de tabela antes de uma referência de coluna.

A definição de medida do exemplo anterior pode ser reescrita como:

Revenue = SUM(Sales[Sales Amount])

Referências de medidas

Quando referencia uma medida numa fórmula, como referências de nome de coluna, o nome da medida tem de estar entre parênteses retos. Por exemplo, a seguinte definição de medida refere-se às medidas Receita e Custo.

Profit = [Revenue] - [Cost]

Se for um principiante da DAX, o facto de as referências de colunas e medidas estarem sempre entre parênteses retos pode causar confusão quando está a tentar ler uma fórmula. No entanto, à medida que se torna proficiente com as noções básicas do DAX, poderá determinar que tipo de objeto é porque, em fórmulas, colunas e medidas DAX são utilizadas de formas diferentes.

Dica

É possível preceder colocar o nome da tabela antes de uma referência de medida. No entanto, as medidas são um objeto ao nível do modelo. Apesar de serem atribuídas a uma tabela principal, trata-se apenas de uma relação superficial para organizar logicamente as medidas no painel Campos.

Portanto, apesar de recomendarmos que coloque sempre o nome da tabela antes de uma referência de coluna, o inverso também se poderá aplicar às medidas: Recomendamos que nunca coloque o nome da tabela antes de uma referência de medida.

Para obter mais informações, veja Referências de colunas e de medidas.

Variáveis DAX

As fórmulas podem declarar variáveis DAX para armazenar resultados.

Posteriormente neste módulo, poder ficar a saber como e quando utilizar as variáveis DAX.

Espaço em branco

O espaço em branco refere-se aos carateres que pode utilizar para formatar as fórmulas de uma forma rápida e simples de compreender. Os carateres de espaço em branco incluem:

  • Espaços
  • Separadores
  • Símbolos de retorno

O espaço em branco é opcional e não modifica a lógica da fórmula nem afeta negativamente o desempenho. É altamente recomendado que adote um estilo de formato e o aplique de forma consistente e que tenha em conta as seguintes recomendações:

  • Utilize espaços entre operadores.
  • Utilize separadores para avançar chamadas de função aninhadas.
  • Utilize símbolos de retorno para separar argumentos de função, especialmente quando forem demasiado longos para caberem numa única linha. Esta formatação simplifica a resolução de problemas, especialmente quando a fórmula tem um parêntese em falta.
  • É melhor pecar por excesso na quantidade de espaços em branco do que o contrário.

Dica

Na barra de fórmulas, para introduzir um símbolo de retorno, prima Shift+Enter. Premir Enter sozinho irá consolidar a sua fórmula.

Considere a seguinte definição de medida, escrita numa única linha e que inclui cinco chamadas da função DAX:

Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))

O exemplo seguinte é a mesma definição de medida, mas agora formatada, o que ajuda a facilitar a leitura e a compreensão:

Revenue YoY % =
DIVIDE(
    [Revenue]
        - CALCULATE(
            [Revenue],
            SAMEPERIODLASTYEAR('Date'[Date])
    ),
    CALCULATE(
        [Revenue],
        SAMEPERIODLASTYEAR('Date'[Date])
    )
)

Experimente formatar a medida por conta própria. Abra o ficheiro de Power BI Desktop Adventure Works DW 2020 M02.pbix e, em seguida, no painel Campos, expanda a tabela Vendas e, em seguida, selecione a medida Receita YoY %. Na barra de fórmulas, utilize carateres de retorno de tabulação e símbolo para produzir o mesmo resultado que o exemplo anterior. Quando adicionar um símbolo de retorno, não se esqueça de premir Shift+Enter.

Esta definição de medida pode ser melhorada para legibilidade e desempenho, o que será explicado mais adiante neste módulo.

Dica

O Formatador DAX e uma excelente ferramenta de formatação de outra origem que o poderá a formatar os cálculos. Esta ferramenta permite-lhe colar no seu cálculo e formatá-lo. Em seguida, pode copiar o cálculo formatado para a área de transferência e colá-lo novamente no Power BI Desktop.