Guia de Introdução: Noções Básicas sobre a linguagem DAX em 30 Minutos

Aplica-se A
Excel para Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Este Manual de Início Rápido destina-se a utilizadores que não estejam familiarizados com o Power Pivot no Excel ou projetos de modelos em tabela criados no SQL Server Data Tools. O objetivo é fornecer uma introdução rápida e fácil sobre como pode utilizar o DAX (Data Analysis Expressions) para resolver vários problemas analíticos e de modelação de dados básicos. Este tópico inclui informações conceptuais, uma série de tarefas que pode concluir e alguns questionários para testar o que aprendeu. Depois de concluir este tópico, você deve ter uma boa compreensão dos conceitos fundamentais mais básicos em DAX.

O que é DAX?

DAX é uma coleção de funções, operadores e constantes que podem ser utilizadas numa fórmula ou expressão para calcular e devolver um ou mais valores. Dito de forma mais simples, o DAX ajuda a criar novas informações a partir de dados já existentes no seu modelo.

Por que o DAX é tão importante?

É fácil criar um livro e importar alguns dados para o mesmo. Pode até criar tabelas dinâmicas ou gráficos dinâmicos que apresentem informações importantes sem utilizar fórmulas DAX. Mas e se precisar de analisar dados de vendas críticos em várias categorias de produtos e intervalos de datas diferentes? Ou precisa de combinar dados de inventário importantes de várias tabelas em diferentes origens de dados? As fórmulas do DAX fornecem esta funcionalidade e muitas outras capacidades importantes. Aprender a criar fórmulas DAX eficazes irá ajudá-lo a tirar o máximo partido dos seus dados. Quando você obtém as informações de que precisa, pode começar a resolver problemas reais de negócios que afetam seus resultados. Isso é Business Intelligence, e o DAX irá ajudá-lo a chegar lá.

Pré-requisitos

Poderá já estar familiarizado com a criação de fórmulas no Microsoft Excel. Esse conhecimento será útil para compreender o DAX, mas mesmo que não tenha experiência com fórmulas do Excel, os conceitos descritos aqui irão ajudá-lo a começar a criar fórmulas DAX e a resolver problemas de BI do mundo real imediatamente.

Vamos focar-nos especificamente em compreender as fórmulas DAX utilizadas em cálculos. Já deverá estar familiarizado com os conceitos fundamentais de colunas calculadas e medidas (também conhecidas como campos calculados), ambos descritos na Ajuda do Power Pivot. Também deve estar familiarizado com as ferramentas e o ambiente de criação do Power Pivot no Excel.

Livro de Exemplo

A melhor forma de aprender DAX é criar algumas fórmulas básicas, utilizá-las com alguns dados reais e ver os resultados por si próprio. Os exemplos e tarefas aqui apresentados utilizam o DAX de Exemplo da Contoso Formulas.xlsx livro. Pode transferir o livro a partir do http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Depois de transferir o livro para o computador, abra-o e, em seguida, abra a janela do Power Pivot.

Vamos começar!

Vamos enquadrar o DAX em torno de três conceitos fundamentais muito importantes: Sintaxe, Funções e Contexto. É claro que existem outros conceitos importantes no DAX, mas entender esses três conceitos fornecerá a melhor base sobre a qual desenvolver suas habilidades em DAX.

Sintaxe

Antes de criar as suas próprias fórmulas, vamos abordar a sintaxe da fórmula DAX. A sintaxe inclui os vários elementos que compõem uma fórmula ou, mais simplesmente, a forma como a fórmula é escrita. Por exemplo, vejamos uma fórmula DAX simples utilizada para criar novos dados (valores) para cada linha de uma coluna calculada, denominada Margem, numa tabela FactSales: (as cores do texto da fórmula servem apenas para fins ilustrativos)

Fórmula de coluna calculada

A sintaxe desta fórmula inclui os seguintes elementos:

  1. O operador de sinal de igual (=) indica o início da fórmula e quando esta fórmula é calculada, irá devolver um resultado ou valor. Todas as fórmulas que calculam um valor começam com um sinal de igual.
  2. A coluna referenciada [SalesAmount] contém os valores dos quais pretendemos subtrair. Uma referência de coluna numa fórmula está sempre entre parênteses []. Ao contrário das fórmulas do Excel que fazem referência a uma célula, uma fórmula do DAX faz sempre referência a uma coluna.
  3. O operador matemático de subtração (-).
  4. A coluna referenciada [TotalCost] contém os valores que pretendemos subtrair aos valores na coluna [SalesAmount].

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

