Noções básicas do DAX no Power BI DesktopDAX basics in Power BI Desktop

Este artigo é destinado aos novos usuários do Power BI Desktop.This article is for users new to Power BI Desktop. O objetivo é oferecer uma introdução rápida e fácil sobre como você pode usar expressões DAX (Data Analysis Expressions) para resolver vários problemas de análise de dados e de cálculo básico.It’s meant to give you a quick and easy introduction on how you can use Data Analysis Expressions (DAX) to solve a number of basic calculation and data analysis problems. Vamos examinar algumas informações conceituais e uma série de tarefas que você pode executar, além de alguns testes para verificar o que você aprendeu.We’ll go over some conceptual information, a series of tasks you can complete, and a few quizzes to test what you’ve learned. Depois de ler este artigo, você deve ter uma boa compreensão dos conceitos fundamentais mais importantes no DAX.After completing this article, you should have a good understanding of the most important fundamental concepts in DAX.

O que é DAX?What is DAX?

O DAX é uma coleção de funções, operadores e constantes que podem ser usados em uma fórmula, ou expressão, para calcular e retornar um ou mais valores.DAX is a collection of functions, operators, and constants that can be used in a formula, or expression, to calculate and return one or more values. Resumindo, o DAX ajuda você a criar novas informações de dados já presentes em seu modelo.Stated more simply, DAX helps you create new information from data already in your model.

Por que DAX é tão importante?Why is DAX so important?

É muito fácil criar um novo arquivo do Power BI Desktop e importar alguns dados nele.It’s quite easy to create a new Power BI Desktop file and import some data into it. Você pode até mesmo criar relatórios que mostrem informações valiosas sem usar nenhuma fórmula DAX.You can even create reports that show valuable insights without using any DAX formulas at all. Mas e se você precisar analisar o percentual de crescimento em diferentes categorias de produto e para intervalos de datas diferentes?But, what if you need to analyze growth percentage across product categories and for different date ranges? Ou você precisa calcular o crescimento ano a ano comparado às tendências do mercado?Or, you need to calculate year-over-year growth compared to market trends? As fórmulas DAX oferecem essa e outras funcionalidades importantes também.DAX formulas provide this capability and many other important capabilities as well. Aprender a criar fórmulas DAX eficientes ajudará você a tirar o máximo proveito de seus dados.Learning how to create effective DAX formulas will help you get the most out of your data. Quando obtém as informações de que precisa, você pode começar a resolver problemas comerciais reais, que afetam o seu resultado final.When you get the information you need, you can begin to solve real business problems that affect your bottom line. Esse é o potencial do Power BI, e o DAX ajudará você a aproveitá-lo.This is the power in Power BI, and DAX will help you get there.

Pré-requisitosPrerequisites

Você pode já estar familiarizado com a criação de fórmulas no Microsoft Excel.You might already be familiar with creating formulas in Microsoft Excel. Esse conhecimento será útil na compreensão do DAX, mas mesmo se você não tiver 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 do BI do mundo real, imediatamente.That knowledge will be helpful in understanding DAX, but even if you have no experience with Excel formulas, the concepts described here will help you get started creating DAX formulas and solving real-world BI problems right away.

Vamos nos concentrar em compreender as fórmulas DAX usadas em cálculos, mais especificamente, em medidas e colunas calculadas.We’re going to focus on understanding DAX formulas used in calculations, more specifically, in measures and calculated columns. Você já deve estar familiarizado com o Power BI Desktop, a importação de dados, a adição de campos a um relatório, além dos conceitos fundamentais de Medidas e Colunas calculadas.You should already be familiar with Power BI Desktop, importing data, adding fields to a report, and you should also be familiar with fundamental concepts of Measures and Calculated columns.

Pasta de trabalho de exemploExample Workbook

A melhor maneira de aprender sobre o DAX é criar algumas fórmulas básicas, usá-las com alguns dados reais e ver os resultados.The best way to learn DAX is to create some basic formulas, use it with some actual data, and see the results for yourself. Os exemplos e as tarefas aqui usam o Exemplo de Vendas da Contoso para o arquivo de Visualização do Power BI Desktop.The examples and tasks here use the Contoso Sales Sample for Power BI Desktop Preview file. Esse é o mesmo arquivo de exemplo usado no artigo Tutorial: criar suas próprias medidas no Power BI Desktop.This is the same sample file used in the Tutorial: Create your own measures in Power BI Desktop article. Veja o arquivo de exemplo para baixar.Here is the sample file to download.

