Create and manage relationships in Power BI Desktop

When you import multiple tables, chances are y'all'll do some analysis using data from all those tables. Relationships between those tables are necessary to accurately calculate results and display the correct information in your reports. Ability BI Desktop makes creating those relationships piece of cake. In fact, in most cases yous won't take to do anything, the autodetect feature does it for yous. Yet, sometimes you might have to create relationships yourself, or need to make changes to a relationship. Either fashion, information technology's of import to understand relationships in Power BI Desktop and how to create and edit them.

Autodetect during load

If you query 2 or more than tables at the same time, when the information is loaded, Power BI Desktop attempts to find and create relationships for you. The human relationship options Cardinality, Cross filter direction, and Make this relationship active are automatically prepare. Power BI Desktop looks at column names in the tables you're querying to decide if in that location are any potential relationships. If there are, those relationships are created automatically. If Power BI Desktop can't determine with a high level of confidence there's a lucifer, it doesn't create the relationship. However, you can all the same use the Manage relationships dialog box to manually create or edit relationships.

Create a human relationship with autodetect

On the Modeling tab, select Manage relationships > Autodetect.

Create a relationship with autodetect

Create a human relationship manually

  1. On the Modeling tab, select Manage relationships > New.

  2. In the Create relationship dialog box, in the first tabular array driblet-down list, select a tabular array. Select the cavalcade you want to use in the relationship.

  3. In the second table drop-downwardly list, select the other table you want in the human relationship. Select the other column you desire to use, and so select OK.

    Create a manual relationship

Past default, Power BI Desktop automatically configures the options Cardinality (direction), Cross filter management, and Make this human relationship active for your new human relationship. Nonetheless, you can change these settings if necessary. For more information, see Understanding additional options.

If none of the tables selected for the relationship has unique values, you'll see the following error: One of the columns must have unique values. At to the lowest degree 1 table in a relationship must have a distinct, unique list of central values, which is a common requirement for all relational database technologies.

If you encounter that fault, there are a couple means to gear up the effect:

  • Use Remove Duplicates to create a cavalcade with unique values. The drawback to this approach is that y'all might lose information when duplicate rows are removed; often a central (row) is duplicated for adept reason.
  • Add together an intermediary table made of the list of distinct key values to the model, which will and then be linked to both original columns in the relationship.

For more data, see this weblog mail service.

Edit a relationship

  1. On the Modeling tab, select Manage relationships.

  2. In the Manage relationships dialog box, select the human relationship, then select Edit.

Configure boosted options

When you create or edit a relationship, you can configure additional options. By default, Power BI Desktop automatically configures additional options based on its best guess, which tin be different for each relationship based on the data in the columns.

Cardinality

The Cardinality pick tin can have one of the following settings:

Many to i (*:one): A many-to-one human relationship is the virtually common, default type of relationship. Information technology means the column in a given tabular array can have more than one case of a value, and the other related table, oft know every bit the lookup table, has only one instance of a value.

1 to one (1:1): In a one-to-ane relationship, the column in one table has just one instance of a particular value, and the other related table has only i instance of a particular value.

One to many (1:*): In a one-to-many relationship, the column in one table has only one instance of a item value, and the other related table tin can have more than than one instance of a value.

Many to many (*:*): With composite models, y'all can plant a many-to-many relationship between tables, which removes requirements for unique values in tables. It likewise removes previous workarounds, such as introducing new tables only to establish relationships. For more data, see Relationships with a many-many cardinality.

For more information near when to change cardinality, see Understanding additional options.

Cross filter direction

The Cross filter direction option tin can have one the post-obit settings:

Both: For filtering purposes, both tables are treated equally if they're a single table. The Both setting works well with a single table that has many lookup tables that surround it. An example is a sales actuals table with a lookup table for its section. This configuration is ofttimes called a star schema configuration (a cardinal table with several lookup tables). However, if yous have two or more tables that also have lookup tables (with some in mutual) then y'all wouldn't want to use the Both setting. To continue the previous example, in this example, y'all likewise have a upkeep sales table that records target upkeep for each section. And, the department table is connected to both the sales and the budget table. Avoid the Both setting for this kind of configuration.

Single: The most common, default direction, which means filtering choices in connected tables work on the table where values are being aggregated. If you import a Power Pivot in Excel 2013 or earlier data model, all relationships volition have a single management.