Na tabela FactSales, para cada linha na coluna calculada Margem, calcule (=) um valor subtraindo (-) os valores na coluna [TotalCost] dos valores na coluna [SalesAmount].

Vamos ver outro tipo de fórmula, uma que é utilizada numa medida:

Fórmula de coluna calculada

Esta fórmula inclui os seguintes elementos de sintaxe:

  1. O nome da medida Soma da Quantidade de Vendas. As fórmulas de medidas podem incluir o nome da medida, seguido de dois pontos e da fórmula de cálculo.
  2. O operador do sinal de igual (=) indica o início da fórmula de cálculo. Quando calculado, devolverá um resultado.
  3. A função SOMA soma todos os números na coluna [SalesAmount]. Saberá mais sobre funções mais tarde.
  4. Parênteses () circundam um ou mais argumentos. Todas as funções necessitam de, pelo menos, um argumento. Um argumento transmite um valor a uma função.
  5. A tabela referenciada FactSales.
  6. A coluna referenciada [SalesAmount] na tabela FactSales. Com este argumento, a função SOMA sabe em que coluna agregar uma SOMA.

Pode ler esta fórmula como:

Para a medição denominada Soma da Quantidade de Vendas, calcule (=) a SOMA dos valores na coluna [Montante de Vendas] da tabela FactSales.

Quando colocada na área de colocação Valores numa Lista de Campos da Tabela Dinâmica, esta medida calcula e devolve valores definidos por cada célula na Tabela Dinâmica, por exemplo Telemóveis nos EUA.

Repare que existem alguns aspetos de diferença nesta fórmula em comparação com a fórmula que utilizámos para a coluna calculada Margem. Em particular, introduzimos uma função, SOMA. As funções são fórmulas pré-escritas que facilitam cálculos e manipulações complexas com números, datas, horas, texto e muito mais. Saberá mais sobre funções mais tarde.

Ao contrário da coluna Margem calculada anteriormente, pode ver que a coluna [SalesAmount] foi precedida pela tabela FactSales, à qual a coluna pertence. Isto é conhecido como um nome de coluna completamente qualificado na medida em que inclui o nome da coluna precedido pelo nome da tabela. As colunas referenciadas na mesma tabela não requerem que o nome da tabela seja incluído na fórmula. Isto pode tornar as fórmulas longas que fazem referência a muitas colunas mais curtas e fáceis de ler. No entanto, é boa prática incluir sempre o nome da tabela nas fórmulas de medida, mesmo quando estiver na mesma tabela.

Nota

Se o nome de uma tabela contiver espaços, palavras-chave reservadas ou carateres não permitidos, tem de colocar o nome da tabela entre aspas simples. Também tem de colocar os nomes das tabelas entre aspas se o nome contiver carateres fora do intervalo de carateres alfanuméricos ANSI, independentemente de a sua região suportar ou não o conjunto de carateres.

É muito importante que as fórmulas tenham a sintaxe correta. Na maioria dos casos, se a sintaxe não estiver correta, será devolvido um erro de sintaxe. Noutros casos, a sintaxe poderá estar correta, mas os valores devolvidos poderão não ser os esperados. O Power Pivot (e SQL Server Data Tools) inclui IntelliSense; uma funcionalidade utilizada para criar fórmulas sintaticamente corretas ao ajudá-lo a selecionar os elementos corretos.

Vamos criar uma fórmula simples. Esta tarefa irá ajudá-lo a compreender melhor a sintaxe da fórmula e como a funcionalidade IntelliSense na barra de fórmulas pode ajudá-lo.

