Compartilhar via


Aprenda as noções básicas do DAX no Power BI Desktop

Os usuários que são novos no Power BI Desktop podem usar este artigo como uma introdução rápida e fácil sobre como você pode usar o DAX (Data Analysis Expressions) para resolver muitos cálculos básicos e problemas de análise de dados. Examinaremos algumas informações conceituais, uma série de tarefas que você pode concluir e uma verificação de conhecimento para testar o que você aprendeu. Depois de concluir este artigo, você deve ter uma boa compreensão dos conceitos fundamentais mais importantes no DAX.

O que é o DAX?

O DAX é uma coleção de funções, operadores e constantes que podem ser usadas em uma fórmula ou expressão para calcular e retornar um ou mais valores. O DAX ajuda a criar novas informações com base em dados já existentes no modelo.

Por que o DAX é tão importante?

É fácil criar um novo arquivo do Power BI Desktop e importar alguns dados para ele. Você pode até mesmo criar relatórios que mostrem informações valiosas sem usar fórmulas DAX. Mas, e se você precisar analisar o percentual de crescimento entre categorias de produtos e para intervalos de datas diferentes? Ou você precisa calcular o crescimento ano a ano em comparação com as tendências do mercado? As fórmulas DAX oferecem esses e muitos outros recursos importantes. Ao aprender como criar fórmulas DAX eficazes, você poderá aproveitar seus dados ao máximo. Com as informações necessárias, você pode começar a solucionar problemas comerciais reais que afetam seus resultados financeiros.

Pré-requisitos

Talvez você já esteja familiarizado com a criação de fórmulas no Microsoft Excel e esse conhecimento será útil para entender o DAX. Mas mesmo que você não tenha experiência com fórmulas do Excel, os conceitos descritos aqui ajudarão você a começar a criar fórmulas DAX e resolver problemas reais de BI imediatamente.

Vamos nos concentrar em entender as fórmulas DAX usadas em cálculos, mais especificamente, em medidas e colunas calculadas. Você já deve estar familiarizado com o uso do Power BI Desktop para importar dados e adicionar campos a um relatório e também deve estar familiarizado com conceitos fundamentais de medidas e colunas calculadas.

Pasta de trabalho de exemplo

A melhor maneira de aprender a usar DAX é criar algumas fórmulas básicas, usá-las com dados reais e ver os resultados. Os exemplos e tarefas aqui usam o arquivo Contoso Sales Sample para Power BI Desktop. Este arquivo de exemplo é o mesmo usado no Tutorial: Criar suas próprias medidas no artigo do Power BI Desktop .

Vamos começar

Vamos enquadrar nossa compreensão do DAX em torno de três conceitos fundamentais: Sintaxe, Funções e Contexto. Há outros conceitos importantes no DAX, mas entender esses três conceitos fornecerá a melhor base para criar suas habilidades de DAX.

Sintaxe

Antes de criar suas próprias fórmulas, vamos dar uma olhada na sintaxe da fórmula DAX. A sintaxe inclui os vários elementos que compõem uma fórmula ou, mais simplesmente, como a fórmula é escrita. Por exemplo, eis uma fórmula DAX simples para uma medida:

Captura de tela de uma fórmula DAX com ponteiros para elementos de sintaxe individuais.

Essa fórmula inclui os seguintes elementos de sintaxe:

A. O nome da medida, Total de Vendas.

B. O operador de sinal de igual (=), que indica o início da fórmula. Quando for calculada, ela retornará um resultado.

C. A função DAX SUM, que soma todos os números na coluna Sales[SalesAmount]. Você aprenderá mais sobre as funções mais tarde.

D. Parênteses (), que envolvem uma expressão que contém um ou mais argumentos. A maioria das funções exige pelo menos um argumento. Um argumento passa um valor para uma função.

E. A tabela referenciada, Vendas.