For more data well-nigh when to modify cross filter direction, run into Agreement additional options.

Brand this human relationship active

When checked, the human relationship serves as the active, default relationship. In cases where there is more than i human relationship between 2 tables, the agile relationship provides a way for Power BI Desktop to automatically create visualizations that include both tables.

For more information about when to make a particular relationship active, see Understanding additional options.

Agreement relationships

Once you've continued two tables together with a human relationship, you can work with the data in both tables as if they were a single table, freeing you from having to worry about human relationship details, or flattening those tables into a unmarried tabular array earlier importing them. In many situations, Ability BI Desktop tin automatically create relationships for yous. However, if Power BI Desktop tin can't make up one's mind with a high-degree of certainty that a relationship between ii tables should be, information technology doesn't automatically create the human relationship. In that example, you must do so.

Let'southward get through a quick tutorial, to improve testify you lot how relationships work in Ability BI Desktop.

Tip

You lot can complete this lesson yourself:

  1. Copy the following ProjectHours tabular array into an Excel worksheet (excluding the title), select all of the cells, so select Insert > Table.
  2. In the Create Tabular array dialog box, select OK.
  3. Select whatever tabular array cell, select Table Blueprint > Table Name, and then enter ProjectHours.
  4. Do the same for the CompanyProject tabular array.
  5. Import the information by using Get Data in Power BI Desktop. Select the two tables as a information source, then select Load.

The showtime tabular array, ProjectHours, is a tape of work tickets that record the number of hours a person has worked on a particular project.

ProjectHours

Ticket SubmittedBy Hours Project DateSubmit
1001 Brewer, Alan 22 Blueish ane/one/2013
1002 Brewer, Alan 26 Red 2/ane/2013
1003 Ito, Shu 34 Yellow 12/4/2012
1004 Brewer, Alan thirteen Orangish 1/ii/2012
1005 Bowen, Eli 29 Purple 10/i/2013
1006 Bento, Nuno 35 Green 2/ane/2013
1007 Hamilton, David 10 Yellow 10/1/2013
1008 Han, Mu 28 Orange 1/2/2012
1009 Ito, Shu 22 Purple ii/1/2013
1010 Bowen, Eli 28 Green 10/1/2013
1011 Bowen, Eli 9 Bluish ten/fifteen/2013

This second table, CompanyProject, is a list of projects with an assigned priority: A, B, or C.

CompanyProject

ProjName Priority
Blue A
Red B
Light-green C
Yellow C
Majestic B
Orangish C

Notice that each table has a project column. Each is named slightly unlike, but the values await similar they're the aforementioned. That'due south of import, and we'll get back to it in soon.

Now that nosotros accept our two tables imported into a model, allow'south create a written report. The first thing nosotros want to go is the number of hours submitted past project priority, and so we select Priority and Hours from the Fields pane.

Select Priority and Hours from Fields pane

If we look at our table in the report canvass, you'll see the number of hours is 256 for each project, which is also the total. Clearly this number isn't right. Why? It'southward considering nosotros tin't summate 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 2 tables.

So, permit'south create a human relationship between these two tables.

Think those columns we saw in both tables with a projection name, but with values that look alike? We'll use these two columns to create a relationship between our tables.

Why these columns? Well, if we await at the Project cavalcade in the ProjectHours tabular array, we see values like Blueish, Cherry-red, Xanthous, Orange, and and then on. In fact, we see several rows that have the same value. In effect, we take many colour values for Project.

If nosotros look at the ProjName column in the CompanyProject tabular array, nosotros meet there's only one of each of the colour values for the projection proper noun. Each colour value in this tabular array is unique, and that'southward important, because we can create a relationship between these two tables. In this instance, a many-to-one relationship. In a many-to-one relationship, at least i cavalcade in one of the tables must contain unique values. In that location are some additional options for some relationships, which we'll look at later on. For now, let'due south create a relationship between the projection columns in each of our two tables.

To create the new human relationship

  1. Select Manage relationships from the Modeling tab.

  2. In Manage relationships, select New to open the Create relationship dialog box, where we tin can select the tables, columns, and any boosted settings we want for our relationship.

  3. In the first drop-down listing, select ProjectHours equally the showtime table, then select the Projection column. This side is the many side of our relationship.

  4. In the second drop-down list, CompanyProject is preselected as the second table. Select the ProjName column. This side is the one side of our relationship.

  5. Accept the defaults for the human relationship options, and then select OK.

    Create relationship dialog box

  6. In the Manage relationships dialog box, select Close.

