LARGE & SMALL Functions: Find Top N Values Without Sorting

Large and SMALL Formula in Excel Blogpost Feature Image
Learn how to use LARGE and SMALL in Excel to find the Nth highest and lowest values, build dynamic leaderboards, sum the top N, and do conditional ranking.

Sorting a dataset to find the top three values destroys the original order. Worse, it produces a static snapshot that breaks the moment the data changes. The LARGE function solves this elegantly — it returns the Nth highest value from any range without touching the source data. Similarly, the SMALL function returns the Nth lowest value. Together, they power dynamic leaderboards, threshold checks, and conditional summaries that update automatically as data changes.

Availability: LARGE and SMALL work in every Excel version from Excel 2000 onwards, including Microsoft 365, Excel 2024, 2021, 2019, and 2016.

What Is the Syntax for LARGE and SMALL?

Both functions take exactly two arguments. The structure is identical — only the direction of ranking changes.

=LARGE(array, k) → the k-th LARGEST value in the array =SMALL(array, k) → the k-th SMALLEST value in the array
ArgumentRequired?What it does
arrayRequiredThe range or array of numbers to rank. Text, blanks, and logical values are ignored. The range can be a single column, a row, or a multi-column block.
kRequiredThe rank position to return. Use 1 for the highest (LARGE) or lowest (SMALL) value, 2 for the runner-up, and so on. k must be between 1 and the number of values in the array.
#NUM! error: Excel returns #NUM! when k is less than 1, greater than the number of values in the array, or when the array is empty. Always validate k against the dataset size — for example, wrap in IFERROR: =IFERROR(LARGE(A2:A100, k), "").

How Do LARGE and SMALL Handle Duplicate Values?

Duplicates are counted separately. For example, if a dataset contains three entries of 90 and 90 is the highest value, then LARGE(array,1), LARGE(array,2), and LARGE(array,3) all return 90. Each duplicate occupies its own rank position.

Consequently, if you want a list of unique top values only, combine LARGE with UNIQUE (Excel 365 only). For older versions, alternatively use a helper column to de-duplicate first.

Example 1: Return the 1st, 2nd, and 3rd Highest Values

The simplest use of LARGE is retrieving specific rank positions from a range. You change only the k argument to step through the rankings. This approach works for any dataset size and updates instantly when the source data changes.

1
Extract gold, silver, and bronze scores from a results table
A — Name
B — Score
k
LARGE result
SMALL result
Rank label
Sarah
87
1
94
52
🥇 Gold
James
94
2
87
61
🥈 Silver
Ellen
52
3
78
78
🥉 Bronze
Marcus
61
Priya
78
Store the k value in column D (1, 2, 3) and use a cell reference. This way changing D2 updates the result immediately. =LARGE($B$2:$B$6, D2) → 94 when D2=1, 87 when D2=2, 78 when D2=3 =SMALL($B$2:$B$6, D2) → 52 when D2=1, 61 when D2=2, 78 when D2=3 Hardcoded k values — also valid: =LARGE($B$2:$B$6, 1) → 94 (maximum) =LARGE($B$2:$B$6, 2) → 87 (second highest) =LARGE($B$2:$B$6, 3) → 78 (third highest)
LARGE(array, 1) is equivalent to MAX. SMALL(array, 1) is equivalent to MIN. The real power, however, lies in retrieving the 2nd, 3rd, and Nth values — something MAX and MIN cannot do.

Example 2: Build a Dynamic Top-N Leaderboard

Copying LARGE down a column with k values 1, 2, 3 produces a live leaderboard. Furthermore, locking the array reference with $ signs ensures every formula looks at the same source range. The leaderboard refreshes automatically whenever the underlying data changes.

2
Build a top-5 leaderboard that updates automatically — no sorting needed
E — Rank
F — Top score
G — Bottom score
Formula in F
1
94
52
=LARGE($B$2:$B$100,E2)
2
87
61
=LARGE($B$2:$B$100,E3)
3
78
78
=LARGE($B$2:$B$100,E4)
Place rank numbers 1–5 in column E. Lock the data range with $ so copying down does not shift it. F2 formula, copied to F3:F6: =LARGE($B$2:$B$100, E2) Equivalent bottom-5 leaderboard in column G: Copy SMALL down with the same rank numbers 1–5 in column E. =SMALL($B$2:$B$100, E2) Excel 365 — spill a top-5 list in one formula using SEQUENCE: Enter in a single cell; the results spill automatically into 5 rows. =LARGE($B$2:$B$100, SEQUENCE(5))
Use ROW() to generate k automatically: Instead of manually typing 1, 2, 3 in column E, use =LARGE($B$2:$B$100, ROW()-1) where the formula starts in row 2. Each row automatically uses the correct k value. This approach removes the need for a helper column entirely.

Example 3: SUM and AVERAGE the Top N Values

