Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply

TOPN function in CALCULATE

Hi

I have an interesting problem when trying to create a measure in PBI Desktop.

I have data thats akin to this, which I have used SUMMARIZE to create categories and a count of their respective sales.

Category      COUNT of sales
Apples          32
Kiwi              46

Bananas       65

Oranges       23

Dragon         87

Grapes         54

Mango        126

Cherry         84


There are 8 categories, but I am specifically looking to SUM the Top 5 categories by the amount of the COUNT.

So in my example, I am looking for a measure which will allow me to SUM Mango,Dragon,Cherry,Bananas and Grapes. My expected response is 416 in this example.

Whilst I can easily SUMMARIZE my data and apply the count, I am struggling with how to SUM the specific Top 5 by the COUNT.

Can anyone assist please?

1 ACCEPTED SOLUTION
v-zhangti
Community Support
Community Support

Hi, @powerbiuser9999 

 

You can try the following methods.

  1. Create a new calculation column to rank the COUNT of sales.
Rank = 
RANK.EQ ( [COUNT of sales], 'Table'[COUNT of sales], DESC )

vzhangti_0-1635992326183.png

 

    2. Create a measure to sum the top five.

Measure =
CALCULATE (
    SUM ( 'Table'[COUNT of sales] ),
    FILTER ( ALL ( 'Table' ), 'Table'[Rank] <= 5 )
)

vzhangti_1-1635992386080.png

 

Best Regards,

Community Support Team _Charlotte

If this post helps, then please consider Accept it as the solution to help the other members find it more.

View solution in original post

5 REPLIES 5
v-zhangti
Community Support
Community Support

Hi, @powerbiuser9999 

 

You can try the following methods.

  1. Create a new calculation column to rank the COUNT of sales.
Rank = 
RANK.EQ ( [COUNT of sales], 'Table'[COUNT of sales], DESC )

vzhangti_0-1635992326183.png

 

    2. Create a measure to sum the top five.

Measure =
CALCULATE (
    SUM ( 'Table'[COUNT of sales] ),
    FILTER ( ALL ( 'Table' ), 'Table'[Rank] <= 5 )
)

vzhangti_1-1635992386080.png

 

Best Regards,

Community Support Team _Charlotte

If this post helps, then please consider Accept it as the solution to help the other members find it more.

@v-zhangti Charlotte. You star! Thank you!

Hi @YukiK 

Thanks so much for your reply.

This hasn't worked for scenario, but i may have worded this incorrectly.

I am going to start a new question which is better worded, but thank you so much for your time.

YukiK
Impactful Individual
Impactful Individual

Try a measure like this one:

 

YukiK_0-1635775130032.png

 

TOP5 sum of count of sales =
CALCULATE( SUM('Table'[ COUNT of sales] ),
TOPN (
5,
ADDCOLUMNS (
VALUES ( 'Table'[Category     ] ),
"@Count of Sales", CALCULATE( SUM('Table'[ COUNT of sales] ) )
),
[@Count of Sales],
DESC
)
)

 

Please give it a thumbs up if this helps!

Hi @YukiK , this solution works. Arigato!

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.