Tutorial: criar colunas calculadas no Power BI DesktopTutorial: Create calculated columns in Power BI Desktop

Às vezes, os dados que você está analisando simplesmente não contêm um campo específico, do qual você precisa para obter os resultados que procura.Sometimes the data you’re analyzing just doesn’t contain a particular field you need to get the results you’re after. É aqui que entram as colunas calculadas.This is where calculated columns come in. As colunas calculadas usam fórmulas DAX (Data Analysis Expressions) para definir os valores de uma coluna.Calculated columns use Data Analysis Expressions (DAX) formulas to define a column’s values. Esses valores podem ser praticamente qualquer coisa, seja reunindo valores de texto de duas colunas diferentes em outro lugar no modelo ou calculando um valor numérico por meio de outros valores.Those values can be just about anything, whether it be putting together text values from a couple of different columns elsewhere in the model, or calculating a numeric value from other values. Por exemplo, digamos que seus dados têm colunas Cidade e Estado (como campos na lista Campos), mas você deseja um único campo Localização que englobe ambas como um único valor, como “Miami, FL”.For example, let’s say your data has a City and State columns (as fields in the Fields list), but you want a single Location field that has both as a single value, like Miami, FL. É exatamente para isso que as colunas calculadas servem.This is precisely what calculated columns are for.

As colunas calculadas são semelhantes a medidas no sentido que ambas se baseiam em uma fórmula DAX, mas diferem no modo como são usadas.Calculated columns are similar to measures in that both are based on a DAX formula, but they differ in how they are used. Medidas são geralmente usadas na área Valores de uma visualização para calcular resultados com base em outros campos que você tem em uma linha de uma tabela, ou em uma área de Eixo, Legenda ou Grupo de uma visualização.Measures are most often used in the Values area of a visualization, to calculate results based on other fields you have on a row in a table, or in an Axis, Legend, or Group area of a visualization. Por outro lado, as colunas calculadas são usadas quando você quer os resultados da coluna contidos em uma determinada linha na tabela, ou na área Eixo, Legenda ou Grupo.Calculated columns on the other hand are used when you want the column’s results on that row in the table, or in the Axis, Legend, or Group area.

Este tutorial serve como guia para que você compreenda as colunas calculadas e crie-as você mesmo no Power BI Desktop.This tutorial will guide you through understanding and creating some of your own calculated columns in Power BI Desktop. Ele destina-se aos usuários do Power BI já familiarizados com o uso do Power BI Desktop para criar modelos mais avançados.It’s intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. Você já deve estar familiarizado com o uso da Consulta para importar dados, trabalhar com múltiplas tabelas relacionadas e adicionar campos à tela Relatório.You should already be familiar with using Query to import data, working with multiple related tables, and adding fields to the Report Canvas. Se ainda não estiver familiarizado com o Power BI Desktop, não deixe de conferir a Introdução ao Power BI Desktop.If you’re new to Power BI Desktop, be sure to check out Getting Started with Power BI Desktop.

Para concluir as etapas neste tutorial, você precisará baixar o arquivo Exemplo de Vendas da Contoso para o Power BI Desktop.To complete the steps in this tutorial, you’ll need to download the Contoso Sales Sample for Power BI Desktop file. Trata-se do mesmo arquivo de exemplo usado no tutorial Criar suas próprias medidas no Power BI Desktop.This is the same sample file used for the Create your own measures in Power BI Desktop tutorial. Ele já inclui dados de vendas da empresa fictícia, Contoso, Inc. Já que os dados no arquivo foram importados de um banco de dados, você não conseguirá conectar-se à fonte de dados nem exibi-los no Editor de Consulta.It already includes sales data from the fictitious company, Contoso, Inc. Because data in the file was imported from a database, you won’t be able to connect to the datasource or view it in Query Editor. Quando você tiver o arquivo em seu próprio computador, vá em frente e abra-o no Power BI Desktop.When you have the file on your own computer, go ahead and open it in Power BI Desktop.

Vamos criar uma coluna calculadaLet’s create a calculated column

