Forum Discussion
incorrect result position on filtered ranking
Hello, I have recently started to use PowerBI.
We have data for sales within the (Emi_Todas) table, and a related table of sellers (PAS), wich contains data for each seller.
The sellers table (PAS), whose primary key is MPROD has 2 different subgroups: Group 1: MPROD<45000 and Group2 MPROD>=45000.
I´m currently trying to show the position in the ranking for a specific seller (MPROD) according to total sales [Prima], making a difference whether both groups of sellers are considered or only the first Group is considered.
So, I created two different meassures:
DavidGolden
Maybe a different approach then? If you want to return blank when the [MPROD] >= 45000 you can include this in the measure using IF. So IF([MPROD] >= 45000,BLANK(),[Ranking measure])
4 Replies
- ValtteriN
Community Champion
Hi,
Instead of filtering the PAS table you should focus on chaning the measure logic. Example,
Here I only want to rank products with Category "B" :RANKX(all('Table (7)'),calculate(SUM('Table (7)'[sales]),'Table (7)'[Category 1]="B"),,DESC)
So place the SUMX in CALCULATE and apply the filter there.
I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!- DavidGolden
Helper I
Hi ValtteriN , thanks for the advice. I applied your aproach the the syntax. However, the result is still the same as before.
When chosing a member from a different category, the returned value is not blank, but the last position in the ranking, wich is incorrect.
- ValtteriN
Community Champion
DavidGolden
Maybe a different approach then? If you want to return blank when the [MPROD] >= 45000 you can include this in the measure using IF. So IF([MPROD] >= 45000,BLANK(),[Ranking measure])
- DavidGolden
Helper I
That´s right.
Since the idea is to insert a slicer in order to chose among sellers, then I had to include MAX/MIN for IF function to work.
RankingPAS = IF(MAX(PAS[MPROD])<45000,RANKX(all(PAS),calculate(SUMX(RELATEDTABLE(Emi_Todas),[Prima]),PAS[MPROD]<45000),,DESC,Skip),BLANK())Thanks a lot.