F. A coluna referenciada, [SalesAmount], na tabela Sales. Com esse argumento, a função SUM sabe em qual coluna agregar uma soma.

Ao tentar entender uma fórmula DAX, geralmente é útil dividir cada um dos elementos em um idioma que você usa e fala todos os dias. Por exemplo, você pode ler esta fórmula como:

Para a medida denominada Total de Vendas, calcule (=) a SOMA dos valores na coluna [SalesAmount] na tabela Vendas.

Quando adicionada a um relatório, essa medida calcula e retorna valores somando valores de vendas para cada um dos outros campos que incluímos, por exemplo, celulares nos EUA.

Você pode estar pensando: "Esta medida não está fazendo a mesma coisa que eu faria ao simplesmente adicionar o campo ValorDeVendas ao meu relatório?" Bem, sim. Mas, há uma boa razão para criar nossa própria medida que resume valores do campo SalesAmount: podemos usá-lo como argumento em outras fórmulas. Essa solução pode parecer um pouco confusa agora, mas à medida que suas habilidades de fórmula DAX aumentam, saber que essa medida tornará suas fórmulas e seu modelo mais eficientes. Na verdade, você verá a medida Total de Vendas aparecendo como um argumento em outras fórmulas posteriormente.

Vamos examinar mais algumas coisas sobre essa fórmula. Em particular, introduzimos uma função, SUM. As funções são fórmulas pré-gravadas que facilitam cálculos complexos e a manipulação de números, datas, horas, texto e muito mais. Você aprenderá mais sobre as funções mais tarde.

Você também verá que o nome da coluna [SalesAmount] foi precedido pela tabela Vendas na qual a coluna pertence. Esse nome é conhecido como um nome de coluna totalmente qualificado, pois inclui o nome da coluna precedido pelo nome da tabela. As colunas referenciadas na mesma tabela não exigem que o nome da tabela seja incluído na fórmula, o que pode tornar fórmulas longas que fazem referência a muitas colunas mais curtas e fáceis de ler. No entanto, é uma boa prática incluir o nome da tabela em suas fórmulas de medida, mesmo quando na mesma tabela.

Observação

Se um nome de tabela contiver espaços, palavras-chave reservadas ou caracteres não permitidos, você deverá colocar o nome da tabela entre aspas simples. Você também precisará colocar nomes de tabela entre aspas se o nome contiver caracteres fora do intervalo de caracteres alfanuméricos ANSI, independentemente de sua localidade dar suporte ao conjunto de caracteres ou não.

É importante que suas fórmulas tenham a sintaxe correta. Na maioria dos casos, se a sintaxe não estiver correta, um erro de sintaxe será retornado. Em outros casos, a sintaxe pode estar correta, mas os valores retornados podem não ser o que você espera. O editor de DAX no Power BI Desktop inclui um recurso de sugestões, usado para criar fórmulas sintaticamente corretas e que ajuda a selecionar os elementos corretos.

Vamos criar uma fórmula de exemplo. Essa tarefa ajudará você a entender ainda mais a sintaxe da fórmula e como o recurso de sugestões na barra de fórmulas pode ajudá-lo.

