Forum Discussion
GP85
3 years agoNew Member
Merge tables 2 columns matching 1
Hi, Sorry for sily question but I am new to the topic. I am trying to merge 2 tables based on a condtion that 2 columns from one table must be match with another colum from second table. I can add s...
- 3 years ago
Hi GP85 ,
According to your description, here's my solution. Add a step in Table1 Advanced editor:
#"New"=let filter=Table.SelectRows(Table2,each [Department]="Department 1") in Table.SelectRows(#"Changed Type",each List.Contains(filter[Portfolio],[Portfolio]) or List.Contains(List.RemoveNulls(filter[Security]),[Security]))Result:
Here's the whole M syntax:
Table2:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsgvKknLz8nMVzBU0lFySS1ILCrJTc0rUTAHcoNTk0uLMksqgXKxOshqjVDVmgG5aCqMUVUYYqowwVQBt88ITa0pqlojTNPMCKowR1VhjKnCgqAKS1QVpshuNkZTa2hAMAgMDQnaaIgW1CbIVpqiK8YS6nDFJkqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Portfolio = _t, Department = _t, Security = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Portfolio", type text}, {"Department", type text}, {"Security", type text}}) in #"Changed Type"Table1:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsgvKknLz8nMVzBU0lFSUIrVQRYzwiJmCRQLTk0uLcosqQQqQJU0RJY0RJdEkTVFkzUnZJcJmqQFFg2GBhDBWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Portfolio = _t, Security = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Portfolio", type text}, {"Security", type text}}), #"New"=let filter=Table.SelectRows(Table2,each [Department]="Department 1")in Table.SelectRows(#"Changed Type",each List.Contains(filter[Portfolio],[Portfolio]) or List.Contains(List.RemoveNulls(filter[Security]),[Security])) in #"New"I attach my sample below for your reference.
Best Regards,
Community Support Team _ kalyjIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
PhilipTreacy
Super User
3 years agoGP85
3 years agoNew Member
hi Phil,
A condition to keep record should be that either Portfolio or Security belong to Department 1.
In terms of helper columns (lookups in Excel) I can only explain in the following way. Adding 2 columns to Table 1.
| Portfolio | Security | Right look up on Portfolio | Left look up Security |
| Portfolio 1 | Department 7 | #N/A | |
| Portfolio 2 | Department 6 | #N/A | |
| Portfolio 9 | Security 2 | Department 5 | Department 1 |
| Portfolio 1 | Security 1 | Department 7 | Department 7 |
| Portfolio 11 | Security 5 | Department 3 | Department 4 |
| Portfolio 7 | Department 3 | #N/A | |
| Portfolio 9 | Security 4 | Department 5 | Department 1 |
| Portfolio 8 | Department 3 | #N/A | |
| Portfolio 10 | Department 1 | #N/A |
Then filter out those not "Department 1" based on the 2 Helper Ccolumns:
| Portfolio | Security | Right Look up on Portfolio | Left Look up Security |
| Portfolio 9 | Security 2 | Department 5 | Department 1 |
| Portfolio 9 | Security 4 | Department 5 | Department 1 |
| Portfolio 10 | Department 1 | #N/A |
Best regards
GP