Tarefa: Criar uma fórmula simples para uma coluna calculada

  1. Se ainda não estiver na janela do Power Pivot, no Excel, no friso do Power Pivot, clique em Janela do Power Pivot.
  2. Na janela do Power Pivot, clique na tabela FactSales (separador).
  3. Desloque-se para a coluna mais à direita e, em seguida, no cabeçalho da coluna, clique em Adicionar Coluna.
  4. Clique na barra de fórmulas na parte superior da janela do estruturador de modelos.
    Barra de Fórmulas do PowerPivot
    O seu cursor é agora apresentado na barra de fórmulas. A barra de fórmulas é onde pode escrever a fórmula de uma coluna calculada ou de um campo calculado.
    Vejamos alguns instantes dos três botões à esquerda da barra de fórmulas.
    Formula bar
    Quando o cursor estiver ativo na barra de fórmulas, esses três botões ficam ativos. O botão mais à esquerda, o X, é simplesmente um botão cancelar. Vá em frente e clique nele. O cursor já não aparece na barra de fórmulas e o botão cancelar e o botão marca de verificação deixam de ser apresentados. Aceda e clique novamente na barra de fórmulas. O botão cancelar e o botão marca de verificação agora reaparecem. Isto significa que está pronto para começar a introduzir uma fórmula.
    O botão de marca de verificação é o botão de verificação de fórmula. Não faz muito até introduzir uma fórmula. Voltaremos a isso daqui a pouco.
    Clique no botão Fx . Você verá que uma nova caixa de diálogo aparece; a caixa de diálogo Inserir Função. A caixa de diálogo Inserir Função é a forma mais fácil de começar a introduzir uma fórmula DAX. Iremos adicionar uma função a uma fórmula quando criarmos uma medida um pouco mais tarde, mas, por enquanto, não precisa de adicionar uma função à fórmula da coluna calculada. Aceda e feche a caixa de diálogo Inserir Função.
  5. Na barra de fórmulas, escreva um sinal de igual (=) e, em seguida, escreva um parêntese reto de abertura [. Verá uma pequena janela com todas as colunas da tabela FactSales. Este é o IntelliSense em ação.
    Uma vez que as colunas calculadas são sempre criadas na tabela ativa onde se encontra, não é necessário preceder o nome da coluna com o nome da tabela. Desloque-se para baixo e, em seguida, faça duplo clique em [QuantidadeDeVendas]. Também pode deslocar-se até ao nome de coluna que pretende e, em seguida, premir a Tecla de Tabulação.
    O seu cursor está agora ativo à direita de [QuantidadeDeVendas].
  6. Introduza um espaço e, em seguida, escreva um operador de subtração - (um sinal de subtração) e, em seguida, escreva outro espaço.
  7. Agora, digite outro parêntese reto de abertura [. Desta vez, selecione a coluna [ReturnQuantity] e prima Enter.
    Se receber um erro, observe cuidadosamente a sua sintaxe. Se necessário, compare-a com a fórmula na coluna de cálculo de margem descrita anteriormente.
    Após premir a tecla Enter para concluir a fórmula, a palavra Calcular aparece na barra de estado na parte inferior da janela do Power Pivot. Ocorre rapidamente, apesar de ter calculado novos valores para mais de três milhões de linhas.
  8. Clique com o botão direito do rato no cabeçalho da coluna e mude o nome da coluna para NetSales.

Já está! Acabou de criar uma fórmula DAX simples, mas muito poderosa. Para cada linha da tabela FactSales, a fórmula NetSales calcula um valor subtraindo o valor na coluna [ReturnQuantity] do valor na coluna [SalesQuantity]. Repare como acabámos de dizer "Para cada linha". Este é um vislumbre de outro conceito muito importante no DAX; contexto da linha. Saberá mais sobre o contexto da linha posteriormente.

Algo muito importante a compreender quando escreve um operador numa fórmula DAX é o tipo de dados nos argumentos que está a utilizar. Por exemplo, se escrevesse a seguinte fórmula, = 1 & 2, o valor devolvido seria um valor de texto de "12". Isto deve-se ao facto do operador E comercial (&) se destinar à concatenação de texto. O DAX interpreta esta fórmula para ler: Calcule um resultado ao utilizar o valor 1 como texto e adicione o valor 2 como texto. Se quiser escrever = 1 + 2, o DAX lê esta fórmula como: Calcular um resultado utilizando o valor numérico 1 e adicionando o valor numérico 2. O resultado é, obviamente, "3", um valor numérico. O DAX calcula os valores resultantes dependendo do operador na fórmula e não com base no tipo de dados das colunas utilizadas no argumento. Os tipos de dados no DAX são muito importantes, mas estão fora do âmbito deste Guia de Introdução. Para saber mais sobre tipos de dados e operadores em fórmulas DAX, consulte a Referência DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) nos Manuais Online.

Vamos tentar outro. Desta vez, irá criar uma medida ao escrever a fórmula e ao utilizar o IntelliSense. Não se preocupe muito se não entender completamente a fórmula. O importante aqui é aprender a criar uma fórmula com vários elementos em conjunto na sintaxe correta.

Tarefa: Criar uma fórmula de medida

  1. Na tabela FactSales , clique numa célula vazia na Área de Cálculo. Esta é a área de células vazias imediatamente abaixo de uma tabela na janela do Power Pivot.

Área de Cálculo do PowerPivot

  1. Na barra de fórmulas, escreva o nome Vendas do Trimestre Anterior:.
  2. Escreva um sinal de igual (=) para iniciar a fórmula de cálculo.
  3. Escreva as primeiras letras CAL e, em seguida, faça duplo clique na função que pretende utilizar. Nesta fórmula, pretende utilizar a função CALCULAR .
  4. Escreva um parêntese de abertura ( para iniciar os argumentos a serem passados para a função CALCULAR.
    Observe que, após digitar o parêntese de abertura, o IntelliSense mostra os argumentos necessários para a função CALCULAR. Você aprenderá sobre argumentos daqui a pouco.
  5. Escreva as primeiras letras da tabela FactSales e, em seguida, na lista pendente, faça duplo clique em FactSales[Sales].
  6. Escreva uma vírgula (;) para especificar o primeiro filtro, escreva, PRE, e faça duplo clique na função PREVIOUSQUARTER .
    Depois de selecionar a função PREVIOUSQUARTER, outro parêntese de abertura aparece, indicando que outro argumento é necessário; desta vez, para a função PREVIOUSQUARTER.
  7. Digite as primeiras letras Dim e, em seguida, clique duas vezes em DimDate[DateKey].
  8. Feche o argumento que está a ser transmitido para a função PREVIOUSQUARTER e para a função CALCULATE ao introduzir dois parênteses de fecho )).
    A sua fórmula deverá ter o aspeto seguinte:
    Vendas do Trimestre Anterior:=CALCULAR(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))
  9. Clique no botão verificar fórmula na barra de fórmulas para validar a fórmula. Se receber uma mensagem de erro, verifique cada elemento da sintaxe.