Vamos começar!Let's begin!

Vamos estruturar nossa compreensão do DAX em torno de três conceitos fundamentais: Sintaxe, Funções e Contexto.We will frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. Claro que há outros conceitos importantes no DAX, mas entender esses três conceitos oferecerá a melhor base para desenvolver suas habilidades com o DAX.Of course, there are other important concepts in DAX, but understanding these three concepts will provide the best foundation on which to build your DAX skills.

SintaxeSyntax

Antes de criar suas próprias fórmulas, vamos dar uma olhada na sintaxe das fórmulas DAX.Before you create your own formulas, let’s take a look at DAX formula syntax. A sintaxe inclui os vários elementos que compõem uma fórmula, ou mais resumidamente, o modo como a fórmula é escrita.Syntax includes the various elements that make up a formula, or more simply, how the formula is written. Por exemplo, vamos examinar uma medida de uma fórmula DAX simples.For example, let’s look at a simple DAX formula for a measure.

Esta fórmula inclui os seguintes elementos de sintaxe:This formula includes the following syntax elements:

A.A. O nome da medida Total Sales.The measure name Total Sales.

B.B. O operador de sinal de igual (=) indica o início da fórmula.The equals sign operator (=) indicates the beginning of the formula. Quando calculada, ela retornará um resultado.When calculated, it will return a result.

C.C. A função SUM do DAX soma todos os números na coluna Sales[SalesAmount].The DAX function SUM adds up all of the numbers in the Sales[SalesAmount] column. Você aprenderá mais sobre as funções mais tarde.You’ll learn more about functions later.

D.D. Os parênteses () envolvem uma expressão que contém um ou mais argumentos.Parenthesis () surround an expression containing one or more arguments. Todas as funções exigem pelo menos um argumento.All functions require at least one argument. Um argumento transmite um valor para uma função.An argument passes a value to a function.

E.E. A tabela referenciada Sales.The referenced table Sales.

F.F. A coluna referenciada [SalesAmount] na tabela Sales.The referenced column [SalesAmount] in the Sales table. Com este argumento, a função SUM sabe em que coluna deve agregar uma SUM.With this argument, the SUM function knows on which column to aggregate a SUM.

Ao tentar entender uma fórmula DAX, geralmente é útil decompor os elementos em uma linguagem que você usa e fala todos os dias.When trying to understand a DAX formula, it is often helpful to break down each of the elements into a language you think and speak every day. Por exemplo, você pode ler esta fórmula como:For example, you can read this formula as:

Para a medida chamada Total Sales, calcule (=) a SUM dos valores na coluna [SalesAmount], na tabela Sales.For the measure named Total Sales, calculate (=) the SUM of values in the [SalesAmount ] column in the Sales table.

Quando adicionada a um relatório, essa medida calcula e retorna valores somando as quantidades de vendas para cada um dos outros campos que são incluídos, por exemplo, “Cell Phones in the USA”.When added to a report, this measure calculates and returns values by summing up sales amounts for each of the other fields we include, for example, Cell Phones in the USA.

Você deve estar pensando: “Por acaso essa medida não faz a mesma coisa que adicionar o campo SalesAmount ao meu relatório?”You might be thinking ‘Isn’t this measure doing the same thing as if I were to just add the SalesAmount field to my report?’ Bem, sim.Well, yes. Porém, há um bom motivo para criar nossa própria medida que soma os valores do campo SalesAmount: podemos usar isso como um argumento em outras fórmulas.But, there’s a good reason to create our own measure that sums up values from the SalesAmount field: We can use it as an argument in other formulas. Isso pode parecer um pouco confuso agora, mas à medida que suas habilidades com fórmulas DAX aumentarem, saber disso tornará suas fórmulas e seu modelo mais eficientes.This may seem a little confusing now, but as your DAX formula skills grow, knowing this will make your formulas and your model more efficient. Na verdade, você verá mais tarde a medida Total Sales aparecendo como um argumento em outras fórmulas.In fact, you’ll see the Total Sales measure showing up as an argument in other formulas later on.

