Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
I have two tables. Both tables have the same columns:
Primary Key | | Item | | Description | | Date A | | Date B | | Dollar Amount A | | Dollar Amount B | | Comments | | etc. |
| | | | | | | | | | | | | | | |
There are a total 38 columns most of which are just text data types.
I want to compare these tables and generate a report where the values are different, something like this:
Primary Key | | Column | | Table 1 value | | Table 2 Value |
123 | | Date A | | a date | | a different date |
456 | | Description | | a description | | a different description |
456 | | Dollar Amount B | | an amount | | a different amount |
789 | | Item | | name of an item | | a different item name |
In the result, I want one record for each difference. If the data associated with a Primary Key has differences in ten columns then in the result there will be ten records, one for each difference. If all the data associated a Primary Key is the same in both tables then that Primary Key would not appear in the result.
I know how to do this by building a separate query for each column and ultimately appending the results but I am hoping there is a more direct method of producing this kind of result.
Solved! Go to Solution.
For both tables:
1. Select the key column, then choose under transform Unpivot -> other columns which will produce the following script:
= Table.UnpivotOtherColumns(previousStep, {"Primary Key"}, "Attribute", "Value")
2. Rename the Attribute to "Column" and Value to "Table 1 value" and "Table 2 value" for query 1 and 2 respectivly.
3. Merge (Join) the 2 queries using an inner join (assuming both have the same primary keys, use a full outer join otherwise).
4. Expand the new table column and only choose the Table 2 values.
5. Add a conditional column with Table Value 1 = Table Value 2
6. Filter the new column for false.
7. Remove the newly added column.
This is what I was looking for.
However I have a issue in the end.
I can filter on TRUE/OK to see matching results.
But I can not see missmatches? After point 3 it looks like that:
4. Expand the new table column and only choose the Table 2 values.
it looks like that Key is duplicated
Is this is how it should be?
I got it:
Needed to merge them in both Key and Column columns
🙂
Thank you!
For both tables:
1. Select the key column, then choose under transform Unpivot -> other columns which will produce the following script:
= Table.UnpivotOtherColumns(previousStep, {"Primary Key"}, "Attribute", "Value")
2. Rename the Attribute to "Column" and Value to "Table 1 value" and "Table 2 value" for query 1 and 2 respectivly.
3. Merge (Join) the 2 queries using an inner join (assuming both have the same primary keys, use a full outer join otherwise).
4. Expand the new table column and only choose the Table 2 values.
5. Add a conditional column with Table Value 1 = Table Value 2
6. Filter the new column for false.
7. Remove the newly added column.
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
41 | |
24 | |
21 | |
20 | |
13 |
User | Count |
---|---|
159 | |
61 | |
60 | |
28 | |
20 |