Criar e gerenciar relações no Power BI DesktopCreate and manage relationships in Power BI Desktop

Esta página é útil?

Quando você importa várias tabelas, é provável que você realize algumas análises usando dados de todas essas tabelas.When you import multiple tables, chances are you’re going to do some analysis using data from all those tables. Relações entre essas tabelas são necessárias para calcular os resultados com precisão e exibir as informações corretas em seus relatórios.Relationships between those tables are necessary in order to accurately calculate results and display the correct information in your reports. O Power BI Desktop torna fácil a criação dessas relações.Power BI Desktop makes creating those relationships easy. Na verdade, na maioria dos casos, você não precisará fazer nada - o recurso de Detecção Automática pode fazer isso por você.In-fact, in most cases you won’t have to do anything, the Autodetect feature can do it for you. No entanto, em alguns casos, talvez você precise criar relações por conta própria, ou talvez seja necessário fazer algumas alterações em uma relação.However, in some cases you might have to create relationships yourself, or you might need to make some changes to a relationship. De qualquer modo, é importante compreender as relações no Power BI Desktop e compreender como criá-las e editá-las.Either way, it’s important to understand relationships in Power BI Desktop and how to create and edit them.

Detectar automaticamente durante o carregamentoAutodetect during load

Se você consultar duas ou mais tabelas ao mesmo tempo, quando os dados são carregados, o Power BI Desktop tenta localizar e criar relações para você.If you query two or more tables at the same time, when the data is loaded, Power BI Desktop attempts to find and create relationships for you. A cardinalidade, a direção do filtro cruzado e as propriedades de relação ativa são definidas automaticamente.Cardinality, Cross filter direction, and Active properties are automatically set. O Power BI Desktop procura nomes de colunas nas tabelas que você está consultando para determinar se há quaisquer relações em potencial.Power BI Desktop looks at column names in the tables you are querying to determine if there are any potential relationships. Se houver, essas relações serão criadas automaticamente.If there are, those relationships are created automatically. Se não puder determinar a área de trabalho do Power BI com um alto nível de confiança é uma correspondência, ele não cria automaticamente a relação.If Power BI Desktop cannot determine with a high level of confidence there is a match, it does not automatically create the relationship. Você ainda pode usar a caixa de diálogo Gerenciar Relações para criar ou editar relações.You can still use the Manage Relationships dialog to create or edit relationships.

Criar uma relação usando a Detecção AutomáticaCreate a relationship by using Autodetect

Na guia Página Inicial, clique em Gerenciar Relações > Detectar Automaticamente.On the Home tab, click Manage Relationships > AutoDetect.

Criar uma relação manualmenteCreate a relationship manually

  1. Na guia Página Inicial, clique em Gerenciar Relações > Nova.On the Home tab, click Manage Relationships > New.
  2. No Criar relacionamento caixa de diálogo, na primeira lista suspensa da tabela, selecione uma tabela e, em seguida, selecione a coluna que você deseja usar na relação.In the Create Relationship dialog, in the first table drop-down list, select a table, and then select the column you want to use in the relationship.
  3. Na segunda lista suspensa da tabela, selecione a outra tabela que você deseja na relação e, em seguida, a outra coluna que você deseja usar e, em seguida, clique em Okey.In the second table drop-down list, select the other table you want in the relationship, then select the other column you want to use, and then click OK.

Por padrão, Power BI Desktop configurará automaticamente a cardinalidade (direção), entre a direção do filtro e propriedades ativas para sua nova relação; No entanto, você pode alterar as configurações, se necessário.By default, Power BI Desktop automatically configures the Cardinality (direction), Cross filter direction, and Active properties for your new relationship; however, you can change the settings if necessary. Para obter mais informações, consulte a seção Noções básicas sobre opções adicionais posteriormente neste artigo.To learn more, see the Understanding additional options section later in this article.

Você verá um erro que afirma uma das colunas deve ter valores exclusivos se nenhuma das tabelas selecionadas para a relação tem valores exclusivos.You'll see an error that states One of the columns must have unique values if none of the tables selected for the relationship has unique values. Pelo menos uma tabela em uma relação precisa ter uma lista distinta e exclusiva de valores de chave, que é um requisito comum para todas as tecnologias de banco de dados relacional.At least one table in a relationship must have a distinct, unique list of key values, which is a common requirement for all relational database technologies.

Se você encontrar esse erro, haverá duas maneiras de corrigir o problema:If you encounter that error, there are a couple ways to fix the issue:

  • Use "Remover Linhas Duplicadas" para criar uma coluna com valores exclusivos.Use "Remove Duplicate Rows" to create a column with unique values. A desvantagem dessa abordagem é que você perderá informações quando as linhas duplicadas forem removidas e, geralmente, há um bom motivo para que uma chave (linha) esteja duplicada.The drawback to this approach is that you will lose information when duplicate rows are removed, and often a key (row) is duplicated for good reason.
  • Adicione uma tabela intermediária composta pela lista de valores de chave distintos no modelo, que, em seguida, será vinculado às duas colunas originais na relação.Add an intermediary table made of the list of distinct key values to the model, which will then be linked to both original columns in the relationship.

Para obter mais informações, consulte o postagem de blog.For more detailed information, see the blog post.