Tarefa: Criar uma fórmula de medida

  1. Baixe e abra o arquivo do Power BI Desktop de exemplo de vendas da Contoso.

  2. No modo de exibição Relatório, na lista de campos, clique com o botão direito do mouse na tabela Vendas e selecione Nova Medida.

  3. Na barra de fórmulas, substitua Measure inserindo um novo nome de medida, Vendas do Trimestre Anterior.

  4. Após o sinal de igual, digite as primeiras letras CAL e clique duas vezes na função que você deseja usar. Nesta fórmula, você deseja usar a função CALCULATE .

    Você usará a função CALCULATE para filtrar os valores que desejamos somar por um argumento que passamos para a função CALCULATE. Esse tipo de função é o que chamamos de aninhar funções. A função CALCULATE tem pelo menos dois argumentos. A primeira é a expressão a ser avaliada e a segunda é um filtro.

  5. Após o parêntese de abertura ( para a função CALCULATE, digiteSUM seguido por outro parêntese de abertura (.

    Em seguida, passaremos um argumento para a função SUM.

  6. Comece a digitar Sal e, em seguida, selecione Sales[SalesAmount], seguido por um parêntese de fechamento ).

    Esta etapa cria o primeiro argumento de expressão para nossa função CALCULATE.

  7. Digite uma vírgula (,) seguida por um espaço para especificar o primeiro filtro e digite PREVIOUSQUARTER.

    Você usará a função de time intelligence PREVIOUSQUARTER para filtrar os resultados SUM pelo trimestre anterior.

  8. Após o parêntese de abertura ( para a função PREVIOUSQUARTER, digite Calendar[DateKey].

    A função PREVIOUSQUARTER tem um argumento, uma coluna que contém um intervalo contíguo de datas. Em nosso caso, essa é a coluna DateKey na tabela Calendário.

  9. Feche os argumentos que estão sendo passados para a função PREVIOUSQUARTER e a função CALCULATE digitando dois parênteses de fechamento ))).

    Sua fórmula agora deve ter esta aparência:

    Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Selecione a marca de seleção Ícone de marca de seleção na barra de fórmulas ou pressione Enter para validar a fórmula e adicioná-la à tabela Vendas.

Você conseguiu! Você acabou de criar uma medida complexa usando DAX. O que essa fórmula fará é calcular o total de vendas do trimestre anterior, dependendo dos filtros aplicados em um relatório. Por exemplo, podemos colocar SalesAmount e a nova medida Vendas do Trimestre Anterior da tabela Vendas em um gráfico de colunas clusterizado. Em seguida, na tabela Calendário, adicione Ano como uma segmentação e selecione 2011. Em seguida, adicione QuarterOfYear como outro filtro e selecione 4, e obtemos um gráfico como este.

Gráfico de Vendas e Valor das Vendas do trimestre anterior

Tenha em mente que o modelo de exemplo contém apenas uma pequena quantidade de dados de vendas de 1/1/2011 a 19/1/2013. Se você selecionar um ano ou trimestre em que SalesAmount não possa ser resumido ou sua nova medida não puder calcular dados de vendas para o trimestre atual ou anterior, nenhum dado para esse período será mostrado. Por exemplo, se você selecionar 2011 para o Ano e 1 para QuarterOfYear, nenhum dado será mostrado para Vendas do Trimestre Anterior porque não há dados para o quarto trimestre de 2010.

Você foi apresentado a vários aspectos importantes das fórmulas DAX:

  • Essa fórmula incluiu duas funções. PREVIOUSQUARTER, uma função de inteligência de dados temporais, está aninhada como um argumento passado para CALCULATE, uma função de filtro.

    As fórmulas DAX podem conter até 64 funções aninhadas. É improvável que uma fórmula contenha tantas funções aninhadas. Na verdade, essa fórmula seria difícil de criar e depurar, e provavelmente também não seria rápida.

  • Nesta fórmula, você também usou filtros. Os filtros restringem o que será calculado. Nesse caso, você selecionou um filtro como um argumento, que na verdade é o resultado de outra função. Você aprenderá mais sobre filtros mais tarde.

  • Você usou a função CALCULATE. Essa função é uma das funções mais poderosas no DAX. À medida que você cria modelos e cria fórmulas mais complexas, você provavelmente usará essa função muitas vezes. Embora a discussão adicional sobre a função CALCULATE esteja fora do escopo deste artigo, à medida que seu conhecimento sobre DAX aumenta, preste atenção especial a ela.

Teste rápido sobre sintaxe

  1. O que esse botão na barra de fórmulas faz?

    Seleção de botão

  2. O que sempre circunda um nome de coluna em uma fórmula DAX?

As respostas são fornecidas no final deste artigo.

Funções