Conseguiu! Você acabou de criar uma medida usando DAX, e não é fácil. O que esta fórmula fará é calcular o total de vendas para o trimestre anterior, dependendo dos filtros aplicados numa Tabela Dinâmica ou Gráfico Dinâmico.

Acabou de conhecer vários aspetos importantes das fórmulas DAX. Primeiro, esta fórmula incluía duas funções. Tenha em atenção que a função PREVIOUSQUARTER está aninhada como um argumento transmitido para a função CALCULAR . As fórmulas do DAX podem conter até 64 funções aninhadas. É pouco provável que uma fórmula contenha tantas funções aninhadas. Na verdade, tal fórmula seria muito difícil de criar e depurar, e provavelmente também não seria muito rápida.

Nesta fórmula, também utilizou filtros. Os filtros limitam o que será calculado. Neste caso, selecionou um filtro como argumento, que na realidade é outra função. Saberás mais sobre filtros mais tarde.

Por fim, utilizou a função CALCULAR. Esta é uma das funções mais poderosas do DAX. À medida que cria modelos de dados e cria fórmulas mais complexas, é provável que utilize esta função muitas vezes. Discutir a função CALCULATE está fora do âmbito deste Manual de Início Rápido, mas à medida que o seu conhecimento do DAX cresce, preste especial atenção a este.

Nota

Normalmente, para utilizar funções de Análise de Tempo em fórmulas DAX, tem de especificar uma coluna de data exclusiva utilizando a caixa de diálogo Marcar como Tabela de Datas. No livro Fórmula do DAX da Contoso Samples.xlsx, a coluna ChaveDeData na tabela DimDate é selecionada como a coluna de datas exclusiva.

Crédito Extra

Você pode estar se perguntando: "Qual é a fórmula DAX mais simples que eu posso criar?" Bem, a resposta para isso é "a fórmula que você não precisa". E é exatamente isso que você pode fazer usando uma função de agregação padrão em uma medida. Quase todos os modelos de dados precisam de filtrar e calcular com base em dados agregados. Por exemplo, a função SOMA na medida Soma do Valor de Vendas que viu anteriormente é utilizada para somar todos os números de uma coluna específica. O DAX inclui várias outras funções que também agregam valores. Pode criar automaticamente fórmulas utilizando agregações padrão utilizando a funcionalidade Soma Automática.

