Introdução ao DAX

DAX (Data Analysis Expressions) é uma linguagem de programação usada no Microsoft Power BI para criar colunas calculadas, medidas e tabelas personalizadas. É uma coleção de funções, operadores e constantes que pode ser usada em uma fórmula ou expressão para calcular e retornar um ou mais valores. Você pode usar DAX para resolver vários problemas de análise de dados e cálculos que podem ajudar a criar novas informações a partir de dados que já estejam em seu modelo.

No Power BI, você pode usar diferentes funções e técnicas de cálculo para criar medidas ou colunas calculadas. Essencialmente, você conseguirá obter o mesmo resultado usando essas técnicas; no entanto, o importante é saber como e quando aplicá-las. Com uma compreensão básica de quando e como usar qual técnica, você poderá criar modelos de dados robustos e de alto desempenho.

Ao final deste módulo, você saberá como: 

  • Compilar medidas rápidas.

  • Criar colunas calculadas.

  • Usar DAX para compilar medidas.

  • Descobrir de que modo o contexto afeta as medidas DAX.

  • Usar a função CALCULATE para manipular filtros.

  • Implementar a inteligência de dados temporais usando o DAX.

Usar colunas calculadas

O DAX permite que você aumente os dados que obtém de diferentes fontes de dados criando uma coluna calculada que não existia originalmente na fonte de dados. Esse recurso deve ser usado com moderação, o que será explicado mais adiante neste módulo.

Por exemplo, suponha que você esteja importando dados de um banco de dados que contém transações de vendas. Cada transação de vendas individual tem as seguintes colunas: ID do Pedido, ID do Produto, Quantidade e Preço Unitário. Observe que não existe uma coluna para o valor total das vendas de cada pedido.

Observação

Este módulo não se refere à visualização de dados, mas ela é apresentada para demonstrar como o DAX funciona. Para obter mais informações, confira o roteiro de aprendizagem Visualizar dados no Power BI.  

A figura a seguir mostra como a forma inicial dos dados é exibida em um visual de tabela do Power BI.

Dados iniciais sem DAX em um visual de tabela

Você pode começar a usar o DAX criando uma coluna calculada que multiplica o preço unitário pela quantidade. A coluna calculada criará um valor para cada linha chamada Preço Total. Crie a coluna selecionando o botão de reticências (...) na tabela da lista Campos e, em seguida, selecionando Nova coluna.

O botão de reticências na lista de campos

Uma nova fórmula DAX é exibida na barra de fórmulas abaixo da faixa de opções na parte superior.

Nova coluna DAX

Você pode substituir o texto padrão "Column =" pelo seguinte texto de exemplo:

Total Price = 'Sales OrderDetails'[Quantity] * 'Sales OrderDetails'[Unit Price]

O valor no lado esquerdo do sinal de igual é o nome da coluna. O texto no lado direito do sinal de igual é a expressão DAX. Essa simples expressão DAX usa o valor de quantidade e o multiplica pelo valor de preço unitário de cada linha individual. Ela produzirá um valor para cada registro na tabela. Se você arrastar a nova coluna da lista Campos para o visual, verá os novos valores.

Nova coluna Preço Total

A captura de tela anterior mostra que o DAX está calculando corretamente e exibindo os resultados desejados.

As colunas calculadas são materializadas na extensão de arquivo .pbix do Power BI. Isso significa que, sempre que você adiciona uma coluna calculada, aumenta o tamanho do arquivo geral. Ter um excesso de colunas calculadas reduzirá o desempenho e fará com que você alcance mais cedo o tamanho máximo de dados do Power BI.

Criar uma coluna personalizada

Há três maneiras de criar uma coluna personalizada no Power BI:

  • Crie a coluna na consulta de origem ao obter os dados, por exemplo, adicionando o cálculo a uma exibição em um banco de dados relacional.

  • Crie a coluna personalizada no Power Query.

  • Crie uma coluna calculada usando DAX no Power BI.

Você pode criar uma coluna calculada ao efetuar pull dos dados obtidos em uma fonte de dados. Cada fonte de dados teria uma técnica diferente para concluir essa ação. Por exemplo, se você efetuasse pull de dados de uma fonte de dados relacional usando uma exibição escrita na linguagem SQL, ela seria semelhante ao seguinte exemplo:

CREATE VIEW OrdersWithTotalPrice
AS
SELECT unitprice, qty, unitprice * qty as TotalPrice 
FROM sales.salesorders

O uso da linguagem SQL é uma maneira eficiente de criar uma coluna, pois faria com que a fonte de dados realizasse os cálculos para você. No Power BI, a coluna calculada apareceria como qualquer outra coluna.

Você também pode usar o Power Query para criar uma coluna personalizada.

Coluna personalizada do Power Query

A caixa de diálogo Coluna personalizada usa a linguagem M para criar a coluna. A linguagem M está fora do escopo deste módulo.

