Analyzing top n (or bottom m) items is an important part of any data analysis exercise. In this article, we are going to learn Excel formulas to help you with that.
Let’s say you are the lead analyst at a large retail chain in Ohio, USA. You are looking at the latest sales data for all the 300 stores. You want to calculate the total sales of top 10 stores. Read on to learn the techniques.
Meet the data
So here is the data we have. It is arranged in an Excel table, named Sales.

We need to answer to 2 questions.
- What is the sum of top n sales?
- What is the sum of top n sales for filtered data (say store=Dayton)?
Sum of top n sales
First let’s take a look the formula.
=SUMIFS(sales[Revenues],sales[Revenues],">="&LARGE(sales[Revenues],n))
[Related: using structural references in Excel]
How does this formula work?
There are 2 components in this formula:
- We need to sum up revenues column
- Such that, revenue >= top nth revenue
Finding the top nth value:
This is where LARGE formula helps. It looks at the revenue column and returns nth value.
Sum of top n values thru SUMIFS:
Then, SUMIFS formula calculates the total revenues where revenue >= top nth value.
[Related: Introduction to SUMIFS formula]
Sum of top n sales in filtered data
This one is tricky. First, we will add an extra column to the sales table. You can later hide this if you want.
This column just tells us whether a particular store is hidden or visible (ie filtered away or not).
Use the formula,
=SUBTOTAL(3, [@Store]) = 1 in the new column. This will be TRUE if a row is visible and FALSE if a row is filtered away.
See below illustration to understand the formula.

Next, we can use below formula to calculate the total of top n sales in filtered data:
=SUMIFS(sales[Revenues],sales[Visible?],TRUE, sales[Revenues],">="&AGGREGATE(14,5,sales[Revenues],n))
How does this formula work?
Again, we are using SUMIFS formula, but with 2 conditions.
- Store should be visible
- Revenue >= top nth revenue in visible stores
To calculate the top n value of a visible stores, we use AGGREGATE formula.
AGGREGATE(14,5,sales[Revenues],n) – what does it do?
AGGREGATE formula takes 3 or 4 parameters.
- Calculation number – 14 corresponds to LARGE
- Which data to ignore – 5 corresponds to ‘ignore hidden rows’
- Data – Sales[Revenues]
- n – optional parameter for LARGE or SMALL calculations
So, our AGGREGATE(14,5,sales[Revenues],n) formula will return top nth value among the filtered data.
Once we know that value, we just use SUMIFS to sum up all values greater than or equal to it.
Download Example Workbook
Click here to download the sum of top 10 values workbook. Play with the formulas to learn more. Also, attempt the homework problems and post your answers in comments.
Your home work – 2 challenges:
So now that you understood how to calculate sum of top n values, I have 2 home work problems.
- What is the sum of bottom 10 values excluding zero values?
- What is the sum of bottom 10 values in filtered list, excluding zeros?
Go ahead and post your answers as comments.
6 more tips on analyzing top n values
Here are few more ways to analyze with top /bottom n values.
- Sum of top 3 values that meet a criteria
- Show top 10 values in dashboards using pivot tables
- Calculating average of top 5 values
- Create a top X chart
- Highlight top 10 values using conditional formatting
- Find out nth largest value that meets a criteria using array formulas
This post is part of our Awesome August Excel Festival.












12 Responses to “29 Excel Formula Tips for all Occasions [and proof that PHD readers truly rock]”
Some great contributions here.
Gotta love the Friday 13th formula 😀
Great tips from you all! Thanks a lot for sharing! bsamson, particularly you helped me on a terribly annoying task. 🙂
(BTW, Chandoo, it's not exactly "Find if a range is normally distributed" what my suggestion does. It checks if two proportions are statistically different. I probably gave you a bad explanation on twitter, but it'd be probably better if you fix it here... 🙂 )
Great compilation Chandoo
For the "Clean your text before you lookup"
=VLOOKUP(CLEAN(TRIM(E20)),F5:G18,2,0)
I would like to share a method to convert a number-stored-as-text before you lookup:
=VLOOKUP(E20+0,F5:G18,2,0)
@Peder, yeah, I loved that formula
@Aires: Sorry, I misunderstood your formula. Corrected the heading now.
@John.. that is a cool tip.
Hey Chandoo,
That p-value formula is really great for a statistics person like me.
What a p-value essentially is, is the probability that the results obtained from a statistical test aren't valid. So for example, if my p value is .05, there's a 5% probability that my results are wrong.
You can play with this if you install the Data Analysis Toolpak (which will perform some statistical tests for you AND provide the P Value.)
Let's say for example I've got two weeks of data (separated into columns) with the number of hours worked per day. I want to find out if the total number of hours I worked in week two were really all the different than week one.
Week1 Week2
10 11
12 9
9 10
7 8
5 8
Go to Data > Data Analysis > T-Test Assuming Unequal Variances > OK
In the Variable 1 Box, select the range of data for week 1.
In the Variable 2 Box, select the range of data for week 2.
Check "Labels"
In the Alpha box, select a value (in percentage terms) for how tolerant you are of error.
.05 is the general standard; that is to say I am willing to accept a 95% level of confidence that my result is accuarate.
Select a range output.
Excel calculates a number of results: Average (mean) for each week's data, etc.
You'll notice however that there are two P Values; one-tail and two-tail. (one tail tests are for > or .05), the number of hours I worked in week two is statistically equivalent to the number of hours I worked in week one.
So here’s a way you might want to use this. You put up a new entry on your blog. You think it’s the best entry ever! So you pull your webstats for this week and compare it to last week. You gather data for each week on the length of time a visitor spends on your website. The question you’re trying to prove statistically is whether there’s an average increase in the amount of time spent on your website this week as compared to last week (as a result of your fancy new blog post). You can run the same statistical test I illustrated above to find out. Incidentally, it matters very little to the stat test whether the quantity of visitors differs or not.
Anyhow, the Data Analysis toolpack doesn't perform a lot of stat tests that folks like me would like to have access to. In those cases I have to either use different software, or write some very complicated mathematical formulas. Having this p-value formula makes my life a LOT easier!
Thanks!
Eric~
Fantastic stuf..One line explanation is cool.
Thanks to all the contributors
OS
Take FirstName, MI, LastName in access (you can fix it to work in excel) capitalize first letter of each and lowercase the rest and add ". " if MI exists then same for last name:
Full Name: Format(Left([FirstName],1),">") & Format(Right([FirstName]),Len([FirstName])-1),"") & ". ","") & Format(Left([LastName],1),">") & Format(Right([LastName],Len([LastName])-1),"<")
I teach excel, access, etc etc for a living and i have my access students build this formula one step at a time from the inside out to show how formulas can be made even if it looks complicated. Yes I know I could just do IsNull([MI]) and reverse the order in the Iif() function but the point here is to nest as many functions as possible one by one (also I illustrate how it will fail without the Not() as it is)
Extract the month from a date
The easiest formula for this is =MONTH(a1)
It will return a 1 for January, 2 for February etc.
if in a column we write the value of total person for eg. 10 if we spent 1.33 paise each person then how we get total amount in next column and the result will in round form plzzzzz solve my problem sir................... thank u
@Anjali
If the value 10 is in B2 and 1.33 paise is in C2 the formula in D2 could be =B2*C2
If the values are a column of values you can copy the formula down by copy/paste or drag the small black handle at the bottom right corner of cell D2
kindly share with me new forumulas.
How to convert a figure like 870.70 into 870 but 871.70 into 880 using excel formula ? Please help.