Combining LARGE with SUM or AVERAGE gives you aggregate statistics based on rank rather than the full dataset. For instance, you might need to sum the top 5 sales only. Alternatively, you could average the three best monthly figures, or calculate a bonus from the top quarter of results.

3
Sum and average the top 5 sales without sorting the dataset
Sum the top 5 values — wrap LARGE in SUMPRODUCT with an array of k values: LARGE returns all five values as an array; SUMPRODUCT adds them. =SUMPRODUCT(LARGE(B2:B100, {1,2,3,4,5})) Cleaner with SEQUENCE — works for any N stored in cell D1: =SUMPRODUCT(LARGE(B2:B100, SEQUENCE(D1))) Alternative using SUM — array entered in Excel 365 (spills automatically): or Ctrl+Shift+Enter in older versions. =SUM(LARGE(B2:B100, SEQUENCE(D1))) Average the top 5 values — divide sum by N: =SUMPRODUCT(LARGE(B2:B100, {1,2,3,4,5})) / 5 Sum the BOTTOM 5 values — same structure with SMALL: =SUMPRODUCT(SMALL(B2:B100, {1,2,3,4,5})) Sum top 10% of values (dynamic — adjusts as dataset grows): COUNTA counts non-empty cells; INT rounds down to a whole number of rows. =SUMPRODUCT(LARGE(B2:B100, SEQUENCE(INT(COUNTA(B2:B100) * 0.1))))
SUMPRODUCT with LARGE is the most compatible approach across all Excel versions. In Excel 365, SUM(LARGE(array, SEQUENCE(N))) is cleaner and spills the result dynamically. Both produce identical totals.

Example 4: Find the Name Associated with the Nth Largest Value

LARGE returns a value, not a name. To find who achieved the top score, combine LARGE with INDEX and MATCH. LARGE retrieves the target value. MATCH then locates that value in the original data column. INDEX subsequently returns the corresponding name from an adjacent column.

Handling Duplicate Values in Name Lookups

When two people share the same score, MATCH always returns the first match. Consequently, the second person's name never appears. For datasets with duplicates, add a tiebreaker column — for instance, combining score with a row number. Alternatively, use FILTER in Excel 365 for a more robust result.

4
Return the name of the 1st, 2nd, and 3rd top performers
A — Name
B — Score
Rank k
Top performer
Sarah
87
1
James (94)
James
94
2
Sarah (87)
Priya
78
3
Priya (78)
Find the name of the Nth top scorer. LARGE gets the target score; MATCH locates it in column B; INDEX retrieves the name from column A. =INDEX($A$2:$A$100, MATCH(LARGE($B$2:$B$100, D2), $B$2:$B$100, 0)) Excel 365 — use XLOOKUP instead of INDEX/MATCH (cleaner syntax): =XLOOKUP(LARGE($B$2:$B$100, D2), $B$2:$B$100, $A$2:$A$100) Display name AND score together as a combined label: =INDEX($A$2:$A$100, MATCH(LARGE($B$2:$B$100,D2),$B$2:$B$100,0)) & " (" & LARGE($B$2:$B$100,D2) & ")"
Duplicate scores break MATCH: When two rows share the same value, MATCH always returns the first match. To correctly identify the second person with the same score, either use FILTER in Excel 365, or add a small unique tie-break (for example, ROW()/10000) to each score before ranking.

Example 5: Conditional Top-N with LARGE and IF

Standard LARGE searches the entire array. Sometimes, however, you need the top value within a specific category only — for example, the highest sales in the "East" region. Wrapping IF inside LARGE filters the array before ranking.

5
Find the top 3 sales in the East region — conditional ranking
Column A = Region, column B = Sales. LARGE with IF — filter the array to East rows only, then rank within them. In Excel 365, enter normally. In older versions, press Ctrl+Shift+Enter. =LARGE(IF(A2:A100="East", B2:B100), 1) → highest East region sale (non-East rows return FALSE, which LARGE ignores) =LARGE(IF(A2:A100="East", B2:B100), 2) → second-highest East region sale Excel 365 — use FILTER for a cleaner conditional approach: FILTER creates the East-only array first; LARGE then ranks within it. =LARGE(FILTER(B2:B100, A2:A100="East"), 1) Multiple conditions — top sales where Region is East AND Month is April: Multiply the two Boolean arrays before passing to LARGE. =LARGE(IF((A2:A100="East")*(C2:C100="April"), B2:B100), 1)
LARGE ignores FALSE values in its array. Consequently, IF(A:A="East", B:B) passes numbers for East rows and FALSE for all others — LARGE skips the FALSE values and ranks only the genuine East sales.

Example 6: Dynamic Top-N List with FILTER and LARGE

In Excel 365, LARGE combines with FILTER and SEQUENCE to create a self-updating top-N dashboard. The number of rows to display is stored in a single cell. Changing that number instantly rebuilds the entire leaderboard — no formula editing required.

Spilling a Ranked List in One Formula