Vamos dar uma olhada em mais alguns pontos sobre essa fórmula.Let’s go over a few more things about this formula. Em especial, vale lembrar que introduzimos uma função, SUM.In particular, we introduced a function, SUM. Funções são fórmulas gravadas previamente, que tornam mais fácil fazer cálculos complexos e manipulações com números, datas, hora, texto e muito mais.Functions are pre-written formulas that make it easier to do complex calculations and manipulations with numbers, dates, time, text, and more. Você aprenderá mais sobre as funções mais tarde.You will learn more about functions later.

Você também pode ver que a coluna [SalesAmount] era precedida pela tabela Sales, à qual a coluna pertence.You also see the column [SalesAmount] was preceded by the table Sales in which the column belongs. Isso é conhecido como um nome de coluna totalmente qualificado, que inclui o nome da coluna precedido pelo nome da tabela.This is known as a fully qualified column name in that it includes the column name preceded by the table name. Colunas referenciadas na mesma tabela não exigem que o nome da tabela seja incluído na fórmula.Columns referenced in the same table do not require the table name be included in the formula. Isso pode tornar fórmulas longas, que fazem referência a várias colunas, mais curtas e fáceis de ler.This can make long formulas that reference many columns shorter and easier to read. No entanto, é uma prática recomendada incluir o nome da tabela em suas fórmulas de medida, mesmo quando se tratar da mesma tabela.However, it's good practice to include the table name in your measure formulas, even when in the same table.

Observação

Se um nome de tabela contiver espaços, palavras-chave reservadas ou caracteres não permitidos, coloque o nome da tabela entre aspas simples.If a table name contains spaces, reserved keywords, or disallowed characters, you’ll need to enclose the table name in single quotation marks. Além disso, você precisará colocar os nomes de tabela entre aspas se o nome contiver quaisquer caracteres fora do conjunto de caracteres alfanuméricos ANSI, independentemente de sua localidade dar ou não suporte ao conjunto de caracteres.You’ll also need to enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not.

É importante que suas fórmulas tenham a sintaxe correta.It’s important your formulas have the correct syntax. Na maioria dos casos, se a sintaxe não estiver correta, um erro de sintaxe será retornado.In most cases, if the syntax is not correct, a syntax error will be returned. Em outros casos, a sintaxe pode estar correta, mas os valores retornados podem não ser o que você esperava.In other cases, the syntax may be correct, but the values returned might not be what you are expecting. O editor do DAX no Power BI Desktop inclui um recurso de sugestões, usado para criar fórmulas sintaticamente corretas, ajudando você a selecionar os elementos corretos.The DAX editor in Power BI Desktop includes a suggestions feature, used to create syntactically correct formulas by helping you select the correct elements.

Vamos criar uma fórmula simples.Let’s create a simple formula. Essa tarefa ajudará você a entender melhor a sintaxe da fórmula e como o recurso de sugestões na barra de fórmulas pode ajudá-lo.This task will help you further understand formula syntax and how the suggestions feature in the formula bar can help you.

Tarefa: criar uma fórmula de medidaTask: Create a measure formula