As funções são fórmulas predefinidas que executam cálculos usando valores específicos, chamados de argumentos, em uma determinada ordem ou estrutura. Os argumentos podem ser outras funções, outra fórmula, expressão, referências de coluna, números, texto, valores lógicos como TRUE ou FALSE ou constantes.

O DAX inclui as seguintes categorias de funções: Data e Hora, Inteligência de Tempo, Informações, Lógica, Matemática, Estatística, Texto, Pai/Filho e Outras funções. Se você estiver familiarizado com funções em fórmulas do Excel, muitas das funções no DAX serão semelhantes a você; no entanto, as funções DAX são exclusivas das seguintes maneiras:

  • Uma função DAX sempre faz referência a uma coluna completa ou a uma tabela. Se você quiser usar apenas valores específicos de uma tabela ou coluna, poderá adicionar filtros à fórmula.

  • Se você precisar personalizar cálculos de linha por linha, o DAX fornecerá funções que permitem usar o valor da linha atual ou um valor relacionado como uma espécie de argumento para executar cálculos com base no contexto. Você aprenderá mais sobre o contexto posteriormente.

  • O DAX inclui muitas funções que retornam uma tabela em vez de um valor. A tabela não é exibida, mas é usada para fornecer entrada para outras funções. Por exemplo, você pode recuperar uma tabela e contar os valores distintos nela ou calcular somas dinâmicas entre tabelas ou colunas filtradas.

  • O DAX inclui várias funções de inteligência de tempo. Essas funções permitem definir ou selecionar intervalos de datas e executar cálculos dinâmicos com base neles. Por exemplo, você pode comparar somas entre períodos paralelos.

  • O Excel tem uma função popular, VLOOKUP. As funções DAX não utilizam células ou intervalo de células como referência, como o VLOOKUP faz no Excel. As funções DAX tomam uma coluna ou uma tabela como referência. Tenha em mente que, no Power BI Desktop, você está trabalhando com um modelo de dados relacional. Procurar valores em outra tabela é fácil e, na maioria dos casos, você não precisa criar fórmulas.

    Como você pode ver, as funções no DAX podem ajudá-lo a criar fórmulas poderosas. Só tocamos nos conceitos básicos das funções. À medida que suas habilidades da DAX crescerem, você criará fórmulas usando várias funções diferentes. Um dos melhores lugares para aprender detalhes sobre cada uma das funções DAX está na Referência de Função DAX.

Teste rápido sobre funções

  1. A que uma função sempre se refere?
  2. Uma fórmula pode conter mais de uma função?
  3. Qual categoria de funções você usaria para concatenar duas cadeias de caracteres de texto em uma cadeia de caracteres?

As respostas são fornecidas no final deste artigo.

Contexto

O contexto é um dos conceitos mais importantes da DAX a serem compreendidos. Há dois tipos de contexto no DAX: contexto de linha e contexto de filtro. Primeiro, vamos dar uma olhada no contexto de linha.

Contexto de linha

Para entender mais facilmente o contexto de linha, pense nele como a linha atual. Ele é aplicável sempre que uma fórmula tem uma função que aplica filtros para identificar uma única linha em uma tabela. A função aplicará inerentemente um contexto de linha para cada linha da tabela sobre a qual está filtrando. Esse tipo de contexto de linha geralmente se aplica a medidas.

Contexto de filtro

O contexto de filtro é um pouco mais difícil de compreender do que o de linha. Você pode pensar mais facilmente no contexto de filtro como: um ou mais filtros aplicados em um cálculo que determina um resultado ou valor.

O contexto de filtro não existe no lugar do contexto de linha; em vez disso, aplica-se além do contexto de linha. Por exemplo, para restringir ainda mais os valores a serem incluídos em um cálculo, você pode aplicar um contexto de filtro, que não só especifica o contexto de linha, como também especifica um valor específico (filtro) nesse contexto de linha.

