Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
rank customer = RANKX(ALLSELECTED(Table1),CALCULATE(SUM(Table1[sales]),ALLEXCEPT(Table1,Table1[Customer],Table1[factory])))
so strange that A and B are at same rank, what is the problem here? thanks
Solved! Go to Solution.
Hi,
Looks like the Ranking is correct on that screen shot as it's performing the ranking at customer level for each factory.
you'd need to adjust the RANKX statement to perform the ranking at factory level to change the values.
I do something similar and I check to see what's filtered and amend the measure accordingly.
try this instead.
RankCustomer =
IF(HASONEVALUE(Table1[factory]),
RANKX(ALLSELECTED(Table1), CALCULATE(sum(Table1[sales]), ALLEXCEPT(Table,Table1[Customer], Table1[factory]))) ,
RANKX(ALLSELECTED(Sheet1), CALCULATE(sum(Sheet1[sales]), ALLEXCEPT(Sheet1,Sheet1[Customer])), ,DESC,Dense) )
Hi @erihsehc,
I assume it's due to the Factory column included in your ALLEXCEPT function, this would work if you were displaying the column I think.
using the following works for me. (using my own column and table names)
RankCustomer = RANKX(ALLSELECTED(Sheet1), CALCULATE(sum(Sheet1[sales]), ALLEXCEPT(Sheet1,Sheet1[Customer])), ,DESC,Dense)
Dog
Thanks @Dog. I have tried the formula, the ranking is correct but the factory slicer is not working, the ranking remain unchanged when I select different country. how to make the ranking correct and also the slicer works? thanks
rank customer = RANKX(ALLSELECTED(Table1),CALCULATE(SUM(Table1[sales]),ALLEXCEPT(Table1,Table1[Customer])),,DESC,Dense)
Hi @erihsehc,
Based on my test, the formula below should work in your scenario.
rank customer = RANKX ( ALLSELECTED ( Table1 ), CALCULATE ( SUM ( Table1[sales] ), ALLEXCEPT ( Table1, Table1[Customer], Table1[factory] ) ), , DESC, DENSE )
Regards
thanks @v-ljerr-msft. The ranking is correct for factory, but if you select all factories and countries, the ranking is strange per my top post.
Hi @erihsehc,
My mistake.
Try the formula below. It should work.
rank customer = RANKX ( ALLSELECTED ( Table1[Customer]), CALCULATE ( SUM ( Table1[sales] ), ALLEXCEPT ( Table1, Table1[Customer], Table1[factory] ) ), , DESC, DENSE )
Regards
thanks @v-ljerr-msft, it is what I want.
Out of curiosity, I added the factory field to the table, the ranking seems strange again, not sure the logic of this ranking.
Hi,
Looks like the Ranking is correct on that screen shot as it's performing the ranking at customer level for each factory.
you'd need to adjust the RANKX statement to perform the ranking at factory level to change the values.
I do something similar and I check to see what's filtered and amend the measure accordingly.
try this instead.
RankCustomer =
IF(HASONEVALUE(Table1[factory]),
RANKX(ALLSELECTED(Table1), CALCULATE(sum(Table1[sales]), ALLEXCEPT(Table,Table1[Customer], Table1[factory]))) ,
RANKX(ALLSELECTED(Sheet1), CALCULATE(sum(Sheet1[sales]), ALLEXCEPT(Sheet1,Sheet1[Customer])), ,DESC,Dense) )
Thanks @Dog, I used this dax,, the ranking result is reasonable when twisting field
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
44 | |
21 | |
20 | |
16 | |
15 |
User | Count |
---|---|
32 | |
19 | |
19 | |
16 | |
15 |