SEQUENCE generates the k values automatically. LARGE uses those values to retrieve each ranked score. FILTER then extracts the matching rows from the full dataset. All three formulas spill their results into as many rows as needed without any helper columns.

6
Build a one-cell top-N leaderboard that spills automatically — Excel 365
N is stored in cell G1 (e.g. 5 for top 5, 10 for top 10). Step 1 — spill the top N values in one formula: =LARGE($B$2:$B$100, SEQUENCE(G1)) Returns a vertical array of G1 values — spills automatically Step 2 — spill the full rows for those top N scores using FILTER: FILTER checks if each score is >= the Nth largest. FILTER(A2:C100, B2:B100>=LARGE(B2:B100, G1)) Returns all columns for rows where the score is in the top N Step 3 — sort the FILTER result by score descending: Combine SORT with FILTER for a clean, ranked output table. SORT( FILTER(A2:C100, B2:B100>=LARGE(B2:B100, G1)), 2, -1) Second argument (2) sorts by column B (score); -1 means descending
Ties with FILTER and LARGE: If the Nth score appears more than once, FILTER returns all matching rows — which may give you more rows than N. For example, if N=3 and the 3rd and 4th both score 78, you get 4 rows. This is usually the desired behaviour for tie situations, but worth noting in advance.

How to Fix Common LARGE and SMALL Errors

#NUM! error

Either k exceeds the number of values in the array, or the array contains no numeric values at all. Check the count of numbers with COUNTA or COUNT. Then confirm k is within that range. Wrapping the formula in IFERROR produces a blank or dash instead of an error for out-of-range k values.

All results are the same value

All values in the dataset are identical, or the array argument is not referencing the correct range. Check the formula's array argument first. Alternatively, the dataset may genuinely contain duplicates — in that case, every rank position returns the same number, which is correct behaviour.

Name lookup returns the wrong person

When combining LARGE with INDEX/MATCH, duplicate scores cause MATCH to return the first matching row every time. As a result, the second person sharing a score is never shown. Resolve this in Excel 365 by switching to FILTER. In older versions, add a tiny unique offset — for instance ROW()/100000 — to create unique values without affecting the displayed data.

LARGE and SMALL ignore text and blanks: Both functions skip non-numeric values silently. Consequently, if your range contains text entries that should be numbers — for example, "94" stored as text — they are excluded from the ranking. Run ISNUMBER across the column to check for numbers-as-text before using LARGE or SMALL.

Frequently Asked Questions

  • What is the difference between LARGE and MAX?+
    MAX always returns the single highest value. LARGE, by contrast, returns any ranked value — LARGE(array, 1) equals MAX, LARGE(array, 2) gives the second highest, and so on. Use MAX for simplicity when you only need the top value. Use LARGE when you need the 2nd, 3rd, or any Nth highest value, or when building a ranked list.
  • How do LARGE and SMALL handle duplicates?+
    Each duplicate value occupies its own rank position. For example, if three rows each contain 90 and 90 is the highest value, then LARGE(array,1), LARGE(array,2), and LARGE(array,3) all return 90. This matches how competition scoring works. However, when combining LARGE with INDEX/MATCH to find names, duplicates mean MATCH always returns the first matching row — which may not be what you expect.
  • How do I sum the top N values in Excel?+
    Use SUMPRODUCT with LARGE and an array of k values: =SUMPRODUCT(LARGE(B2:B100, {1,2,3,4,5})). This sums the top 5 values. For a variable N stored in a cell, use SEQUENCE: =SUMPRODUCT(LARGE(B2:B100, SEQUENCE(D1))) where D1 holds the number of values to sum. In Excel 365, SUM(LARGE(B2:B100, SEQUENCE(D1))) also works directly.

More Questions About LARGE and SMALL

  • Can I use LARGE with a condition to find the top value in a category?+
    Yes. Wrap IF inside LARGE to filter the array before ranking: =LARGE(IF(A2:A100="East", B2:B100), 1). In older Excel versions, confirm with Ctrl+Shift+Enter instead of Enter. In Excel 365, FILTER provides a cleaner alternative: =LARGE(FILTER(B2:B100, A2:A100="East"), 1). Both approaches return the highest value that meets the condition.
  • What happens if k is larger than the number of values in the array?+
    Excel returns a #NUM! error. For example, LARGE(A2:A10, 11) on a range with only 10 values causes #NUM! because there is no 11th value. To prevent this, wrap the formula in IFERROR: =IFERROR(LARGE(A2:A100, k), ""). Alternatively, validate k against the count of values using COUNT(A2:A100) before passing it to LARGE.
  • Which Excel versions support LARGE and SMALL?+
    Both functions are available in every Excel version from Excel 2000 onwards, including Microsoft 365, Excel 2024, 2021, 2019, 2016, and all earlier versions. They also work in Excel for the web and Google Sheets. The SEQUENCE and FILTER combinations shown in Example 6, however, require Microsoft 365 or Excel 2021.