Editar uma relaçãoEdit a relationship

  1. Na guia Página Inicial , clique em Gerenciar Relações.On the Home tab, click Manage Relationships.
  2. Na caixa de diálogo Gerenciar Relações , selecione a relação e clique em Editar.In the Manage Relationships dialog, select the relationship, then click Edit.

Configurar opções adicionaisConfigure additional options

Quando você cria ou edita uma relação, pode configurar opções adicionais.When you create or edit a relationship, you can configure additional options. Por padrão, opções adicionais são configuradas automaticamente com base na melhor estimativa, que pode ser diferente para cada relação, com base nos dados nas colunas.By default, additional options are automatically configured based on a best guess, which can be different for each relationship based on the data in the columns.

CardinalidadeCardinality

Muitos para um (*: 1) : A maioria dos comum, o tipo de padrão, o que significa que a coluna em uma tabela pode ter mais de uma instância de um valor e a outra tabela relacionada, geralmente conhecida como a tabela de pesquisa, tem apenas uma instância de um valor.Many to One (*:1) - The most common, default type, which means the column in one table can have more than one instance of a value, and the other related table, often know as the Lookup table, has only one instance of a value.

Um para um (1:1) - a coluna em uma tabela tem apenas uma instância de um determinado valor e a outra tabela relacionada tem apenas uma instância de um determinado valor.One to One (1:1) - The column in one table has only one instance of a particular value, and the other related table has only one instance of a particular value.

Relações muitos-para-muitos: Com modelos de composição, você pode estabelecer relações de muitos-para-muitos entre tabelas, que remove os requisitos para valores exclusivos nas tabelas.Many-to-many relationships: With composite models, you can establish many-to-many relationships between tables, which removes requirements for unique values in tables. Ela também remove as soluções alternativas anteriores, como introduzir novas tabelas somente para estabelecer relações.It also removes previous workarounds, such as introducing new tables only to establish relationships. Para obter informações detalhadas, confira Relações com uma cardinalidade muitos para muitos.For more detailed information, see Relationships with a many-many cardinality.

Consulte a seção Noções básicas sobre opções adicionais, mais adiante neste artigo, para obter mais detalhes sobre quando alterar a cardinalidade.See the Understanding additional options section later in this article for more details about when to change cardinality.

Direção do filtro cruzadoCross filter direction

Ambos - as mais comuns, direção padrão, o que significa que para filtragem fins, ambas as tabelas são tratadas como se fossem uma única tabela.Both - The most common, default direction, which means for filtering purposes, both tables are treated as if they're a single table. Ambos funciona bem com uma única tabela que tem um número de tabelas de pesquisa que coloque-o.Both works well with a single table that has a number of lookup tables that surround it. Um exemplo é uma tabela de dados reais de Vendas com uma tabela de pesquisa por departamento.An example is a Sales actuals table with a lookup table for department. Isso é frequentemente chamado de Configuração de esquema em estrela (uma tabela central com várias Tabelas de pesquisa). No entanto, se você tiver duas ou mais tabelas que também têm tabelas de pesquisa (com algumas em comum), não seria vantajoso para você usar a configuração “Ambas”.This is often called a Star schema configuration (a central table with several lookup tables.) However, if you have two or more tables that also have lookup tables (with some in common) then you wouldn't want to use the Both setting. Para continuar o exemplo anterior, nesse caso, você também tem uma tabela de vendas de orçamento que registra o orçamento de destino para cada departamento.To continue the previous example, in this case, you also have a budget sales table that records target budget for each department. E a tabela de departamento é conectada tanto à tabela de vendas quanto à de alocação.And, the department table is connected to both the sales and the budget table. Evite a configuração “Ambas” para esse tipo de configuração.Avoid the Both setting for this kind of configuration.

Único -as opções de filtragem em tabelas conectadas funcionam na tabela em que os valores estão sendo agregados.Single - Filtering choices in connected tables work on the table where values are being aggregated. Se você importar uma tabela do Power Pivot no Excel 2013 ou um modelo de dados anterior, todas as relações terão uma única direção.If you import a Power Pivot in Excel 2013 or earlier data model, all relationships will have a single direction.

Consulte a seção de opções adicionais Noções básicas, mais adiante neste artigo, para obter mais detalhes sobre quando alterar a direção do filtro cruzado.See the Understanding additional options section later in this article for more details about when to change cross filter direction.

Tornar esta relação ativaMake this relationship active

Quando marcada, isso significa que a relação serve como a relação ativa, padrão.When checked, this means the relationship serves as the active, default relationship. Em casos nos quais há mais de uma relação entre duas tabelas, a relação ativa fornece uma maneira para o Power BI Desktop criar automaticamente visualizações que incluem ambas as tabelas.In cases where there is more than one relationship between two tables, the active relationship provides a way for Power BI Desktop to automatically create visualizations that include both tables.

Veja a seção Noções básicas sobre opções adicionais mais adiante neste artigo para obter mais detalhes sobre quando tornar ativa uma relação específica.See the Understanding additional options section later in this article for more details about when to make a particular relationship active.

Noções básicas sobre relaçõesUnderstanding relationships

