Forum Discussion
Anonymous
4 years agoNot applicable
Comparing 1 json object against another json objects
I have a scenario to get discrepancy records across 2 different JSON objects. I will import the 2 objects into PowerBI Desktop and name as 1 VS 2.
Therefore, what I have is:
| Table1 | Name | Industry | City | Table 2 | Name | Industry | City | |
| record 1 | A | A | C | record 1 | A | B | C | |
| record 2 | A | B | C | record 2 | A | B | C | |
| record 3 | A | B | C | record 3 | A | B | C |
The result I am looking for is a new table showing:
| New Table | Name | Industry | City |
| record 1 | Yes | No | Yes |
| record 2 | Yes | Yes | Yes |
| record 3 | Yes | Yes | Yes |
Could anyone point me with some direction how to get the new table generated? Appreciated a million!
Anonymous,
Try this in Power Query:
let Source = Table.NestedJoin(Table1, {"Record ID"}, Table2, {"Record ID"}, "Table2", JoinKind.Inner), RenameColumns = Table.RenameColumns( Source, {{"Name", "Table1.Name"}, {"Industry", "Table1.Industry"}, {"City", "Table1.City"}} ), ExpandTable2 = Table.ExpandTableColumn( RenameColumns, "Table2", {"Name", "Industry", "City"}, {"Table2.Name", "Table2.Industry", "Table2.City"} ), AddName = Table.AddColumn( ExpandTable2, "Name", each if [Table1.Name] = [Table2.Name] then "Yes" else "No" ), AddIndustry = Table.AddColumn( AddName, "Industry", each if [Table1.Industry] = [Table2.Industry] then "Yes" else "No" ), AddCity = Table.AddColumn( AddIndustry, "City", each if [Table1.City] = [Table2.City] then "Yes" else "No" ), RemoveColumns = Table.RemoveColumns( AddCity, { "Table1.Name", "Table1.Industry", "Table1.City", "Table2.Name", "Table2.Industry", "Table2.City" } ) in RemoveColumns
1 Reply
- DataInsightsSuper User
Anonymous,
Try this in Power Query:
let Source = Table.NestedJoin(Table1, {"Record ID"}, Table2, {"Record ID"}, "Table2", JoinKind.Inner), RenameColumns = Table.RenameColumns( Source, {{"Name", "Table1.Name"}, {"Industry", "Table1.Industry"}, {"City", "Table1.City"}} ), ExpandTable2 = Table.ExpandTableColumn( RenameColumns, "Table2", {"Name", "Industry", "City"}, {"Table2.Name", "Table2.Industry", "Table2.City"} ), AddName = Table.AddColumn( ExpandTable2, "Name", each if [Table1.Name] = [Table2.Name] then "Yes" else "No" ), AddIndustry = Table.AddColumn( AddName, "Industry", each if [Table1.Industry] = [Table2.Industry] then "Yes" else "No" ), AddCity = Table.AddColumn( AddIndustry, "City", each if [Table1.City] = [Table2.City] then "Yes" else "No" ), RemoveColumns = Table.RemoveColumns( AddCity, { "Table1.Name", "Table1.Industry", "Table1.City", "Table2.Name", "Table2.Industry", "Table2.City" } ) in RemoveColumns