Excel Office

Excel How Tos, Tutorials, Tips & Tricks, Shortcuts

Sum top n values in Excel

This tutorial shows how to Sum top n values in Excel using the example below;

To sum the top values in a range, you can use a formula based on the LARGE function, wrapped inside the SUMPRODUCT function.

Formula

=SUMPRODUCT(LARGE(range,{1,2,N}))

Explanation

In the generic form of the formula (above), a range of cells that contain numeric values and N represents the idea of Nth value.

In the example, the active cell contains this formula:

=SUMPRODUCT(LARGE(B4:B13,{1,2,3}))

How this formula works

In its simplest form, LARGE will return the “Nth largest” value in a range. For example, the formula:

=LARGE(B4:B13, 2)

will return the 2nd largest value in the range B4:B13 which, in the example above, is the number 9.

Also See:   Check if multiple cells have same value with case sensitive in Excel

However, if you supply an “array constant” (e.g. a constant in the form {1,2,3}) to LARGE as the second argument, LARGE will return an array of results instead of a single result. So, the formula:

=LARGE(B4:B13,{1,2,3})

will return the 1st, 2nd, and 3rd largest value in the range B4:B13. In the example above, where B4:B13 contains the numbers 1-10, the result from LARGE will be the array {8,9,10}. SUMPRODUCT then sums the numbers in this array and returns a total, which is 27.

Also See:   Count cells that contain errors in Excel

SUM instead of SUMPRODUCT

SUMPRODUCT is a flexible function that allows you to uses cell references for k inside the LARGE function.

However, if you are using a simple hard-coded array constant like {1,2,3} you can just use the SUM function:

=SUM(LARGE(B4:B13,{1,2,3}))

Note you must enter this formula as an array formula if you use cell references and not an array constant for k inside LARGE.

When N becomes large

When N becomes large it becomes tedious to create the array constant by hand – If you want to sum to the top 20 or 30 values in a large list, typing out an array constant with 20 or 30 items will take a long time. In this case, you can use a shortcut for building the array constant that uses the ROW and INDIRECT functions.

Also See:   Two ways to sum time over 30 minutes in Excel

For example, if you want to SUM the top 20 values in a range called “rng” you can write a formula like this:

=SUMPRODUCT(LARGE(rng,ROW(INDIRECT("1:20"))))

Variable N

With insufficient data, a fixed N can cause errors. In this case, you can try a formula like this:

=SUMPRODUCT(LARGE(rng,ROW(INDIRECT("1:"&MIN(3,COUNT(rng))))))

Here, we use MIN with COUNT to sum the top 3 values, or the count of values, if less than 3.

Leave a Reply

Your email address will not be published. Required fields are marked *