In the interest of full disclosure, you just created this relationship the hard way. You could accept just selected Autodetect in the Manage relationships dialog box. In fact, autodetect would have automatically created the relationship for y'all when yous loaded the data if both columns had the same name. Merely, what's the challenge in that?

Now, let'southward look at the table in our report canvass once again.

Created relationship with Priority and Hours

That looks a whole lot better, doesn't it?

When we sum up hours by Priority, Power BI Desktop looks for every instance of the unique colour values in the CompanyProject lookup tabular array, looks for every instance of each of those values in the ProjectHours table, and so calculates a sum total for each unique value.

That was easy. In fact, with autodetect, y'all might not even have to do that much.

Understanding additional options

When a human relationship is created, either with autodetect or i y'all create manually, Power BI Desktop automatically configures boosted options based on the data in your tables. These additional relationship options are located in the lower portion of the Create human relationship and Edit human relationship dialog boxes.

Relationship options

Power BI typically sets these options automatically and you won't need to adjust them; however, there are several situations where you lot might want to configure these options yourself.

Automatic relationship updates

You tin manage how Power BI treats and automatically adjusts relationships in your reports and models. To specify how Power BI handles relationships options, select File > Options and settings > Options from Power BI Desktop, and so select Information Load in the left pane. The options for Relationships appear.

Relationships options

There are three options that can be selected and enabled:

  • Import relationships from data sources on first load: This choice is selected by default. When it's selected, Power BI checks for relationships defined in your data source, such equally foreign key/primary key relationships in your information warehouse. If such relationships be, they're mirrored into the Power BI data model when yous initially load data. This option enables you to quickly begin working with your model, rather than requiring you observe or define those relationships yourself.

  • Update or delete relationships when refreshing data: This option is unselected by default. If you select it, Ability BI checks for changes in data source relationships when your dataset is refreshed. If those relationships changed or are removed, Ability BI mirrors those changes in its own data model, updating or deleting them to match.

    Warning

    If y'all're using row-level security that relies on the divers relationships, we don't recommend selecting this choice. If you lot remove a relationship that your RLS settings rely on, your model might become less secure.

  • Autodetect new relationships after data is loaded: This option is described in Autodetect during load.

Futurity updates to the data require a dissimilar cardinality

Normally, Power BI Desktop can automatically determine the best cardinality for the relationship. If you do need to override the automatic setting, because you know the data will alter in the future, you can change information technology with the Cardinality control. Let's look at an example where we need to select a different cardinality.

The CompanyProjectPriority tabular array is a listing of all company projects and their priority. The ProjectBudget table is the set of projects for which a budget has been canonical.

CompanyProjectPriority

ProjName Priority
Bluish A
Cherry B
Light-green C
Xanthous C
Regal B
Orange C

ProjectBudget

Canonical Projects BudgetAllocation AllocationDate
Blue 40,000 12/one/2012
Cherry 100,000 12/1/2012
Green 50,000 12/1/2012

If nosotros create a relationship between the Canonical Projects column in the ProjectBudget table and the ProjectName column in the CompanyProjectPriority table, Power BI automatically sets Cardinality to One to 1 (i:one) and Cross filter direction to Both.

Create relationship between table columns

The reason Power BI makes these settings is considering, to Power BI Desktop, the best combination of the 2 tables is as follows:

ProjName Priority BudgetAllocation AllocationDate
Blueish A 40,000 12/1/2012
Ruddy B 100,000 12/1/2012
Green C 50,000 12/1/2012
Yellow C

Purple B

Orange C

There'due south a 1-to-one relationship between our two tables because there are no repeating values in the combined table's ProjName column. The ProjName cavalcade is unique, because each value occurs only once; therefore, the rows from the ii tables can be combined directly without any duplication.

But, let's say you know the information will change the next fourth dimension you refresh information technology. A refreshed version of the ProjectBudget table now has additional rows for the Blue and Red projects:

ProjectBudget

Approved Projects BudgetAllocation AllocationDate
Bluish 40,000 12/i/2012
Carmine 100,000 12/1/2012
Greenish l,000 12/i/2012
Bluish 80,000 six/1/2013
Blood-red xc,000 6/one/2013

These additional rows mean the best combination of the two tables now looks like this:

ProjName Priority BudgetAllocation AllocationDate
Blue A twoscore,000 12/i/2012
Cherry B 100,000 12/1/2012
Green C fifty,000 12/1/2012
Yellow C

Royal B

Orangish C

Blue A 80000 6/1/2013
Red B 90000 vi/1/2013

In this new combined table, the ProjName column has repeating values. The two original tables won't accept a ane-to-i human relationship in one case the table is refreshed. In this example, because we know those future updates will cause the ProjName cavalcade to have duplicates, nosotros desire to set the Cardinality to be Many to 1 (*:i), with the many side on ProjectBudget and the 1 side on CompanyProjectPriority.

Adjusting Cantankerous filter direction for a circuitous set up of tables and relationships

For most relationships, the cantankerous filter direction is ready to Both. There are, even so, some more uncommon circumstances where you lot might need to set this option differently from the default, like if you're importing a model from an older version of Power Pivot, where every human relationship is set to a single direction.

The Both setting enables Power BI Desktop to treat all aspects of continued tables as if they're a single tabular array. At that place are some situations, however, where Power BI Desktop tin can't set a relationship'south cross filter direction to Both and also keep an unambiguous fix of defaults available for reporting purposes. If a relationship cross filter direction isn't ready to Both, then information technology's commonly because it would create ambivalence. If the default cantankerous filter setting isn't working for you, try setting information technology to a particular table or to Both.

Single management cross filtering works for many situations. In fact, if yous've imported a model from Power Pin in Excel 2013 or earlier, all of the relationships volition be set to unmarried management. Single management means that filtering choices in continued tables work on the table where assemblage piece of work is happening. Sometimes, understanding cantankerous filtering can be a piffling difficult, so let's await at an instance.

With single direction cross filtering, if you create a report that summarizes the project hours, you tin can then cull to summarize (or filter) by the CompanyProject table and its Priority column or the CompanyEmployee table and its City cavalcade. If still, you want to count the number of employees per projects (a less common question), information technology won't work. You'll get a column of values that are however. In the following instance, both human relationship's cantankerous filtering management is set to a single direction: towards the ProjectHours table. In the Values well, the Project field is set to Count:

Cross filtering direction

Filter specification will period from CompanyProject to ProjectHours (as shown in the following epitome), but information technology won't flow up to CompanyEmployee.

Cross filtering example

Still, if you ready the cross filtering direction to Both, it will work. The Both setting allows the filter specification to flow up to CompanyEmployee.

Filter specification flow

With the cross filtering direction prepare to Both, our report now appears correct:

Cross filtering direction set to Both

Cross filtering both directions works well for a blueprint of table relationships such as the pattern higher up. This schema is nigh commonly called a star schema, like this:

Cross filtering both directions in star schema

Cross filtering management does not work well with a more general design often found in databases, like in this diagram:

Cross filtering both directions in database pattern

If y'all accept a table pattern like this, with loops, then cross filtering can create an cryptic set of relationships. For instance, if you sum up a field from TableX and then choose to filter past a field on TableY, and so information technology's not clear how the filter should travel, through the top table or the bottom tabular array. A common instance of this kind of design is with TableX every bit a sales table with actuals data and for TableY to exist budget data. Then, the tables in the middle are lookup tables that both tables utilize, such equally sectionalization or region.

As with active/inactive relationships, Power BI Desktop won't permit a human relationship to exist set to Both if it will create ambiguity in reports. There are several different ways you can handle this situation. Here are the two most common:

  • Delete or mark relationships as inactive to reduce ambiguity. And then, you might be able to set a relationship cross filtering equally Both.
  • Bring in a table twice (with a different name the 2nd time) to eliminate loops. Doing and so makes the pattern of relationships like a star schema. With a star schema, all of the relationships can be set up to Both.

Wrong active relationship

When Power BI Desktop automatically creates relationships, it sometimes encounters more than one relationship between two tables. When this state of affairs happens, only one of the relationships is prepare to be active. The active human relationship serves as the default human relationship, so that when you choose fields from two different tables, Power BI Desktop can automatically create a visualization for you. However, in some cases the automatically selected human relationship can exist wrong. Employ the Manage relationships dialog box to set a relationship every bit agile or inactive, or set up the agile relationship in the Edit relationship dialog box.