Vamos dizer que desejamos exibir categorias de produtos juntamente com subcategorias de produtos em um único valor em linhas, como Telefones celulares – Acessórios, Telefones celulares – Smartphones e PDAs, etc.Let’s say we want to display product categories together with product subcategories in a single value on rows, like Cell phones – Accessories, Cell phones – Smart phones & PDAs, and so on. Na Exibição de Relatório ou Exibição de Dados (estamos usando a Exibição de Relatório aqui), se observarmos nossas tabelas de produtos na lista Campos, veremos que não há nenhum campo que fornece o que queremos.In Report View or Data View (we're using Report View here), If we look at our product tables in the Fields list, we see there’s no field that gives is what we want. Temos, no entanto, um campo ProductCategory e um campo ProductSubcategory, cada um deles em sua própria tabela.We do, however, have a ProductCategory field and a ProductSubcategory field, each in their own tables.

Criaremos uma nova coluna calculada, para combinar os valores dessas duas colunas em novos valores para nossa nova coluna.We’ll create a new calculated column to combine values from these two column into new values for our new column. O interessante disso é que precisamos combinar dados de duas tabelas diferentes em uma única coluna.Interestingly enough, we need to combine data from two different tables into a single column. Como nós vamos usar DAX para criar nossa nova coluna, podemos aproveitar todo o potencial do modelo que já temos, incluindo as relações entre tabelas diferentes já existentes.Because we’re going to use DAX to create our new column, we can leverage the full power of the model we already have, including the relationships between different tables that already exist.

Para criar uma coluna ProductFullCategoryTo create a ProductFullCategory column

  1. Clique com o botão direito do mouse na tabela ProductSubcategory na lista Campos ou clique na seta para baixo nessa mesma tabela; em seguida, clique em Nova Coluna.Right click, or click the down arrow on the ProductSubcategory table in the Fields list, and then click New Column. Isso vai assegurar que a nossa nova coluna seja adicionada à tabela ProductSubcategory.This will make sure our new column is added to the ProductSubcategory table.

    A barra de fórmulas aparece na parte superior da tela Relatório ou grade de Dados.The formula bar appears along the top of the Report canvas or Data grid. É ali que podemos renomear nossa coluna e inserir uma fórmula DAX.This is where we can rename our column and enter a DAX formula.

    Por padrão, uma nova coluna calculada é nomeada simplesmente como Coluna.By default a new calculated column is simply named Column. Se não a renomearmos, a próxima coluna que criamos será nomeada Coluna 2, Coluna 3 e assim por diante.If we don’t rename it, when we create another, it will be named Column 2, Column 3, and so on. Queremos que nossas colunas sejam identificadas com mais facilidade, então vamos dar um novo nome a nossa nova coluna.We want our columns to be more identifiable, so we’ll give our new column a new name.

  2. Como o nome da Coluna já está realçado na barra de fórmulas, basta digitar ProductFullCategory.Since the Column name is already highlighted in the formula bar, just type ProductFullCategory.

    Agora, podemos começar a inserir nossa fórmula.Now we can begin entering our formula. Queremos que os valores na coluna nova comecem com o nome ProductCategory, da tabela ProductCategory.We want the values in our new column to start with the ProductCategory name from the ProductCategory table. Como esta coluna está em uma tabela diferente, mas relacionada, vamos usar a função RELATED para nos ajudar a obtê-la.Because this column is in a different, but related table, we’re going to use the RELATED function to help us get it.

  3. Após o sinal de igual, digite um R. Você verá uma lista suspensa de sugestões aparecer com todas as funções DAX começando pela letra R. Quanto mais digitamos, mais a lista de sugestões é dimensionada aproximando-se da função que precisamos.After the equals sign, type R. You’ll see a dropdown suggestion list appear with all of the DAX functions beginning with the letter R. The more we type, the more the suggestion list is scaled closer to the function we need. Você verá uma descrição da função ao lado desta.Next to the function you’ll see a description of the function. Selecione RELATED rolando para baixo e depois pressionando Enter.Select RELATED by scrolling down, and then pressing Enter.

    Um parêntese de abertura é exibido junto com outra lista de sugestões de todas as colunas disponíveis que podemos passar para a função RELATED.An opening parenthesis appears along with another suggestion list of all of the available columns we can pass to the RELATED function. Também são exibidos uma descrição e detalhes sobre quais parâmetros são esperados.A description and details on what parameters are expected is also shown.

    Uma expressão sempre aparece entre parênteses de abertura e de fechamento.An expression always appears between an opening and closing parenthesis. Nesse caso, nossa expressão vai conter um único argumento passado para a função RELATED: uma coluna relacionada, da qual retornar valores.In this case, our expression is going to contain a single argument passed to the RELATED function; a related column to return values from. A lista de colunas é reduzida automaticamente para exibir somente as colunas relacionadas.The list of columns is automatically narrowed down to show only the columns that are related. Nesse caso, queremos a coluna ProductCategory na tabela ProductCategory.In this case, we want the ProductCategory column in the ProductCategory table.

    Selecione ProductCategory[ProductCategory], e, em seguida, digite um parêntese de fechamento.Select ProductCategory[ProductCategory], and then type a closing parenthesis.

    Dica

    Erros de sintaxe são causados frequentemente por um parêntese de fechamento ausente ou mal posicionado.Syntax errors are most often caused by a missing or misplaced closing parenthesis. Mas, muitas vezes, o Power BI Desktop o adicionará se você esquecer.But often Power BI Desktop will add it if you forget.

  4. Queremos adicionar um símbolo de hífen para separar cada valor, portanto, após o parêntese de fechamento da primeira expressão, digite um espaço, E comercial (&), aspas, espaço, hífen (-), outro espaço, aspas de fechamento e, em seguida, outro E comercial.We want to add a dash symbol to separate each value, so after the closing parenthesis of the first expression, type a space, ampersand (&), quote, space, dash (-), another space, a closing quote, and then another ampersand. Sua fórmula agora deve ter essa aparência:Your formula should now look like this:

    ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &

    Dica

    Clique na divisa inferior no lado direito da barra de fórmulas para expandir o editor de fórmulas.Click the down chevron on the right side of the formula bar to expand the formula editor. Clique em Alt + Enter para mover uma linha para baixo e pressione Tab para mudar a posição das coisas.Click Alt & Enter to move down a line, and Tab to move things over.

  5. Por fim, insira outro colchete de abertura e selecione a coluna [ProductSubcategory] para concluir a fórmula.Finally, enter another opening bracket and then select the [ProductSubcategory] column to finish the formula. Sua fórmula deve ter essa aparência:Your formula should look like this:

    Você observará que não usamos outra função RELATED na segunda expressão, chamando a coluna ProductSubcategory.You’ll notice we didn’t use another RELATED function in the second expression calling the ProductSubcategory column. Isso ocorre porque essa coluna já está na mesma tabela em que estamos criando nossa nova coluna.This is because this column is already in the same table we’re creating our new column in. Podemos inserir [ProductCategory] com o nome da tabela (totalmente qualificado) ou sem (não qualificado).We can enter [ProductCategory] with the table name (fully qualified) or without (non-qualified).

  6. Complete a fórmula, pressionando Enter ou clicando na marca de confirmação na barra de fórmulas.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. A fórmula é validada e adicionada à lista de campos na tabela ProductSubcategory .The formula is validated and added to the field list in the ProductSubcategory table.

    Você observará que colunas calculadas recebem um ícone especial na lista de campos.You’ll notice calculated columns get a special icon in the field list. Isso mostra que elas contêm uma fórmula.This shows they contain a formula. Elas aparecerão assim somente no Power BI Desktop.They’ll only appear like this in Power BI Desktop. No serviço PowerBI.com (seu site do Power BI), não é possível alterar uma fórmula; portanto, um campo de coluna calculada não tem um ícone.In the PowerBI service (your Power BI site), there’s no way to change a formula, so a calculated column field doesn’t have an icon.

Vamos adicionar nossa nova coluna a um relatórioLet’s add our new column to a report

Agora podemos adicionar nossa nova coluna ProductFullCategory à tela de relatório.Now we can add our new ProductFullCategory column to the report canvas. Vamos examinar SalesAmount por ProductFullCategory.Let’s look at SalesAmount by ProductFullCategory.

Arraste a coluna ProductFullCategory da tabela ProductSubcategory até a tela Relatório e, em seguida, arraste o campo SalesAmount da tabela Sales até o gráfico.Drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas, and then drag the SalesAmount field from the Sales table into the chart.

Vamos criar mais umaLet’s create another

Agora que você sabe como criar uma coluna calculada, vamos criar outra.Now that you know how to create a calculated column, let’s create another.

O modelo “Exemplo de Vendas da Contoso para o Power BI Designer” contém dados de vendas tanto para repositórios ativos quanto inativos.The Contoso Sales Sample for Power BI Desktop model contains sales data for both active and inactive stores. Queremos garantir que dados exibidos para repositórios inativos sejam identificados como tal.We want to make it really clear that data shown for inactive stores is identified as such. Por isso, desejamos um campo chamado Active StoreName.In-effect, we want a field named Active StoreName. Para fazer isso, criaremos outra coluna.To do this, we’ll create another column. Nesse caso, quando um repositório estiver inativo, queremos que nossa nova coluna Active StoreName (como um campo) mostre o nome do repositório como "Inactive", mas mostre o verdadeiro nome do repositório quando este for um repositório ativo.In this case, when a store is inactive, we want our new Active StoreName column (as a field) to show the store’s name as “Inactive”, but show the store’s real name when it’s an active store.

Felizmente, nossa tabela Stores tem uma coluna denominada Status, com um valor “On” para repositórios ativos e “Off” para repositórios inativos.Fortunately, our Stores table has a column named Status, with a value of On for active stores, and Off for inactive stores. Podemos testar valores para cada linha na coluna Status, para criar novos valores em nossa nova coluna.We can test values for each row in the Status column to create new values in our new column.

Para criar uma coluna Active StoreNameTo create an Active StoreName column

  1. Crie uma nova coluna calculada chamada Active StoreName na tabela Stores.Create a new calculated column named Active StoreName in the Stores table.

    Para esta coluna, nossa fórmula DAX verificará o status de cada repositório.For this column, our DAX formula is going to check each stores status. Se um status de um repositório for “On”, a nossa fórmula retornará o nome do repositório.If a stores status is On, our formula will return the stores name. Se o status for “Off”, o repositório terá o nome "Inactive".If it’s Off, it will have the name, “Inactive”. Para fazer isso, vamos usar a função lógica IF para testar o status das lojas e retornar um valor específico se o resultado for “true” ou “false”.To do this, we’ll use the logical IF function to test the stores status and return a particular value if the result is true or false.

  2. Comece digitando IF.Begin typing IF. A lista de sugestões mostrará o que podemos adicionar.The suggestion list will show what we can add. Selecione IF.Select IF.

    O primeiro argumento para IF é um teste lógico.The first argument for IF is a logical test. Queremos testar se um repositório tem ou não um status "On".We want to test whether or not a store has a status of “On”.

  3. Digite um colchete de abertura [, que nos permite selecionar colunas na tabela Stores.Type an opening bracket [ , which allows us to select columns from the Stores table. Selecione [Status].Select [Status].

  4. Logo após [Status], digite ="On" e, em seguida, digite uma vírgula (,) para inserir o segundo argumento.Right after [Status], type ="On", then enter a comma (,) to enter the second argument. A dica de contexto sugere que precisamos adicionar o valor quando o resultado é “true”.The tooltip suggests we need to add the value for when the result is true.

  5. Se o status do repositório for “On”, queremos que o nome desse repositório seja exibido.If the store is On, we want to show the store’s name. Digite um colchete de abertura [ e selecione a coluna [StoreName] , então digite outra vírgula para que possamos inserir nosso terceiro argumento.Type an opening bracket [ and select the [StoreName] column, and then type another comma so we can enter our third argument.

  6. Precisamos adicionar um valor quando o resultado for “false”; neste caso, desejamos que o valor seja “Inactive”.We need to add a value for when the result is false, in this case we want the value to be “Inactive”.

  7. Complete a fórmula, pressionando Enter ou clicando na marca de confirmação na barra de fórmulas.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. A fórmula é validada e adicionada à lista de campos na tabela Stores.The formula is validated and added to the field list in the Stores table.

    Assim como ocorre com qualquer outro campo, podemos usar nossa nova coluna Active StoreName em visualizações.Just like any other field, we can use our new Active StoreName column in visualizations. Neste gráfico, repositórios com um status “On” são exibidos individualmente por nome, mas repositórios com um status “Off” são agrupados juntos e mostrados como “Inactive”.In this chart, stores with a status of On are shown individually by name, but stores with a status of Off are grouped together and shown as Inactive.

O que aprendemosWhat we’ve learned

Colunas calculadas podem enriquecer nossos dados, facilitando a compreensão das informações.Calculated columns can enrich our data, providing easier insights. Aprendemos como criar colunas calculadas usando a barra de fórmulas, como usar a lista de sugestões e o melhor modo de nomear nossas novas colunas.We've learned how to create calculated columns by using the formula bar, how to use the suggestions list, and how to best name our new columns.

Próximas etapasNext steps

Se desejar se aprofundar nas fórmulas DAX e criar colunas calculadas com fórmulas DAX mais avançadas, veja Noções básicas do DAX no Power BI Desktop.If you want to take a deeper dive into DAX formulas, and create calculated columns with more advanced DAX formulas, see DAX Basics in Power BI Desktop. Este artigo enfoca os conceitos fundamentais no DAX, como sintaxe, funções e uma compreensão mais abrangente sobre o contexto.This article focuses on fundamental concepts in DAX, such as syntax, functions, and a more thorough understanding of context.

Certifique-se de adicionar a Referência ao DAX (Expressões de Análise de Dados) aos favoritos.Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. É nela que você encontrará informações detalhadas sobre a sintaxe do DAX, operadores, além de mais de 200 funções DAX.This is where you'll find detailed info on DAX syntax, operators, and the over 200 DAX functions.