Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
I have data from 2 queries in Power Query. We'll call them A and B. Both queries return a number of columns, including a date column. I need to represent both A and B as a stacked bar chart showing how many rows each has per month. The problem is B contains data included in A. I can't use the "remove duplicates" in Power Query because that only concerns itself with rows/columns with the same data across the entire row and only in the same query. Only 1 column in A is duplicated in B (we'll call that column "name"). There are names present in B that should only be present in A.
So far, I have tried using DAX to count all the rows of B:
and count all rows of A:
then subtract to eliminate duplicates:
This works but when I put TrueTotalB in a stacked column chart against the date column as its y axis, I get negative values for most of the date. The reason is TotalB subtracts TotalA from every date, instead of only relative date e.g. a duplicate name in B with date January should only be subtracted from January, not every month.
Maybe there is a different solution besides using DAX? Any help is appreciated.
Edit: I'm thinking I can merge both A and B together and then use a calculated column to find duplicate names, then just delete them manually.
Solved! Go to Solution.
@Anonymous,
I would use an anti join in Power Query. Exclude the duplicate rows in TableB, and then append the remaining rows to TableA.
1. Create a left anti join:
2. Remove column "TableA" and name this table TableBAntiJoin:
3. Append TableA to TableBAntiJoin:
4. Result:
Proud to be a Super User!
@Anonymous,
I would use an anti join in Power Query. Exclude the duplicate rows in TableB, and then append the remaining rows to TableA.
1. Create a left anti join:
2. Remove column "TableA" and name this table TableBAntiJoin:
3. Append TableA to TableBAntiJoin:
4. Result:
Proud to be a Super User!
Thanks for the help. Though I am confused. I have followed your solution but I got the error "A cyclic reference was encountered" when appending.
Also, I don't think I understand your solution. You have name1 - 4 in the final table but isn't this effectively combining the tables into one table, leaving no duplicates. Using your example, the final result should be Table B: name4 (removed name1) and TableA: name1, name2, name3. Am I understanding correctly?
@Anonymous,
The cyclic reference can be avoided by using "Merge Queries as New". This creates a new query.
If the requirement is to have two tables, each with unique names, then you can skip the append step. TableA would have Name1-3 and TableBAntiJoin would have Name4.
Proud to be a Super User!
User | Count |
---|---|
73 | |
70 | |
38 | |
25 | |
23 |
User | Count |
---|---|
96 | |
93 | |
50 | |
43 | |
42 |