Depois que você tiver conectado duas tabelas unindo-as com uma relação, você pode trabalhar com os dados em ambas as tabelas como se fossem uma única, não precisando mais se preocupar com detalhes da relação nem mesclar essas tabelas em uma única tabela antes de importá-las.Once you have connected two tables together with a relationship, you can work with the data in both tables as if they were a single table, freeing you from having to worry about relationship details, or flattening those tables into a single table before importing them. Em muitas situações, o Power BI Desktop pode criar relações automaticamente para você, ou seja, talvez nem seja necessário criar essas relações por conta própria.In many situations, Power BI Desktop can automatically create relationships for you, so creating those relationships yourself might not even be needed. No entanto, se o Power BI Desktop não puder determinar com alto grau de certeza que deve existir uma relação entre duas tabelas, ele não cria automaticamente a relação.However, if Power BI Desktop can’t determine with a high-degree of certainty that a relationship between two tables should exist, it does not automatically create the relationship. Nesse caso, você deve criar a relação.In that case, you must create the relationship.

Vamos percorra um tutorial rápido, melhor mostrar como funcionam as relações no Power BI Desktop.Let’s go through a quick tutorial, to better show you how relationships work in Power BI Desktop.

Dica

Você pode concluir esta lição por conta própria.You can complete this lesson yourself. Copie a tabela ProjectHours abaixo em uma planilha do Excel, selecione todas as células, clique em INSERIR > Tabela.Copy the ProjectHours table below into an Excel worksheet, select all of the cells, click INSERT > Table. Na caixa de diálogo Criar Tabela , clique em OK.In the Create Table dialog, just click OK. Em seguida, em Nome da Tabela, digite ProjectHours.Then in Table Name, type ProjectHours. Faça o mesmo para a tabela CompanyProject.Do the same for the CompanyProject table. Em seguida, você pode importar os dados por meio de Obter Dados no Power BI Desktop.You can then import the data by using Get Data in Power BI Desktop. Selecione sua pasta de trabalho e tabelas como uma fonte de dados.Select your workbook and tables as a data source.

Esta primeira tabela, ProjectHours, é um registro de tíquetes de trabalho que gravam o número de horas que uma pessoa já trabalhou em um projeto específico.This first table, ProjectHours, is a record of work tickets that record the number of hours a person has worked on a particular project.

ProjectHoursProjectHours

TicketTicket SubmittedBySubmittedBy HoursHours ProjectProject DateSubmitDateSubmit
10011001 Alan BrewerBrewer, Alan 2222 AzulBlue 1/1/20131/1/2013
10021002 Alan BrewerBrewer, Alan 2626 VermelhoRed 2/1/20132/1/2013
10031003 Shu ItoIto, Shu 3434 AmareloYellow 124201212/4/2012
10041004 Alan BrewerBrewer, Alan 1313 LaranjaOrange 1/2/20121/2/2012
10051005 Eli BowenBowen, Eli 2929 RoxoPurple 101201310/1/2013
10061006 Nuno BentoBento, Nuno 3535 VerdeGreen 2/1/20132/1/2013
10071007 David HamiltonHamilton, David 1010 AmareloYellow 101201310/1/2013
10081008 Mu HanHan, Mu 2828 LaranjaOrange 1/2/20121/2/2012
10091009 Shu ItoIto, Shu 2222 RoxoPurple 2/1/20132/1/2013
10101010 Eli BowenBowen, Eli 2828 VerdeGreen 101201310/1/2013
10111011 Eli BowenBowen, Eli 99 AzulBlue 10/15/201310/15/2013

Essa segunda tabela, CompanyProject, é uma lista de projetos aos quais é atribuída uma prioridade, A, B ou C.This second table, CompanyProject, is a list of projects with an assigned priority, A, B, or C.

CompanyProjectCompanyProject

ProjNameProjName PriorityPriority
AzulBlue AA
VermelhoRed BB
VerdeGreen CC
AmareloYellow CC
RoxoPurple BB
LaranjaOrange CC

Observe que cada tabela tem uma coluna de projeto.Notice that each table has a project column. Cada uma é nomeada de modo ligeiramente diferente, mas os valores parecem ser os mesmos.Each is named slightly different, but the values look like they’re the same. Isso é importante, e nós retornaremos esse assunto em breve.That’s important, and we’ll get back to it in soon.

Agora que temos nossas duas tabelas importadas para um modelo, vamos criar um relatório.Now that we have our two tables imported into a model, let’s create a report. A primeira coisa que queremos ter é o número de horas enviadas por prioridade do projeto, então vamos selecionar Priority e Hours em Campos.The first thing we want to get is the number of hours submitted by project priority, so we select Priority and Hours from Fields.

Se observarmos nossa tabela na tela Relatório, você verá que o número de horas é 256,00 para cada projeto e é também o total.If we look at our table in the Report canvas, you’ll see the number of hours is 256.00 for each project, and it’s also the total. Obviamente isso não é correto.Clearly this isn’t correct. Por que?Why? É porque não podemos calcular uma soma total dos valores de uma tabela (Hours na tabela Project), dividida por valores em outra tabela (Priority na tabela CompanyProject) sem que exista uma relação entre essas duas tabelas.It’s because we can’t calculate a sum total of values from one table (Hours in the Project table), sliced by values in another table (Priority in the CompanyProject table) without a relationship between these two tables.