Para concluir esta tarefa, você precisará abrir o arquivo Exemplo de Vendas da Contoso para o Power BI Desktop.To complete this task, you’ll need to open the Contoso Sales Sample Power BI Desktop file.

  1. Na visualização de Relatório, na lista Campos, clique com o botão direito do mouse na tabela Sales e clique em Nova Medida.In Report view, in the field list, right-click on the Sales table, and then click New Measure.

  2. Na barra de fórmulas, substitua Measure digitando um novo nome de medida, Previous Quarter Sales.In the formula bar, replace Measure by typing a new measure name, Previous Quarter Sales.

  3. Após o sinal de igual, digite SUM, seguido de um parêntese de abertura.After the equals sign, type SUM followed by an opening parenthesis.

    Em vez de digitar um nome de coluna para somar imediatamente, vamos inserir outra função para filtrar os dados que desejamos somar.Rather than type a column name to sum up right away, we’re going to enter another function, to filter the data we want to sum up.

  4. Entre os parênteses, digite CALCULATE, seguido de um parêntese de abertura.Between the parentheses, type CALCULATE, followed by an opening parenthesis.

    Você usará a função CALCULATE para filtrar os valores que desejamos somar por um argumento que transmitimos à função CALCULATE.You’ll use the CALCULATE function to filter the amounts we want to sum by an argument we pass to the CALCULATE function. É isso que chamamos de aninhar funções.This is what’s referred to as nesting functions. A função CALCULATE tem pelo menos dois argumentos.The CALCULATE function has at least two arguments. O primeiro é a expressão a ser avaliada e o segundo é um filtro.The first is the expression to be evaluated, and the second is a filter.

  5. Entre os parênteses () para a função CALCULATE, digite Sales[SalesAmount].Between the parenthesis () for the CALCULATE function, type Sales[SalesAmount]. Esse é o primeiro argumento de expressão para a função CALCULATE.This is the first expression argument for our CALCULATE function.

  6. Digite uma vírgula (,) para especificar o primeiro filtro e, em seguida, digite PREVIOUSQUARTER seguido de um parêntese de abertura.Type a comma (,) to specify the first filter, then type PREVIOUSQUARTER followed by an opening parenthesis.

    Você usará a função de time intelligence PREVIOUSQUARTER para filtrar nossos resultados SUM pelo trimestre anterior.You’ll use the PREVIOUSQUARTER time intelligence function to filter our SUM results by the previous quarter.

  7. Entre os parênteses (), para a função PREVIOUSQUARTER, digite Calendar[DateKey].Between the parenthesis () for the PREVIOUSQUARTER function, type Calendar[DateKey].

    A função PREVIOUSQUARTER tem um argumento, uma coluna contendo um intervalo contíguo de datas.The PREVIOUSQUARTER function has one argument, a column containing a contiguous range of dates.

  8. Verifique se ambos os argumentos passados para as funções PREVIOUSQUARTER e CALCULATE estão entre dois parênteses de fechamento )).Make sure both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE function are closed by two closing parentheses )).

    Sua fórmula agora deve ter essa aparência:Your formula should now look like this:

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

  9. Clique na marca de seleção na barra de fórmulas ou pressione Enter para validar a fórmula e adicioná-la ao modelo.Click the checkmark in the formula bar or press Enter to validate the formula and add it to the model.

Você conseguiu!You did it! Você acabou de criar uma medida usando DAX, e não estamos falando de uma medida fácil.You just created a measure using DAX, and not an easy one at that. O que essa fórmula fará é calcular o total de vendas do trimestre anterior, dependendo dos filtros aplicados em um relatório.What this formula will do is calculate the total sales for the previous quarter, depending on the filters applied in a report. Por exemplo, se colocamos SalesAmount e nossa nova medida Previous Quarter Sales em um gráfico e adicionamos Year e QuarterOfYear como Segmentações de Dados, obteremos algo semelhante ao exemplo abaixo:For example, if we put SalesAmount and our new Previous Quarter Sales measure in a chart, and then added Year and QuarterOfYear as Slicers, we’d get something like this:

Você acabou de conhecer vários aspectos importantes das fórmulas DAX.You were just introduced to several important aspects of DAX formulas. Em primeiro lugar, esta fórmula incluiu duas funções.First, this formula included two functions. É importante observar que PREVIOUSQUARTER, uma função de inteligência de dados temporais, está aninhada como um argumento transmitido para CALCULATE, uma função de filtro.Notice PREVIOUSQUARTER, a time intelligence function, is nested as an argument passed to CALCULATE, a filter function. Fórmulas DAX podem conter até 64 funções aninhadas.DAX formulas can contain up to 64 nested functions. É improvável que uma fórmula chegue a conter tantas funções aninhadas.It’s unlikely a formula would ever contain so many nested functions. Na verdade, uma fórmula como essa seria muito difícil de criar e depurar; além disso, ela provavelmente não seria muito rápida.In fact, such a formula would be very difficult to create and debug, and it probably wouldn’t be very fast either.

Nesta fórmula, você também usou filtros.In this formula, you also used filters. Filtros restringem o que será calculado.Filters narrow down what will be calculated. Nesse caso, você selecionou um filtro como um argumento, que é, na verdade, o resultado de outra função.In this case, you selected one filter as an argument, which is actually the result of another function. Você aprenderá mais sobre filtros posteriormente.You will learn more about filters later.

Por fim, você usou a função CALCULATE.Finally, you used the CALCULATE function. Essa é uma das funções mais poderosas em DAX.This is one of the most powerful functions in DAX. Conforme você criar modelos e fórmulas mais complexas, provavelmente utilizará essa função muitas vezes.As you author models and create more complex formulas, you will likely use this function many times. Discutir a função CALCULATE está fora do escopo deste artigo, mas fique atento a ela conforme seu conhecimento sobre o DAX aumentar.Discussing the CALCULATE function is outside the scope of this article, but as your knowledge of DAX grows, pay special attention to this one.