To ensure there's a default relationship, Power BI Desktop allows only a single agile relationship between ii tables at a given time. Therefore, y'all must first set the current relationship equally inactive and then ready the relationship you lot want to be agile.

Permit'southward look at an example. The first table is ProjectTickets, and the second tabular array is EmployeeRole.

ProjectTickets

Ticket OpenedBy SubmittedBy Hours Project DateSubmit
1001 Perham, Tom Brewer, Alan 22 Blue 1/i/2013
1002 Roman, Daniel Brewer, Alan 26 Red 2/1/2013
1003 Roth, Daniel Ito, Shu 34 Yellow 12/four/2012
1004 Perham, Tom Brewer, Alan 13 Orangish ane/2/2012
1005 Roman, Daniel Bowen, Eli 29 Purple ten/ane/2013
1006 Roth, Daniel Bento, Nuno 35 Green 2/1/2013
1007 Roth, Daniel Hamilton, David ten Xanthous 10/1/2013
1008 Perham, Tom Han, Mu 28 Orange one/2/2012
1009 Roman, Daniel Ito, Shu 22 Purple ii/1/2013
1010 Roth, Daniel Bowen, Eli 28 Green x/1/2013
1011 Perham, Tom Bowen, Eli 9 Blue 10/15/2013

EmployeeRole

Employee Role
Bento, Nuno Project Manager
Bowen, Eli Project Lead
Brewer, Alan Project Manager
Hamilton, David Project Lead
Han, Mu Project Lead
Ito, Shu Project Lead
Perham, Tom Project Sponsor
Roman, Daniel Project Sponsor
Roth, Daniel Project Sponsor

At that place are actually two relationships hither:

  • Betwixt Employee in the EmployeeRole table and SubmittedBy in the ProjectTickets table.
  • Betwixt OpenedBy in the ProjectTickets tabular array and Employee in the EmployeeRole table.

Two-relationship example

If we add together both relationships to the model (OpenedBy commencement), so the Manage relationships dialog box shows that OpenedBy is agile:

OpenedBy active in Manage relationships dialog box

Now, if we create a study that uses Role and Employee fields from EmployeeRole, and the Hours field from ProjectTickets in a table visualization in the report canvas, we see simply project sponsors because they're the just ones that opened a project ticket.

Employee, Role, and Hours fields selected

Nosotros can change the active relationship and become SubmittedBy instead of OpenedBy. In Manage relationships, uncheck the ProjectTickets(OpenedBy) to EmployeeRole(Employee) relationship, and and so bank check the EmployeeRole(Employee) to Project Tickets(SubmittedBy) relationship.

Change active relationship in Manage relationship dialog box

See all of your relationships in Human relationship view

Sometimes your model has multiple tables and complex relationships between them. Relationship view in Power BI Desktop shows all of the relationships in your model, their direction, and cardinality in an easy to sympathise and customizable diagram.

To acquire more than, see Piece of work with Human relationship view in Power BI Desktop.

Troubleshooting

This section provides guidance and troubleshooting information when working with relationships in Power BI.

Relationships between fields cannot be adamant

Power BI attempts to show relevant information in visuals by inferring the relationships from the model existence used. Sometimes such inferences aren't obvious, and you lot might be surprised to see an error in your visual, indicating in that location is no relationship betwixt certain columns.

To explain how Power BI determines whether fields are related, permit's employ an example model to illustrate a few scenarios in the following sections. The post-obit image shows the sample model we'll use in the example scenarios.

Sample model used in troubleshooting scenarios

Scenario 1: Traditional star schema and no measure constraint provided. Referring to the sample model in the previous image, let's await showtime at the right half of the images with the Vendor - Purchases - Production tables. This is a traditional star schema with the Fact table (Purchases) and two Dimension tables (Product and Vendor). The relationship between the dimension tables and the fact tabular array is 1 to Many (one product corresponds to many purchases, 1 vendor corresponds to many purchases). In this blazon of schema, we tin can answer questions similar What sales do nosotros take for production 10? and What sales do we have for Vendor Y? and What products does Vendor Y sell?

If we want to correlate Products and Vendors, we can do so by looking at the Purchases table to come across if there is an entry with the same product and vendor. A sample query might expect like the post-obit:

Correlate Product[Color] with Vendor[Name] where CountRows(Purchases)>0

