Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Sign up nowGet Fabric certified for FREE! Don't miss your chance! Learn more
Hi Experts,
I try to create a measure to create Top 1o Customer by number of products bought.
I use the following formulas:
Customer Rank = RANKX(ALL(Sales_Fact[CustomerNumber]), [Total Sales], ,ASC)
Top 10 Customers by Prod # =
VAR
RankingContext = VALUES( Account_Dim[Name] )
RETURN
CALCULATE( [No of unique Products],
TOPN( 10, ALL( Account_Dim[Name] ), [No of unique Products] ),
RankingContext ).
The problem is taking around 5 min to display a table with 10 CustomerName and Rank. The tables are not huge: Account aprox 90.ooo rows and Sales aprox 120.000. The memory and cpu used around 30-40%.
Any help would be very much appreciated!
Solved! Go to Solution.
Hi @danm
I'd need more details on the model, visual where measures are used etc. Can you share the pbix?
The name for the measure [Top 10 Customers by Prod #] is a bit confusing, given what it seems to do.
Try this in the meantime:
Top 10 Customers by Prod # V2 =
VAR rank_ =
RANKX ( ALL ( Account_Dim[Name] ), [No of unique Products] )
RETURN
IF ( rank_ <= 10, [No of unique Products] )
Please mark the question solved when done and consider giving a thumbs up if posts are helpful.
Contact me privately for support with any larger-scale BI needs, tutoring, etc.
Cheers
Essentially it is doing what you did in a more direct way. Your code was a bit convoluted.
To be quite honest though, I wouldn't expect the improvement to be really big ex ante. I'd need to see the full pbix to be able to provide a more accurate answer.
Please mark the question solved when done and consider giving a thumbs up if posts are helpful.
Contact me privately for support with any larger-scale BI needs, tutoring, etc.
Cheers
Thank you @AlB !
Is simple and fast ! Great solution. We all appreciate if you add some comments to point us in right direction.
Cheers
Hi @danm
I'd need more details on the model, visual where measures are used etc. Can you share the pbix?
The name for the measure [Top 10 Customers by Prod #] is a bit confusing, given what it seems to do.
Try this in the meantime:
Top 10 Customers by Prod # V2 =
VAR rank_ =
RANKX ( ALL ( Account_Dim[Name] ), [No of unique Products] )
RETURN
IF ( rank_ <= 10, [No of unique Products] )
Please mark the question solved when done and consider giving a thumbs up if posts are helpful.
Contact me privately for support with any larger-scale BI needs, tutoring, etc.
Cheers
Hi @amitchandak
I activated cross filter direction = both, changed the formula but there is no changes.
Not sure about the slicer
@danm , do you have any bi-directional joins. and having a slicer for those bi-directional joins. Make bi-directional join and try .
Small variation in second formula
No of unique Products = DISTINCTCOUNT(Sales_Fact[ProductNumber])
Top 10 Customers by Prod # =
CALCULATE( [No of unique Products],
TOPN( 10, ALL( Account_Dim[Name] ), [No of unique Products] ),
VALUES( Account_Dim[Name] ) )
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 7 | |
| 4 | |
| 4 | |
| 3 | |
| 2 |
| User | Count |
|---|---|
| 15 | |
| 9 | |
| 8 | |
| 7 | |
| 5 |