Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
bdmichael09
Helper II
Helper II

Forced to use many to many relationship

I have two tables, one is a product list table. It is nothing more than a list of a product identifier along with product information. Below are some of the columns just as an example.

 

image.png

 

I have also have my data table. In the data table I have a Product column. When I try to create a relationship between these two tables, Power BI defaults to a Many-to-Many relationship in what I believe should be a one-to-many relationship because there is should only be unique values in the Product column of the Product list.

 

image.pngimage.png

 

First I checked my Product list to make sure that there weren't any duplicates in there somehow that would cause this. Clearly there are not.

 

 image.png

 

There are duplicates of the product in the data table, but that is expected as different products will be used numerous times. My problem is I am trying to use a Related() function to pull in information from the product list to the data table based on the product but I get an error.

 

image.png

 

Has anyone else ever encountered this or have any suggestions on how to correct this issue?

 

 

1 ACCEPTED SOLUTION
Anonymous
Not applicable

@bdmichael09

The only thing I could think of is perhaps you have null value in your product list. 

View solution in original post

11 REPLIES 11
seancasey
Regular Visitor

I ran into this again tonight, for more than the first.

 

I've ignored it before and it didn't seem to cause too much of an issue but I was stubborn this time. The only way I had around it was to find the values which were still being duplicated, even after a Remove Duplicates in the query editor.

I had about 7K companies in the DIM table but 16 or them kept returning a second value. Only way I could do it was to hard code the 16 of them in a filter. As the editor will only give you a preview of the first 1,000 values, you'll hard code the values into the code.

Not pretty but it works.

Data-Rainer
Advocate IV
Advocate IV

Greetings from New Zealand,
I just had the same issue and couldn't find any duplicates, nor null values in my Excel file.
However after importing my Excel file into Power BI I noticed that Power BI had imported two more rows at the end than I expected from my Excel file and thus created Null value rows.

It turns out that Power BI can import additional Null value rows from Excel.
The safe solution to prevent this is
   to change the data in Excel into an EXCEL-TABLE first (mark the range > Insert > Table)
   then import it to Power BI

This way no more null rows are created and the relationship 1:Many is possible.

Anonymous
Not applicable

@bdmichael09

The only thing I could think of is perhaps you have null value in your product list. 

When working with strings, another issue that may confuse Power Query is if there are any unrecognized characters or extra spaces in your strings. Running the TRIM and/or CLEAN transformation functions addresses those issues.

Hi all,

 

I've read through this and while I have the same issues as the original poster, I cannot seem to find what is causing my issue.

 

No doubt I'm going something wrong as today is the first day that I'm really working with Power Query.

 

  • I've looked to filter out Null values in my Product List. The Product list contains the unique key field.

    = Table.SelectRows(#"Removed Columns", each [StockCode] <> null and [StockCode] <> "")

    I also created a calculated field to run an If, Then to see if anything came up positive for a null value. No positive results.

  • I've run another query to see if there are any duplicate values by Transform -> Group By ->Stockcode Count. No values greater than 1.
  • My only other guess (as I'm new to Power Query) is if there is an issue with a particular operator (@, for example) and if there are particular operators that may impact on being able to create a many-to-one relationship.

  • The transaction Table will have duplicate product codes and have duplicate order numbers. This is obviously the many side of my relationship and I couldn't think why this would impact on anything. I added an Index just for fun but it's still suggesting that the relationship between the two tables is a many-to-many, not a many-to-one.

It's my first day getting really into Power, and I'm ssooo close yet sooo far!

One of the product values in the table was null. Not sure who's bright idea that was (I had no hand in making the product list) but I didn't even think about it. Appreciate it!

Anonymous
Not applicable

use the cross filter to change the cardinality to 1 to many.

@Anonymous Would that I could. When I tried to do that it gave me the error that the cardinality isn't valid for the relationship. This is why I first went to check for some kind of involuntary duplicate Product in my Product list. To me, the only way I could have a many to many is if there were duplicate Products in the Product list. Since I know there aren't, there has to be something else going on that I just don't understand that is forcing Power BI to think it has to use this many to many rather than the one to many relationship that I want. 

Anonymous
Not applicable

 Do a sql code to remove null values, if it does not work, create a bridge table, containing the id of the product. and then join both tables to the bridge for a 1 to many.

Anonymous
Not applicable

@bdmichael09,

Can you provide the full data model? There might be some existing relationships that invalidate your product data and product list tables. 

@Anonymous This is the full model to this point. I have a date table with a relationship to the data table. The bad relationship with the data table and the product list. The data table has a relationship with the employee data table. The employee data table has a relationship with the leaders table which is just the organizational hierarchy. Everything should be a one-to-many relationship. There isn't anything out to the ordinary going on in terms of relationships so I'd be surprised if a different relationship was causing the issue. 

 

image.png

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.