Teste rápido sobre sintaxeSyntax QuickQuiz

  1. Qual é a função desse botão na barra de fórmulas?What does this button on the formula bar do?

  2. O que sempre está em torno de um nome de coluna em uma fórmula DAX?What always surrounds a column name in a DAX formula?

As respostas são fornecidas no final deste artigo.Answers are provided at the end of this article.

FunçõesFunctions

Funções são fórmulas predefinidas que realizam cálculos usando valores específicos, chamados argumentos, em uma determinada ordem ou estrutura.Functions are predefined formulas that perform calculations by using specific values, called arguments, in a particular order or structure. 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.Arguments can be other functions, another formula, expression, column references, numbers, text, logical values such as TRUE or FALSE, or constants.

O DAX inclui as seguintes categorias de funções: Data e Hora, Inteligência de Dados Temporais, Informações, Lógica, Matemática, Estatística, Texto, Pai/Filho e Outras.DAX includes the following categories of functions: Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child, and Other functions. Se já estiver familiarizado com as funções em fórmulas do Excel, muitas das funções no DAX podem parecer semelhantes para você. No entanto, as funções DAX são exclusivas nos seguintes aspectos:If you’re familiar with functions in Excel formulas, many of the functions in DAX will appear similar to you; however, DAX functions are unique in the following ways:

  • Uma função DAX sempre referencia uma coluna ou uma tabela completa.A DAX function always references a complete column or a table. Se desejar usar apenas valores específicos de uma tabela ou coluna, é possível adicionar filtros à fórmula.If you want to use only particular values from a table or column, you can add filters to the formula.

  • Se precisar personalizar cálculos linha por linha, o DAX fornece funções que permitem usar o valor da linha atual ou um valor relacionado como um tipo de argumento, para realizar cálculos que variam de acordo com o contexto.If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of argument, to perform calculations that vary by context. Você aprenderá mais sobre contexto posteriormente.You will learn more about context later.

  • O DAX inclui várias funções que retornam uma tabela em vez de um valor.DAX includes many functions that return a table rather than a value. A tabela não é exibida, mas é usada para fornecer informações de entrada a outras funções.The table is not displayed, but is used to provide input to other functions. Por exemplo, é possível recuperar uma tabela e, em seguida, contar os valores distintos contidos nela, ou calcular somas dinâmicas em diferentes colunas ou tabelas filtradas.For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns.

  • O DAX inclui uma variedade de funções de inteligência de dados temporais.DAX includes a variety of time intelligence functions. Estas funções permitem definir ou selecionar intervalos de datas e executar cálculos dinâmicos, baseados nesses intervalos.These functions let you define or select date ranges, and perform dynamic calculations based on them. Por exemplo, é possível comparar somas em períodos paralelos.For example, you can compare sums across parallel periods.

  • O Excel tem uma função muito popular, VLOOKUP.Excel has a very popular function, VLOOKUP. As funções DAX não usam uma célula ou intervalo de células como referência, como a VLOOKUP faz no Excel.DAX functions don’t take a cell or cell range as a reference like VLOOKUP does in Excel. As funções DAX usam uma coluna ou tabela como referência.DAX functions take a column or a table as a reference. Lembre-se: no Power BI Desktop, você está trabalhando com um modelo de dados relacionais.Keep in mind, in Power BI Desktop, you’re working with a relational data model. Procurar por valores em outra tabela é realmente muito fácil e, na maioria dos casos, você não precisa criar nenhuma fórmula.Looking up values in another table is really quite easy, and in most cases you don’t need to create any formula at all.

    Como você pode ver, as funções no DAX podem ajudá-lo a criar fórmulas muito poderosas.As you can see, functions in DAX can help you create very powerful formulas. Nós abordamos apenas as noções básicas das funções.We really only touched on the basics of functions. Na medida em que suas habilidades com DAX aumentarem, você criará fórmulas usando muitas funções diferentes.As your DAX skills grow, you'll create formulas using many different functions. Um dos melhores lugares para obter detalhes sobre cada uma das funções DAX é a Referência de funções DAX.One of the best places to learn details about each of the DAX functions is in the DAX Function Reference.