Tarefa de Crédito Extra: Criar uma fórmula de medida utilizando a funcionalidade Soma Automática

  1. Na tabela FactSales, desloque-se até à coluna QuantidadeDeRetorno e, em seguida, clique no cabeçalho da coluna para selecionar a coluna inteira.
  2. No separador Base , no friso, no grupo Cálculos , clique no botão Soma Automática .

Soma Automática no PowerPivot

Clique na seta para baixo junto a Soma Automática e, em seguida, clique em Média (tenha em atenção que também pode utilizar outras funções de agregação padrão).

Imediatamente, uma nova medida é criada com o nome Average of ReturnQuantity: seguida pela fórmula =AVERAGE([ReturnQuantity]).

Agora não foi muito fácil? É claro que nem todas as fórmulas que cria serão assim tão simples. No entanto, ao utilizar a funcionalidade Soma Automática, pode criar fórmulas rápidas e fáceis com cálculos de agregação padrão.

Esta ação deve dar-lhe uma boa compreensão da sintaxe utilizada em fórmulas DAX. Também lhe foram apresentadas algumas funcionalidades fantásticas como o IntelliSense e a Soma Automática para o ajudar a criar fórmulas rápidas, fáceis e precisas. Claro que há muito mais que você pode aprender sobre sintaxe. Um bom local para saber mais é a Referência do DAX ou os Manuais Online do SQL.

Sintaxe QuickQuiz

  1. O que faz este botão na barra de fórmulas?
    botão Função
  2. O que rodeia sempre um nome de coluna numa fórmula DAX?
  3. Como escreveria uma fórmula para o seguinte:
    Na tabela DimProduct para cada linha na coluna calculada UnitMargin, calcule um valor subtraindo valores na coluna UnitCost a valores na coluna UnitPrice?

As respostas são fornecidas no final deste tópico.

Funções

As funções são fórmulas predefinidas que executam cálculos utilizando valores específicos, denominados argumentos, numa ordem ou estrutura específica. Os argumentos podem ser outras funções, outra fórmula, referências de coluna, números, texto, valores lógicos como VERDADEIRO ou FALSO ou constantes.

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

  • Uma função DAX referencia sempre uma coluna completa ou uma tabela. Se quiser utilizar apenas valores específicos de uma tabela ou coluna, pode adicionar filtros à fórmula.
  • Se precisar de personalizar os cálculos numa base linha a linha, o DAX fornece funções que permitem utilizar o valor da linha atual, ou um valor relacionado, como uma espécie de argumento, para efetuar cálculos que variam em função do contexto. Você aprenderá mais sobre o contexto mais tarde.
  • DAX inclui muitas funções que devolvem uma tabela em vez de um valor. A tabela não é apresentada, mas é utilizada para fornecer entrada para outras funções. Por exemplo, pode obter uma tabela e, em seguida, contar os valores distintos na mesma ou calcular somas dinâmicas em tabelas ou colunas filtradas.
  • O DAX inclui uma variedade de funções de análise de tempo. Estas funções permitem-lhe definir ou selecionar intervalos de datas e efetuar cálculos dinâmicos com base nos mesmos. Por exemplo, pode comparar somas entre períodos paralelos.

Por vezes, é difícil saber que funções poderá ter de utilizar numa fórmula. O Power Pivot e o estruturador de modelo de tabela no SQL Server Data Tools incluem a funcionalidade Inserir Função, uma caixa de diálogo que o ajuda a selecionar funções por categoria e fornece breves descrições para cada função.

Inserir Função

Vamos criar uma nova fórmula que inclui uma função que selecionará ao utilizar a funcionalidade Inserir Função:

Tarefa: adicionar uma função a uma fórmula utilizando a função Inserir

  1. Na tabela FactSales, desloque-se para a coluna mais à direita e, em seguida, no cabeçalho da coluna, clique em Adicionar Coluna.
  2. Na barra de fórmulas, escreva um sinal de igual, =.
  3. Clique no botão Inserir Função . Inserir Função Isto abre a caixa de diálogo Inserir Função .
  4. Na caixa de diálogo Inserir Função , clique na caixa de listagem Selecionar uma categoria . Por predefinição, a opção Tudo está selecionada e todas as funções na categoria Todas estão listadas abaixo. São muitas funções, pelo que terá de as filtrar para ser mais fácil localizar o tipo de função que procura.
  5. Para esta fórmula, pretende devolver alguns dados que já existem noutra tabela. Para isso, irá utilizar uma função na categoria Filtrar. Clique na categoria Filtrar e, em seguida, em Selecionar uma função, desloque-se para baixo e faça duplo clique na função RELACIONADO. Clique em OK para fechar a caixa de diálogo Inserir Função .
  6. Utilize o IntelliSense para o ajudar a encontrar e selecionar a coluna DimChannel[ChannelName].
  7. Feche a fórmula e, em seguida, prima Enter.
  8. Após premir a tecla Enter para concluir a fórmula, a palavra Calcular aparece na barra de estado na parte inferior da janela do Power Pivot. Agora verá que acabou de criar uma nova coluna na tabela FactSales com informações de canais da tabela DimChannel.
  9. Mude o nome da coluna Channel.
    A sua fórmula deve ter o seguinte aspeto: =RELATED(DimChannel[ChannelName])

Acabou de lhe ser apresentada outra função muito importante no DAX, a função RELATED . A função RELATED devolve valores de outra tabela. Pode utilizar RELATED desde que exista uma relação entre a tabela onde se encontra atualmente e a tabela que contém os valores que pretende obter. É claro que a função RELATED tem imensas possibilidades. Neste caso, pode agora incluir o canal de vendas de cada venda na tabela FactSales. Agora pode ocultar a tabela DimChannel da lista de campos da Tabela Dinâmica, facilitando a navegação e vendo apenas as informações mais importantes de que realmente precisa. À semelhança da função CALCULATE descrita anteriormente, a função RELATED é muito importante e é provável que a venha a utilizar muitas vezes.

Como pode ver, as funções do DAX podem ajudá-lo a criar fórmulas muito poderosas. Na verdade, só tocamos no básico das funções. À medida que as suas competências DAX melhoram, irá criar fórmulas utilizando muitas funções diferentes. Um dos melhores locais para saber detalhes sobre todas as funções do DAX é na Referência DAX (Data Analysis Expressions).

Funções QuickQuiz

  1. O que é que uma função referencia sempre?
  2. Uma fórmula pode conter mais do que uma função?
  3. Que categoria de funções utilizaria para concatenar duas cadeias de texto numa só?

As respostas são fornecidas no final deste tópico.

Contexto

O contexto é um dos conceitos DAX mais importantes de compreender. Há dois tipos de contexto no DAX; contexto de linha e contexto de filtro. Em primeiro lugar, analisaremos o contexto da linha.

Contexto da Linha

O contexto de linha é mais facilmente considerado como a linha atual. Por exemplo, lembra-se da coluna calculada Margem que viu anteriormente ao aprender sobre sintaxe? A fórmula =[SalesAmount] - [TotalCost] calcula um valor na coluna Margem para cada linha da tabela. Os valores para cada linha são calculados a partir de valores em duas outras colunas, [SalesAmount] e [TotalCost] na mesma linha. O DAX pode calcular os valores para cada linha na coluna Margem, porque tem o contexto: Para cada linha, obtém valores na coluna [TotalCost] e subtrai-os dos valores na coluna [SalesAmount].

Na célula selecionada mostrada abaixo, o valor $ 49,54 na linha atual foi calculado subtraindo o valor $ 51,54 na coluna [CustoTotal] ao valor $ 101,08 na coluna [ValorDasVendas].

Contexto de linha no PowerPivot

O contexto da linha não se aplica apenas às colunas calculadas. O contexto de linha também se aplica sempre que uma fórmula tem uma função que aplica filtros para identificar uma única linha numa tabela. A função irá aplicar inerentemente um contexto de linha a cada linha da tabela sobre a qual está a filtrar. Este tipo de contexto de linha aplica-se mais frequentemente a medidas.

Contexto do Filtro

O contexto de filtro é um pouco mais difícil de entender do que o contexto de linha. O contexto de filtro pode ser mais facilmente pensado como: Um ou mais filtros aplicados num cálculo que determina um resultado ou valor.