O contexto de filtro pode ser visualizado facilmente nos seus relatórios. Por exemplo, quando você adiciona TotalCost a uma visualização e, em seguida, adiciona Ano e Região, você está definindo um contexto de filtro que seleciona um subconjunto de dados com base em um determinado ano e região.

Por que o contexto de filtro é tão importante para a DAX? Você viu que o contexto de filtro pode ser aplicado adicionando campos a uma visualização. O contexto de filtro também pode ser aplicado em uma fórmula DAX ao definir um filtro usando funções como ALL, RELATED, FILTER, CALCULATE, por meio de relações, e por meio de outras medidas e colunas. Por exemplo, vamos examinar a seguinte fórmula em uma medida chamada Vendas da Loja:

Medida de Vendas da Loja

Para compreender melhor essa fórmula, podemos dividi-la, assim como em outras fórmulas.

Essa fórmula inclui os seguintes elementos de sintaxe:

A. O nome da medida, Store Sales.

B. O operador de sinal de igual (=), que indica o início da fórmula.

C. A função CALCULAR, que avalia uma expressão, como um argumento, em um contexto modificado pelos filtros especificados.

D. Parênteses (), que envolvem uma expressão que contém um ou mais argumentos.

E. Uma medida [Total de Vendas] na mesma tabela que uma expressão. A medida Total Sales tem a fórmula: =SUM(Sales[SalesAmount]).

F. Uma vírgula (,), que separa o primeiro argumento de expressão do argumento de filtro.

G. A coluna referenciada totalmente qualificada, Channel[ChannelName]. Esse é o nosso contexto de linha. Cada linha nesta coluna especifica um canal, como Store ou Online.

H. O valor específico, Store, como um filtro. Esse é o nosso contexto de filtro.

Essa fórmula garante que apenas os valores de vendas definidos pela medida Total Sales sejam calculados somente para as linhas na coluna Channel[ChannelName], usando o valor loja como filtro.

Como você pode imaginar, a possibilidade de definir o contexto de filtro em uma fórmula apresenta recursos amplos e eficazes. A possibilidade de fazer referência somente a um determinado valor em uma tabela relacionada é apenas um exemplo. Não se preocupe se você não entender completamente o contexto imediatamente. Ao criar suas próprias fórmulas, você entenderá melhor o contexto e por que ele é tão importante no DAX.

Teste rápido de contexto

  1. Quais são os dois tipos de contexto?
  2. O que é o contexto de filtro?
  3. O que é contexto de linha?

As respostas são fornecidas no final deste artigo.

Resumo

Agora que você tem um conhecimento básico dos conceitos mais importantes na DAX, você pode começar a criar fórmulas DAX para as medidas por conta própria. Na verdade, a DAX pode ser um pouco complicada de aprender, mas há muitos recursos disponíveis para você. Depois de ler este artigo e experimentar algumas de suas próprias fórmulas, você pode aprender mais sobre outros conceitos e fórmulas DAX que podem ajudá-lo a resolver seus próprios problemas de negócios. Há muitos recursos DAX disponíveis para você; o mais importante é a referência de DAX (Expressões de Análise de Dados).

Como o DAX existe há vários anos em outras ferramentas de BI da Microsoft, como modelos de tabela do Power Pivot e do Analysis Services, há muitas ótimas informações de fontes por aí. Você pode encontrar mais informações em livros, white papers e blogs da Microsoft e dos principais profissionais de BI. O Centro de Recursos da DAX também é um ótimo lugar para começar.

Respostas do QuickQuiz

Sintaxe:

  1. Valida e insere a medida no modelo.
  2. Colchetes [].

Funções:

  1. Uma tabela e uma coluna.
  2. Sim. Uma fórmula pode conter até 64 funções aninhadas.
  3. Funções de texto.

Contexto:

  1. Contexto de linha e contexto de filtro.
  2. Um ou mais filtros em um cálculo que determina um único valor.
  3. A linha atual.