Portanto, vamos criar uma relação entre essas duas tabelas.So, let’s create a relationship between these two tables.

Lembre-se das colunas que vimos em ambas as tabelas com um nome de projeto, mas com valores parecidos?Remember those columns we saw in both tables with a project name, but with values that look alike? Vamos usar essas duas colunas para criar uma relação entre nossas tabelas.We’re going to use these two columns to create a relationship between our tables.

Por que essas colunas?Why these columns? Bem, se observarmos a coluna Projeto na tabela ProjectHours, vemos valores como Azul, Vermelho, Amarelo, Laranja e assim por diante.Well, if we look at the Project column in the ProjectHours table, we see values like Blue, Red, Yellow, Orange, and so on. Na verdade, podemos ver várias linhas que têm o mesmo valor.In fact, we see several rows that have the same value. Assim, temos muitos valores de cor para Project.In-effect, we have many color values for Project.

Se observarmos a coluna ProjName na tabela CompanyProject, vemos que há somente um de cada um dos valores de cor para Project.If we look at the ProjName column in the CompanyProject table, we see there’s only one of each of the color values for project. Cada valor de cor nesta tabela é exclusivo e isso é importante, porque podemos criar uma relação entre essas duas tabelas.Each color value in this table is unique, and that’s important, because we can create a relationship between these two tables. Nesse caso, uma relação de tipo muitos para um.In this case, a many-to-one relationship. Em uma relação muitos para um, pelo menos uma coluna em uma das tabelas deve conter valores exclusivos.In a many-to-one relationship, at least one column in one of the tables must contain unique values. Há algumas opções adicionais para determinadas relações, e vamos analisá-las posteriormente, mas por enquanto, vamos criar uma relação entre as colunas Project em cada uma de nossas duas tabelas.There are some additional options for some relationships, and we’ll look at those later, but for now, let’s create a relationship between the Project columns in each of our two tables.

Para criar a nova relaçãoTo create the new relationship

  1. Clique em Gerenciar Relacionamentos.Click Manage Relationships.
  2. Na gerenciar relações, clique em New para abrir o Criar relacionamento caixa de diálogo, no qual podemos selecionar tabelas, colunas e quaisquer configurações adicionais desejadas para nossa relação.In Manage Relationships, click New to open the Create Relationship dialog, where we can select the tables, columns, and any additional settings we want for our relationship.
  3. Na primeira tabela, selecione ProjectHours; em seguida, selecione a coluna Project .In the first table, select ProjectHours, then select the Project column. Este é o lado muitos de nossa relação.This is the many side of our relationship.
  4. Na segunda tabela, selecione CompanyProject, depois selecione a coluna Project .In the second table, select CompanyProject, then select the ProjName column. Este é o lado um de nossa relação.This is the one side of our relationship.
  5. Vá em frente e clique em OK em ambas as caixas de diálogo Criar Relação e Gerenciar Relações .Go ahead and click OK in both the Create Relationship dialog and the Manage Relationships dialog.

Com o intuito de divulgação completa, você acabou de criar essa relação da maneira mais difícil.In the interest of full disclosure, you just created this relationship the hard way. Você poderia ter simplesmente clicado no botão detecção automática na caixa de diálogo Gerenciar relações.You could have just clicked on the Autodetect button in the Manage Relationships dialog. Na verdade, a Detecção Automática já teria feito isso ao carregar os dados se ambas as colunas tivessem o mesmo nome.In fact, Autodetect would have already done it for you when you loaded the data if both columns had the same name. Mas qual é o desafio nisso?But, what’s the challenge in that?

Agora, vamos examinar novamente a tabela em nossa tela Relatório.Now, let’s look at the table in our Report canvas again.

Agora a aparência está muito melhor, não é?Now that looks a whole lot better, doesn’t it?

Quando somamos horas por prioridade, Power BI Desktop procura por todas as instâncias de valores de cor exclusivos na tabela de pesquisa CompanyProject, então procura cada instância de cada um desses valores na tabela CompanyProject e calcular uma soma total para cada valor exclusivo .When we sum up hours by Priority, Power BI Desktop looks for every instance of the unique color values in the CompanyProject lookup table, and then look for every instance of each of those values in the CompanyProject table, and calculate a sum total for each unique value.

Foi fácil; na verdade, com a detecção automática, você pode até mesmo precisa fazer tudo isso.That was easy, in fact, with Autodetect, you might not even have to do this much.

Noções básicas sobre opções adicionaisUnderstanding additional options

Quando uma relação é criada, seja com detecção automática ou que manualmente, criar o Power BI Desktop configura automaticamente opções adicionais com base nos dados de suas tabelas.When a relationship is created, either with Autodetect or one you create manually, Power BI Desktop automatically configures additional options based on the data in your tables. Você pode configurar essas propriedades de relação adicionais localizadas na parte inferior da caixa de diálogo Criar/Editar relação.You can configure these additional relationship properties located in the lowest portion of the Create/Edit relationship dialog.

Como dissemos, elas geralmente são definidas automaticamente, e você não precisará lidar com elas; no entanto, há várias situações em que você talvez queira configurar essas opções por conta própria.As we said, these are usually set automatically and you won’t need to mess with them; however, there are several situations where you might want to configure these options yourself.

Atualizações automática de relaçõesAutomatic relationship updates

