Forum Discussion
Removing data with the same values in a specific column between 2 different queries
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:
- TotalB = COUNTROWS('B')
and count all rows of A:
- TotalA = COUNTROWS('A')
then subtract to eliminate duplicates:
- TrueTotalB = TotalB - TotalA
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.
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:
3 Replies
- DataInsightsSuper 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:
- AnonymousNot applicable
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?
- DataInsightsSuper User
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.