Teste rápido sobre funçõesFunctions QuickQuiz

  1. Uma função sempre faz referência a que?What does a function always reference?
  2. Uma fórmula pode conter mais de uma função?Can a formula contain more than one function?
  3. Que categoria de funções você usaria para concatenar duas cadeias de caracteres de texto em uma cadeia de caracteres?What category of functions would you use to concatenate two text strings into one string?

As respostas são fornecidas no final deste artigo.Answers are provided at the end of this article.

ContextoContext

Contexto é um dos conceitos do DAX mais importantes para se compreender.Context is one of the most important DAX concepts to understand. Há dois tipos de contexto em DAX: o contexto de linha e o contexto de filtro.There are two types of context in DAX; row context and filter context. Primeiro, vamos dar uma olhada no contexto de linha.We’ll first look at row context.

Contexto de linhaRow context

É mais fácil pensar no contexto de linha como a linha atual.Row context is most easily thought of as the current row. Ele se aplica sempre que uma fórmula tem uma função que utiliza filtros para identificar uma única linha em uma tabela.It applies whenever a formula has a function that applies filters to identify a single row in a table. A função aplicará inerentemente um contexto de linha a cada linha da tabela que essa função está filtrando.The function will inherently apply a row context for each row of the table over which it is filtering. Esse tipo de contexto de linha geralmente se aplica a medidas.This type of row context most often applies to measures.

Contexto de filtroFilter context

O contexto do filtro é um pouco mais difícil de entender do que o contexto de linha.Filter context is a little more difficult to understand than row context. É mais fácil pensar no contexto de filtro como um ou mais filtros aplicados em um cálculo que determina um resultado ou valor.You can most easily think of filter context as: One or more filters applied in a calculation that determines a result or value.

O contexto de filtro não existe no lugar do contexto de linha; em vez disso, eles são aplicados em conjunto.Filter context doesn’t exist in-place of row context; rather, it applies in addition to row context. 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, mas também especifica apenas um valor específico (filtro) nesse contexto de linha.For example, to further narrow down the values to include in a calculation, you can apply a filter context, which not only specifies the row context, but also specifies only a particular value (filter) in that row context.

O contexto de filtro é visto facilmente em seus relatórios.Filter context is easily seen in your reports. Por exemplo, ao adicionar TotalCost a uma visualização e, em seguida, Year e Region, você está definindo um contexto de filtro que seleciona um subconjunto de dados com base em um determinado ano e região.For example, when you add TotalCost to a visualization, and then add Year and Region, you are defining a filter context that selects a subset of data based on a given year and region.

Por que o contexto de filtro é tão importante no DAX?Why is filter context so important to DAX? Visto que, embora o contexto de filtro possa ser aplicado mais facilmente pela adição de campos a uma visualização, ele também pode ser aplicado em uma fórmula DAX pela definição de um filtro com funções como ALL, RELATED, FILTER, CALCULATE, por relações e por outras medidas e colunas.Because while filter context can most easily be applied by adding fields to a visualization, filter context can also be applied in a DAX formula by defining a filter using functions such as ALL, RELATED, FILTER, CALCULATE, by relationships, and by other measures and columns. Por exemplo, vamos dar uma olhada na seguinte fórmula em uma medida chamada Store Sales:For example, let’s look at the following formula in a measure named Store Sales:

Para entender melhor essa fórmula podemos decompô-la, de modo muito similar ao que ocorre em outras fórmulas.To better understand this formula, we can break it down, much like with other formulas.

Esta fórmula inclui os seguintes elementos de sintaxe:This formula includes the following syntax elements:

A.A. O nome da medida Store Sales.The measure name Store Sales.

B.B. O operador de sinal de igual (=) indica o início da fórmula.The equals sign operator (=) indicates the beginning of the formula.

C.C. A função CALCULATE avalia uma expressão, como um argumento, em um contexto que é modificado pelos filtros especificados.The CALCULATE function evaluates an expression, as an argument, in a context that is modified by the specified filters.

D.D. Os parênteses () envolvem uma expressão que contém um ou mais argumentos.Parenthesis () surround an expression containing one or more arguments.