O contexto de filtro não existe em vez do contexto de linha; em vez disso, aplica-se para além do contexto de linha. Por exemplo, para restringir ainda mais os valores a incluir num cálculo, pode aplicar um contexto de filtro que não só especifique o contexto da linha, mas também especifique apenas um valor específico (filtro) nesse contexto de linha.

O contexto de filtragem é facilmente visto em tabelas dinâmicas. Por exemplo, quando adiciona Custo Total à área Valores e, em seguida, adiciona Ano e Região à Linha ou Colunas, está a definir um contexto de filtro que seleciona um subconjunto de dados com base num dado ano e região.

Por que o contexto de filtro é tão importante para o DAX? Porque, enquanto o contexto de filtro pode ser aplicado mais facilmente adicionando etiquetas e segmentações de dados de colunas e linhas numa tabela dinâmica, o contexto de filtro também pode ser aplicado numa fórmula DAX ao definir um filtro através de funções como ALL, RELATED, FILTER, CALCULATE, by relationships and by other measures and columns. Por exemplo, vamos ver a seguinte fórmula numa medida chamada StoreSales:

Fórmula

É evidente que esta fórmula é mais complexa do que algumas das outras fórmulas que viu. No entanto, para compreender melhor esta fórmula, podemos decompô-la, à semelhança do que fizemos com outras fórmulas.

Esta fórmula inclui os seguintes elementos de sintaxe:

  1. O nome da medida StoreSales, seguido por dois pontos :.
  2. O operador do sinal de igual (=) indica o início da fórmula.
  3. A função CALCULATE avalia uma expressão, como argumento, num contexto que é modificado pelos filtros especificados.
  4. Parênteses () circundam um ou mais argumentos.
  5. Uma medida [Vendas] na mesma tabela como expressão. A medida Vendas tem a fórmula: =SOMA(FactSales[SalesAmount]).
  6. Uma vírgula (,) separa cada filtro.
  7. A coluna referenciada e um valor específico, DimChannel[ChannelName] ="Store", como um filtro.

Esta fórmula irá garantir que apenas os valores de vendas, definidos pela medida Vendas, como um filtro, são calculados apenas para linhas na coluna DimChannel[ChannelName] com o valor "Store", como um filtro.

Como pode imaginar, ser capaz de definir o contexto do filtro dentro de uma fórmula tem uma capacidade imensa e poderosa. A capacidade de referenciar apenas um valor específico numa tabela relacionada é apenas um desses exemplos. Não se preocupe se você não entender completamente o contexto imediatamente. À medida que cria as suas próprias fórmulas, irá compreender melhor o contexto e por que motivo este é tão importante no DAX.

QuickQuiz de contexto

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

As respostas são fornecidas no final deste tópico.

Resumo

Agora que tem uma compreensão básica dos conceitos mais importantes em DAX, pode começar a criar fórmulas DAX para colunas calculadas e medidas por conta própria. DAX pode realmente ser um pouco complicado de aprender, mas há muitos recursos disponíveis para você. Depois de ler este tópico algumas vezes e experimentar algumas das suas próprias fórmulas, pode saber mais sobre outros conceitos e fórmulas do DAX que podem ajudá-lo a resolver os seus próprios problemas empresariais. Existem muitos recursos DAX disponíveis para si na Ajuda do Power Pivot, SQL Server Manuais Online, documentos técnicos e blogues da Microsoft e dos principais profissionais de BI. O Wiki do Centro de Recursos DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) é um ótimo ponto de partida. A Referência DAX (Data Analysis Expressions) também é um ótimo recurso. Certifique-se de que o guarda nos seus Favoritos.

O documento técnico DAX no Modelo de Tabela de BI, disponível para transferência (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409), fornece uma visão mais detalhada dos conceitos aqui introduzidos, bem como de muitos outros conceitos e fórmulas avançados. Este documento técnico também utiliza o mesmo livro de Formulas.xlsx de exemplo do DAX da Contoso que já tem.

Respostas do QuickQuiz

Sintaxe:

  1. Abre a funcionalidade Inserir Função.
  2. Parênteses [].
  3. =[PreçoUnitário] - [Custo Unitário]

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 num cálculo que determina um único valor.
  3. A linha atual.