A terceira maneira de criar uma coluna calculada é usando DAX no Power BI, como demonstrado anteriormente.

Quando você cria uma coluna calculada usando DAX, não é necessário atualizar o conjunto de dados para ver a nova coluna. Nos outros métodos, você precisaria atualizar para ver as alterações. Esse processo pode ser demorado caso você esteja trabalhando com muitos dados. No entanto, é um problema irrelevante porque, após a criação das colunas, elas raramente são alteradas.

A coluna calculada DAX não é compactada tão bem como os outros métodos. Os outros tipos de coluna são compactados, o que torna o arquivo .pbix menor e agiliza o desempenho.

Em geral, quanto mais cedo você puder criar uma coluna, melhor. Não é considerada uma prática ideal usar DAX para cálculos caso você possa usar um mecanismo diferente.

Além disso, uma maneira de evitar o uso de uma coluna calculada é usar uma das funções X, como SUMX, COUNTX, MINX e assim por diante. As funções X estão além do escopo deste módulo; no entanto, permitem criar medidas que reconheçam os dados em linhas individuais e calculem totais com base nos totais da linha. Essas funções são chamadas de funções de iterador porque, embora sejam usadas em medidas, elas iteram nas linhas individuais para fazer seus cálculos. Uma função X terá um desempenho melhor e usará menos espaço em disco do que uma coluna calculada. Para obter mais informações sobre funções X, confira a documentação da Microsoft.

Usar medidas

As colunas calculadas são úteis, mas você precisa operar linha por linha. No entanto, outras situações podem exigir um método mais simples. Por exemplo, considere uma situação em que você deseja uma agregação que opere em todo o conjunto de dados e você precisa do total de vendas de todas as linhas. Além disso, você quer dividir e analisar os dados com base em outros critérios, como o total de vendas por ano, por funcionário ou por produto.

Para realizar essas tarefas, você usaria uma medida. É possível criar uma medida sem escrever código DAX; o Power BI o escreverá quando você criar uma medida rápida.

Existem muitas categorias de cálculos disponíveis e maneiras de modificar cada cálculo para atender às suas necessidades. Outra vantagem é que você pode ver o DAX implementado pela medida rápida e, ao mesmo tempo, iniciar ou expandir seu conhecimento sobre DAX.

Criar uma medida rápida

Para criar uma medida rápida no Power BI Desktop, clique com o botão direito do mouse ou selecione o botão de reticências (...) ao lado de qualquer item no painel Campos e selecione Nova medida rápida no menu exibido. A tela Medidas rápidas será exibida.

O item do menu de medida rápida

Na janela Medidas rápidas, você pode selecionar o cálculo desejado e os campos nos quais o cálculo deve ser efetuado. Por exemplo, você pode selecionar um cálculo e a coluna na qual deseja fazer operações. O Power BI cria a medida DAX e a exibe para você. Essa abordagem pode ser uma maneira útil de aprender a sintaxe DAX.

Para obter mais informações, confira a documentação  Usar medidas rápidas para cálculos comuns.

Criar uma medida

As medidas são usadas em algumas das análises de dados mais comuns.

Para continuar com o cenário anterior, convém criar uma medida que totalize sua nova coluna para todo o conjunto de dados. Semelhante à maneira como você criou uma coluna calculada, você pode acessar a lista de Campos e selecionar Nova medida.

O texto será exibido na barra de fórmulas abaixo da faixa de opções.

Nova medida

Você pode substituir o texto "Medida =" pelo seguinte texto:

Total Sales = sum('Sales OrderDetails'[Total Price])

A nova medida agora aparecerá na lista de Campos.

A nova medida na lista de campos

Ao arrastar Vendas Totais para a superfície de design do relatório, você verá o total de vendas de toda a organização em um gráfico de colunas.

Medida Total de Vendas em um gráfico de colunas

Diferenças entre uma coluna calculada e uma medida

A diferença fundamental entre uma coluna calculada e uma medida é que uma coluna calculada cria um valor para cada linha em uma tabela. Por esse motivo, a coluna calculada pode fazer operações apenas com base em colunas existentes na mesma tabela. Por exemplo, se a tabela tiver 1.000 linhas, ela terá 1.000 valores na coluna calculada. Os valores de colunas calculadas são armazenados no arquivo .pbix do Power BI. Cada coluna calculada aumentará o espaço usado nesse arquivo, o que possivelmente aumentará o tempo de atualização.

As medidas são calculadas sob demanda. O Power BI calcula o valor correto quando o usuário o solicita. No cenário anterior, em que você arrastou a medida Total de Vendas para o relatório, o Power BI calculou o total correto e exibiu o visual. As medidas não são adicionadas ao espaço em disco geral do arquivo .pbix do Power BI.

As medidas são calculadas com base nos filtros usados pelo usuário do relatório. Esses filtros são combinados para criar o contexto do filtro.