E.E. Uma medida [Total Sales] na mesma tabela como uma expressão.A measure [Total Sales] in the same table as an expression. A medida Total Sales tem a fórmula: =SUM(Sales[SalesAmount]).The Total Sales measure has the formula: =SUM(Sales[SalesAmount]).

F.F. Uma vírgula (,) separa o primeiro argumento da expressão do argumento do filtro.A comma (,) separates the first expression argument from the filter argument.

G.G. A coluna referenciada totalmente qualificada, Channel[ChannelName].The fully qualified referenced column, Channel[ChannelName]. Esse é o nosso contexto de linha.This is our row context. Cada linha nesta coluna especifica um canal: Store, Online, etc.Each row in this column specifies a channel: Store, Online, etc.

H.H. O valor específico, Store, como um filtro.The particular value, Store as a filter. Esse é o nosso contexto de filtro.This is our filter context.

Esta fórmula garante que somente valores de vendas definidos pela medida Total Sales sejam calculados, apenas para linhas na coluna Channel[ChannelName] e usando o valor "Store" como um filtro.This formula ensures only sales values defined by the Total Sales measure are calculated only for rows in the Channel[ChannelName] column with the value “Store”, as a filter.

Como você pode imaginar, a capacidade de definir o contexto de filtro em uma fórmula apresenta funcionalidades incríveis e poderosas.As you can imagine, being able to define filter context within a formula has immense and powerful capabilities. Ser capaz de fazer referência a um determinado valor em uma tabela relacionada é apenas um exemplo.Being able to reference only a particular value in a related table is just one such example. Não se preocupe se você não entender totalmente o contexto, logo de imediato.Don’t worry if you do not completely understand context right away. Ao criar suas próprias fórmulas, você entenderá melhor o contexto e a razão pela qual ele é tão importante no DAX.As you create your own formulas, you will better understand context and why it’s so important in DAX.

Teste rápido de contextoContext QuickQuiz

  1. Quais são os dois tipos de contexto?What are the two types of context?
  2. O que é o contexto de filtro?What is filter context?
  3. O que é o contexto de linha?What is row context?

As respostas são fornecidas no final deste artigo.Answers are provided at the end of this article.

ResumoSummary

Agora que você tem uma noção básica dos conceitos mais importantes do DAX, você pode começar a criar fórmulas DAX para medidas por conta própria.Now that you have a basic understanding of the most important concepts in DAX, you can begin creating DAX formulas for measures on your own. DAX pode ser realmente um pouco difícil de aprender, mas há muitas fontes de aprendizado disponíveis para você.DAX can indeed be a little tricky to learn, but there are many resources available to you. Depois de ler este artigo e experimentar algumas das suas próprias fórmulas, você pode aprender mais sobre outros conceitos e fórmulas de DAX que podem ajudá-lo a resolver seus próprios problemas empresariais.After reading through this article and experimenting with a few of your own formulas, you can learn more about other DAX concepts and formulas that can help you solve your own business problems. Há muitos recursos do DAX disponíveis para você: o mais importante é a Referência ao DAX (Expressões de Análise de Dados).There are many DAX resources available to you; most important is the Data Analysis Expressions (DAX) Reference.

DAX já existe há anos em outras ferramentas de BI da Microsoft, como modelos de tabela do Analysis Services e Power Pivot, portanto, há muitas informações disponíveis.DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services Tabular models, so there’s a lot of great information out there. Você encontrará mais informações em white papers, livros e blogs tanto da Microsoft quanto de profissionais de BI de vanguarda.You can find more information in books, whitepapers, and blogs from both Microsoft and leading BI professionals. O Wiki do Centro de Recursos do DAX no TechNet também é um ótimo lugar para começar.The DAX Resource Center Wiki on TechNet is also a great place to start.

Respostas do Teste RápidoQuickQuiz answers

Sintaxe:Syntax:

  1. Valida e insere a medida no modelo.Validates and enters the measure into the model.
  2. Colchetes [].Brackets [].

Funções:Functions:

  1. Uma tabela e uma coluna.A table and a column.
  2. Sim.Yes. Uma fórmula pode conter até 64 funções aninhadas.A formula can contain up to 64 nested functions.
  3. Funções de texto.Text functions.

Contexto:Context:

  1. Contexto de linha e contexto de filtro.Row context and filter context.
  2. Um ou mais filtros em um cálculo que determina um único valor.One or more filters in a calculation that determines a single value.
  3. A linha atual.The current row.