Você pode gerenciar como o Power BI trata e ajusta automaticamente as relações em seus relatórios e modelos.You can manage how Power BI treats and automatically adjusts relationships in your reports and models. Para especificar como o Power BI trata as opções de relações, selecione arquivo > Opções e configurações > Opções do Power BI Desktop, selecione carregamento de dados no painel esquerdo.To specify how Power BI handles relationships options, select File > Options and settings > Options from Power BI Desktop, then select Data Load in the left pane. Você verá as opções para relações.You then see options for Relationships.

Opções de relações

Há três opções que podem ser selecionadas e habilitadas.There are three options that can be selected and enabled.

A primeira opção é importar relações de fontes de dados, e é selecionada por padrão.The first option is Import relationships from data sources, and it is selected by default. Quando selecionado, Power BI verifica se há relações definidas na fonte de dados, como a chave estrangeira / principal da chave relações em seu data warehouse.When selected, Power BI checks for relationships defined in your data source, such as foreign key / primary key relationships in your data warehouse. Se existirem tais relações, eles são espelhados no modelo de dados do Power BI ao carregar dados inicialmente.If such relationships exist, they are mirrored into the Power BI data model when you initially load data. Essa opção permite que você rapidamente começar a trabalhar com seu modelo, em vez de exigir que você localizar ou definir esses relacionamentos por conta própria.This option enables you to quickly begin working with your model, rather than requiring you find or define those relationships yourself.

A segunda opção é atualizar ou excluir relações ao atualizar dados, e ele é desativado por padrão.The second option is Update or delete relationships when refreshing data, and it is off by default. Se selecionada (habilitada, marcando a caixa ao lado da opção), Power BI verifica se há alterações em relações da fonte de dados ao seu conjunto de dados é atualizado.If selected (enabled by checking the box beside the option), Power BI checks for changes in data source relationships when your dataset is refreshed. Se essas relações alterado ou são removidas, Power BI reflete essas alterações no seu próprio modelo de dados, atualizando ou excluindo-os para corresponder.If those relationships changed or are removed, Power BI mirrors those changes in its own data model, updating or deleting them to match.

Aviso

Se você estiver usando a segurança de nível de linha depende das relações definidas, não é recomendável selecionar a segunda opção, atualizar ou excluir relações ao atualizar dados.If you are using row-level security that relies on the defined relationships, we do not recommend selecting the second option, Update or delete relationships when refreshing data. Se uma relação for removida que suas configurações de RLS contam, seu modelo pode se tornar menos seguro.If a relationship is removed that your RLS settings rely on, your model may become less secure.

A terceira opção é detectar automaticamente novos relacionamentos depois que os dados são carregados, que é descrito na detectar automaticamente durante o carregamento seção, encontrada no início deste artigo.The third option is Autodetect new relationships after data is loaded, which is described in the Autodetect during load section, found earlier in this article.

Atualizações futuras dos dados exigem uma cardinalidade diferenteFuture updates to the data require a different cardinality

Normalmente, o Power BI Desktop pode determinar automaticamente a melhor cardinalidade para a relação.Normally, Power BI Desktop can automatically determine the best cardinality for the relationship. Se precisar substituir a configuração automática por saber que os dados serão alterados no futuro, você poderá selecioná-la no controle Cardinalidade.If you do need to override the automatic setting, because you know the data will change in the future, you can select it in the Cardinality control. Vejamos um exemplo em que precisamos selecionar uma cardinalidade diferente.Let’s look at an example where we need to select a different cardinality.

A tabela CompanyProjectPriority abaixo é uma lista de todos os projetos da empresa, incluindo a prioridade de cada um.The CompanyProjectPriority table below is a list of all company projects and their priority. A tabela ProjectBudget é o conjunto de projetos para os quais o orçamento foi aprovado.The ProjectBudget table is the set of projects for which budget has been approved.

ProjectBudgetProjectBudget

Approved ProjectsApproved Projects BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue 40.00040,000 121201212/1/2012
VermelhoRed 100.000100,000 121201212/1/2012
VerdeGreen 50.00050,000 121201212/1/2012

CompanyProjectPriorityCompanyProjectPriority

ProjectProject PriorityPriority
AzulBlue AA
VermelhoRed BB
VerdeGreen CC
AmareloYellow CC
RoxoPurple BB
LaranjaOrange CC

Se criarmos uma relação entre a coluna Project na tabela CompanyProjectPriority e a coluna ApprovedProjects na tabela ProjectBudget, desse modo:If we create a relationship between the Project column in the CompanyProjectPriority table and ApprovedProjects column in the ProjectBudget table, like this:

A cardinalidade é definida automaticamente como Um Para Um (1:1) e a direção da filtragem cruzada como “Ambas” (conforme mostrado).Cardinality is automatically set to One-to-One (1:1), and cross filtering to be Both (as shown). Isso ocorre porque, para o Designer, a melhor combinação das duas tabelas agora tem essa aparência:This is because to Power BI Desktop, the best combination of the two tables really looks like this:

ProjectProject PriorityPriority BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue AA 40.00040,000 121201212/1/2012
VermelhoRed BB 100.000100,000 121201212/1/2012
VerdeGreen CC 50.00050,000 121201212/1/2012
AmareloYellow CC