The where CountRows(Purchases)>0 is an implicit constraint that Power BI would add to ensure relevant data is returned. By doing this correlation through the Purchases table, we can return pairings of Product-Vendor that have at least one entry in a fact table, pairings that brand sense from the information perspective. You can expect any nonsensical combinations of Product-Vendor for which there has never been a sale (which would be useless for analysis) will not be displayed.

Scenario 2: Traditional star schema and measure constraint provided. In the previous example in Scenario 1, if the user provides a constraint in the course of summarized cavalcade (Sum/Average/Count of Purchase Qty, for example) or a model measure (Distinct Count of VendID), Power BI can generate a query in the class of the post-obit:

Correlate Production[Color] with Vendor[Name] where MeasureConstraint is not bare

In such a case, Ability BI attempts to return combinations that have meaningful values for the constraint provided past the user (non-blank). Power BI does not need to also add together its own implicit constraint of CountRows(Purchases)>0, such every bit what was washed like in the previous Scenario i, because the constraint provided past the user is sufficient.

Scenario three: Non-star schema and no mensurate constraint provided. In this scenario, nosotros focus our attending to the heart of the model, where nosotros have the Sales - Product - Purchases tables, where nosotros have i dimension table (Product) and two Fact Tables (Sales, Purchases). Since this is not a star schema, we can't answer the same kind of questions every bit we had in Scenario i. Let's say we effort to correlate Purchases and Sales; since Purchases has a Many to 1 relationship with Product, and Production has a 1 to Many relationship with Sales, Sales and Purchases are indirectly Many to Many. Nosotros tin link one Production to many Purchases and one Product to many sales, simply we cannot link one Sale to many Purchases or vice versa. We can only link many Purchases to many Sales.

In this situation, if nosotros endeavour to combine Purchase[VenID] and Sales[CustID] in a visual, Power BI does not have a concrete constraint it tin utilise, due to the Many to Many relationship between those tables. Though in that location may custom constraints (not necessarily stemming from the relationships established in the model) that can be practical for diverse scenarios, Power BI cannot infer a default constraint solely based on the relationships. If Ability BI attempted to return all combinations of the two tables, it would create a big cantankerous bring together and render non-relevant data. Instead of this, Ability BI raises an error in the visual, such as the following.

Error dialog when relationship cannot be inferred

Scenario 4: Non-star schema and measure out constraint provided. If we take the instance from Scenario 3 and add a user provided constraint in the grade of a summarized cavalcade (Count of Production[ProdID] for instance) or a model mensurate (Sales[Total Qty]) Ability BI can generate a query in the class of Correlate Buy[VenID] and Sales[CustID] where MeasureConstraint is not bare.

In this instance, Ability BI respects the user's constraint as beingness the sole constraint Ability BI needs to utilise, and return the combinations that produce not-bare values for it. The user has guided Power BI to the scenario it wants, and Power BI applies the guidance.

Scenario 5: When a measure out constraint is provided merely it is partially related to the columns. There are cases where the measure constraint provided by the user is non entirely related to all the columns in the visual. A model mensurate always relates everything; Power BI treats this equally a black box when attempting to observe relationships between columns in the visual, and assume the user knows what they are doing past using it. However, summarized columns in the form of Sum, Average, and similar summaries called from the user interface can exist related to only a subset of the columns/tables used in the visual based on the relationships of the table to which that cavalcade belongs. As such, the constraint applies to some pairings of columns, but not to all, in which case Ability BI attempts to find default constraints it tin apply for the columns that are not related past the user provided constraint (such every bit in Scenario one). If Ability BI cannot discover any, the post-obit fault is returned.

Error dialog when Power BI cannot find default constraints

Resolving relationship errors

When you come across the Tin can't make up one's mind relationships between the fields fault, you can take the following steps to attempt to resolve the fault:

  1. Check your model. Is it prepare up appropriately for the types of questions you lot want answered from your analysis? Can you change some of the relationships between tables? Tin can you avoid creating an indirect Many to Many?

    Consider converting your reversed V shape schema to two tables, and use a direct Many to Many relationship between them as described in apply many-many relationships in Power BI Desktop.

  2. Add a constraint to the visual in the form of a summarized column or a model measure.

  3. If a summarized cavalcade is added and there all the same is an error, consider using a model measure.

Adjacent steps

For more information about models and relationships, see the following articles:

  • Apply blended models in Power BI Desktop
  • Storage mode in Power BI Desktop
  • Apply DirectQuery in Power BI
  • Power BI data sources