RoxoPurple BB

LaranjaOrange CC

Há uma relação um para um entre nossas duas tabelas porque não há repetição de valores na coluna Project da tabela combinada.There is a one-to-one relationship between our two tables because there are no repeating values in the combined table’s Project column. A coluna Project é exclusiva, porque cada valor ocorre apenas uma vez; portanto, as linhas das duas tabelas podem ser combinadas diretamente sem nenhuma duplicação.The Project column is unique, because each value occurs only once, so, the rows from the two tables can be combined directly without any duplication.

Mas digamos que você saiba que os dados mudarão na próxima vez que você atualizá-los.But, let’s say you know the data will change the next time you refresh it. Uma versão atualizada da tabela ProjectBudget agora tem linhas adicionais para Azul e Vermelho:A refreshed version of the ProjectBudget table now has additional rows for Blue and Red:

ProjectBudgetProjectBudget

Approved ProjectsApproved Projects BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue 40.00040,000 121201212/1/2012
VermelhoRed 100.000100,000 121201212/1/2012
VerdeGreen 50.00050,000 121201212/1/2012
AzulBlue 80,00080,000 6/1/20136/1/2013
VermelhoRed 90,00090,000 6/1/20136/1/2013

Isso significa que a melhor combinação das duas tabelas agora tem essa aparência:This means the best combination of the two tables now really looks like this:

ProjectProject PriorityPriority BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue AA 40.00040,000 121201212/1/2012
VermelhoRed BB 100.000100,000 121201212/1/2012
VerdeGreen CC 50.00050,000 121201212/1/2012
AmareloYellow CC

RoxoPurple BB

LaranjaOrange CC

AzulBlue AA 8000080000 6/1/20136/1/2013
VermelhoRed BB 9000090000 6/1/20136/1/2013

Nessa nova tabela combinada, há repetição de valores na coluna Project.In this new combined table, the Project column has repeating values. As duas tabelas originais não terão uma relação de tipo um para um depois que a tabela for atualizada.The two original tables won’t have a one-to-one relationship once the table is refreshed. Nesse caso, por sabermos que as atualizações futuras farão com que a coluna de projeto tenha duplicatas, queremos definir a Cardinalidade como Muitos Para Um (*:1), com Muitos no lado de ProjectBudget e Um no lado de CompanyProjectPriority.In this case, because we know those future updates will cause the Project column to have duplicates, we want to set the Cardinality to be Many-to-One (*:1), with the Many on the ProjectBudget side and the One on the CompanyProjectPriority side.

Ajuste da direção de filtro cruzado para um conjunto complexo de tabelas e relaçõesAdjusting cross filter direction for a complex set of tables and relationships

Para a maioria das relações, a direção da filtragem cruzada é definida como ‘Ambas’.For most relationships, the cross filter direction is set to ‘Both’. No entanto, há algumas circunstâncias mais incomuns em que você talvez precise definir isso de modo diferente do padrão, como se você estivesse importando um modelo de uma versão anterior do PowerPivot, na qual cada relação é configurada para uma única direção.There are, however, some more uncommon circumstances where you might need to set this different from the default, like if you’re importing a model from an older version of Power Pivot, where every relationship is set to a single direction.

A configuração “Ambas” habilita o Power BI Desktop a tratar todos os aspectos das tabelas conectadas como se elas fossem uma única tabela.The Both setting enables Power BI Desktop to treat all aspects of connected tables as if they are a single table. Há algumas situações, porém, em que o Power BI Desktop não pode definir a direção de filtro cruzado da relação como ‘Ambas’ e, ao mesmo tempo, manter um conjunto inequívoco de padrões disponíveis para fins de relatório.There are some situations, however, where Power BI Desktop cannot set a relationship’s cross filter direction to ‘Both’ and also keep an unambiguous set of defaults available for reporting purposes. Se a direção de filtro cruzado de uma relação não é definida como “Ambas”, isso geralmente ocorre porque tal configuração geraria ambiguidade.If a relationship cross filter direction isn't set to Both, then it’s usually because it would create ambiguity. Se a configuração padrão de filtro cruzado não está funcionando para você, você pode defini-la em direção a uma tabela específica ou “Ambas”.If the default cross filter setting isn’t working for you, try setting it to a particular table or Both.

A filtragem cruzada em uma única direção funciona em muitas situações.Single direction cross filtering works for many situations. Na verdade, se você importar um modelo do PowerPivot no Excel 2013 ou anterior, todas as relações estarão definidas para uma única direção.In fact, if you’ve imported a model from Power Pivot in Excel 2013 or earlier, all of the relationships will be set to single direction. O uso de uma única direção significa que as opções de filtragem, em tabelas conectadas, funcionam na tabela na qual está ocorrendo trabalho de agregação de valores.Single direction means that filtering choices in connected tables work on the table where aggregation work is happening. Às vezes compreender a filtragem cruzada pode ser um pouco difícil, portanto, vamos examinar um exemplo.Sometimes, understanding cross filtering can be a little difficult, so let’s look at an example.

Com filtragem cruzada de direção única, se você criar um relatório que resume as horas de projeto, você poderá, em seguida, escolher resumir (ou filtrar) por CompanyProject, Priority ou CompanyEmployee, City.With single direction cross filtering, if you create a report that summarizes the project hours, you can then choose to summarize (or filter) by CompanyProject, Priority or CompanyEmployee, City. Se, no entanto, você quiser contar o número de funcionários por projeto (uma pergunta menos comum), isso não funcionará.If however, you want to count the number of employees per projects (a less common question), it won’t work. Você obterá uma coluna de valores todos iguais.You’ll get a column of values that are all the same. No exemplo a seguir, a direção da filtragem cruzada de ambas as relações está definida como uma única direção - em direção à tabela ProjectHours:In the example below, both relationships cross filtering direction is set to a single direction – towards the ProjectHours table:

A especificação de filtro fluirá de CompanyProject para CompanyEmployee (conforme mostrado na imagem abaixo), porém, o fluxo não chegará até CompanyEmployee.Filter specification will flow from CompanyProject to CompanyEmployee (as shown in the image below) but, it won’t flow up to CompanyEmployee. No entanto, se você definir a direção de filtragem cruzada como “Ambas”, ela funcionará.However, if you set the cross filtering direction to Both it will work. A configuração “Ambas” permite que a especificação de filtro flua até Employee.The Both setting allows the filter specification to flow up to Employee.

Com a direção da filtragem cruzada definida como “Ambas”, nosso relatório agora parece correto:With the cross filtering direction set to Both, our report now appears correct:

A filtragem cruzada em ambos os trajetos funciona bem para um padrão de relações de tabela que se parecem com o padrão acima.Cross filtering both directions works well for a pattern of table relationships that look like the pattern above. Isso é mais comumente chamado de um esquema em estrela, como esse:This is most commonly called a star schema, like this:

A direção de filtragem cruzada não funciona bem com um padrão mais geral encontrado com frequência em bancos de dados, como nesse diagrama:Cross filtering direction does not work well with a more general pattern often found in databases, like in this diagram:

Se você tiver um padrão de tabela como este, com loops, então a filtragem cruzada pode criar um conjunto ambíguo de relações.If you have a table pattern like this, with loops, then cross filtering can create an ambiguous set of relationships. Por exemplo, se você realiza a soma de um campo da Tabela X e, em seguida, opta por filtrar por um campo na Tabela Y, não fica claro o percurso que o filtro deve fazer: pela tabela superior ou pela inferior.For instance, if you sum up a field from TableX and then choose to filter by a field on TableY, then it’s not clear how the filter should travel, through the top table or the bottom table. Um exemplo comum para esse tipo de padrão é que a Tabela X seja uma tabela Sales com os dados efetivos e que Tabela Y seja de dados de orçamento.A common example of this kind of pattern is with TableX as a Sales table with actuals data and for TableY to be budget data. Em seguida, as tabelas no meio são tabelas de pesquisa utilizadas por ambas as tabelas, como Divisão ou Região.Then, the tables in the middle are lookup tables that both tables use, such as Division or Region.

Assim como ocorre com relações ativas/inativas, o Power BI Desktop não permitirá que uma relação seja definida como “Ambas” se isso gerar ambiguidade em relatórios.Just like with active/inactive relationships, Power BI Desktop won’t allow a relationship to be set as Both if it will create ambiguity in reports. Há várias maneiras diferentes de tratar disso. Estas são as duas mais comuns:There are several different ways you can deal with this and here are the two most common:

  • Excluir ou marcar relações como inativas para reduzir a ambiguidade.Delete or mark relationships as inactive to reduce ambiguity. Em seguida, talvez você possa definir a filtragem cruzada de uma relação como “Ambas”.Then you might be able to set a relationship cross filtering as Both.
  • Inclua uma tabela duas vezes (com um nome diferente na segunda vez) para eliminar os loops.Bring in a table twice (with a different name the second time) to eliminate loops. Isso torna o padrão de relações similar a um esquema em estrela.This makes the pattern of relationships like a star schema. Com um esquema em estrela, todas as relações podem ser definidas como Ambas.With a star schema, all of the relationships can be set to Both.

Relação ativa erradaWrong active relationship

Quando o Power BI Desktop cria relações automaticamente, ele às vezes encontra mais de uma relação entre duas tabelas.When Power BI Desktop automatically creates relationships, it sometimes encounters more than one relationship between two tables. Quando isso acontece, apenas uma das relações é definida como ativa.When this happens only one of the relationships is set to be active. A relação ativa serve como a relação padrão para que, quando você escolher campos de duas tabelas diferentes, o Power BI Desktop possa criar automaticamente uma visualização para você.The active relationship serves as the default relationship so that when you choose fields from two different tables, Power BI Desktop can automatically create a visualization for you. No entanto, em alguns casos, a relação selecionada automaticamente pode estar errada.However, in some cases the automatically selected relationship can be wrong. Você pode usar a caixa de diálogo Gerenciar Relações para definir uma relação como ativa ou inativa, ou então definir a relação ativa na caixa de diálogo Editar relação.You can use the Manage Relationships dialog to set a relationship as active or inactive, or you can set the active relationship in the Edit relationship dialog.

Para garantir que exista uma relação padrão, o Power BI Desktop permite apenas uma relação ativa entre duas tabelas em um determinado momento.To ensure there’s a default relationship, Power BI Desktop only allows a single active relationship between two tables at a given time. Portanto, você deve primeiro definir a relação atual como inativa e, em seguida, definir como ativa a relação desejada.So, you must first set the current relationship as inactive and then set the relationship you want to be active.

Vejamos um exemplo.Let’s look at an example. Esta primeira tabela é ProjectTickets, a tabela a seguir é EmployeeRole.This first table is ProjectTickets, and the next table is EmployeeRole.

ProjectTicketsProjectTickets

TicketTicket OpenedByOpenedBy SubmittedBySubmittedBy HoursHours ProjectProject DateSubmitDateSubmit
10011001 Tom PerhamPerham, Tom Alan BrewerBrewer, Alan 2222 AzulBlue 1/1/20131/1/2013
10021002 Daniel RomanoRoman, Daniel Alan BrewerBrewer, Alan 2626 VermelhoRed 2/1/20132/1/2013
10031003 Daniel RothRoth, Daniel Shu ItoIto, Shu 3434 AmareloYellow 124201212/4/2012
10041004 Tom PerhamPerham, Tom Alan BrewerBrewer, Alan 1313 LaranjaOrange 1/2/20121/2/2012
10051005 Daniel RomanoRoman, Daniel Eli BowenBowen, Eli 2929 RoxoPurple 101201310/1/2013
10061006 Daniel RothRoth, Daniel Nuno BentoBento, Nuno 3535 VerdeGreen 2/1/20132/1/2013
10071007 Daniel RothRoth, Daniel David HamiltonHamilton, David 1010 AmareloYellow 101201310/1/2013
10081008 Tom PerhamPerham, Tom Mu HanHan, Mu 2828 LaranjaOrange 1/2/20121/2/2012
10091009 Daniel RomanoRoman, Daniel Shu ItoIto, Shu 2222 RoxoPurple 2/1/20132/1/2013
10101010 Daniel RothRoth, Daniel Eli BowenBowen, Eli 2828 VerdeGreen 101201310/1/2013
10111011 Tom PerhamPerham, Tom Eli BowenBowen, Eli 99 AzulBlue 10/15/201310/15/2013

EmployeeRoleEmployeeRole

EmployeeEmployee FunçãoRole
Nuno BentoBento, Nuno Gerente de projetoProject Manager
Eli BowenBowen, Eli Líder de projetoProject Lead
Alan BrewerBrewer, Alan Gerente de projetoProject Manager
David HamiltonHamilton, David Líder de projetoProject Lead
Mu HanHan, Mu Líder de projetoProject Lead
Shu ItoIto, Shu Líder de projetoProject Lead
Tom PerhamPerham, Tom Patrocinador de projetoProject Sponsor
Daniel RomanoRoman, Daniel Patrocinador de projetoProject Sponsor
Daniel RothRoth, Daniel Patrocinador de projetoProject Sponsor

Na verdade, existem duas relações aqui.There are actually two relationships here. Uma é entre SubmittedBy na tabela ProjectTickets e Employee na tabela EmployeeRole, enquanto a outra é entre OpenedBy na tabela ProjectTickets e Employee na tabela EmployeeRole.One is between SubmittedBy in the ProjectTickets table and Employee in the EmployeeRole table, and the other is between OpenedBy in the ProjectTickets table and Employee in the EmployeeRole table.

Se adicionarmos ambas as relações no modelo (OpenedBy primeiro), a caixa de diálogo Gerenciar Relações mostrará em seguida que OpenedBy está ativa:If we add both relationships to the model (OpenedBy first), then the Manage Relationships dialog will show that OpenedBy is active:

Agora, se criarmos um relatório que usa campos Role e Employee de EmployeeRole e o campo Hours de ProjectTickets em uma visualização de tabela na tela do relatório, veremos apenas patrocinadores de projeto porque eles são os únicos que abrir um tíquete de projeto.Now, if we create a report that uses Role and Employee fields from EmployeeRole, and the Hours field from ProjectTickets in a table visualization in the Report canvas, we will see only project sponsors because they’re the only ones that opened a project ticket.

Podemos alterar a relação ativa e obter SubmittedBy em vez de OpenedBy.We can change the active relationship and get SubmittedBy instead of OpenedBy. Em Gerenciar Relações, desmarcamos a relação entre ProjectTickets(OpenedBy) e EmployeeRole(Employee) e, em seguida, marcamos a relação entre Project Tickets(SubmittedBy) e EmployeeRole(Employee).In Manage Relationships, we uncheck the ProjectTickets(OpenedBy) to EmployeeRole(Employee) relationship, and then we check the Project Tickets(SubmittedBy) to EmployeeRole(Employee) relationship.

Ver todas as relações na Exibição de RelaçãoSee all of your relationships in Relationship View

Às vezes, seu modelo tem várias tabelas e relações complexas entre elas.Sometimes your model has multiple tables and complex relationships between them. A Exibição de Relação no Power BI Desktop mostra todas as relações em seu modelo, sua direção e cardinalidade em um diagrama fácil de entender e personalizável.Relationship View in Power BI Desktop shows all of the relationships in your model, their direction, and cardinality in an easy to understand and customizable diagram. Para saber mais, consulte Exibição de Relações no Power BI Desktop.To learn more, see Relationship View in Power BI Desktop.