How to Find Lowest N Values in Excel
Learn multiple Excel methods to find the lowest n values with step-by-step examples, practical business scenarios, and advanced tips.
How to Find Lowest N Values in Excel
Why This Task Matters in Excel
In virtually every data-driven role—finance, operations, sales, HR, engineering—you constantly have to identify the “bottom performers,” the cheapest suppliers, the earliest delivery dates, or the lowest risk scores. Spotting the lowest N values in a list is the fastest way to:
- Prioritize cost-cutting by flagging the least expensive options.
- Detect underperforming sales reps before quarterly reviews.
- Pinpoint the most critical support tickets that have the shortest service-level windows.
- Isolate the lowest sensor readings in a quality-control dataset to diagnose production issues.
Excel is the de-facto analysis tool for these tasks because it stores, calculates, and visualizes data in one place. Using formulas like SMALL, SORT, FILTER, and combinations with SEQUENCE, you can surface the bottom values instantly—even when the underlying data refreshes hourly from Power Query, a database connection, or a copied-in CSV.
Failure to master this deceptively simple technique can have real business consequences. You might overlook low inventory items, misallocate marketing budget to already optimal channels, or ignore a supplier’s bargain quote. Worse, manual sorting every time the data updates introduces human error and wastes hours each month. Knowing how to automate “show me the lowest five” becomes a gateway skill that ties directly into conditional formatting, dynamic dashboards, and VBA or Power Automate workflows.
Finally, grabbing the lowest N seamlessly connects to other analytical skills—ranking, percentiles, outlier detection, and scenario analysis. Understand this concept once, and you can flip it around to find highest N, nth percentiles, or thresholds for alerts. In other words, learning to extract the lowest N values is a foundation for higher-level data storytelling in Excel.
Best Excel Approach
The single most versatile method for pulling the lowest N values is a dynamic-array formula that combines SMALL with SEQUENCE. SMALL returns the nth-smallest value; SEQUENCE generates the series [1…N] automatically. When wrapped in a single formula, the result spills the entire list of N lowest values without helper columns or dragging:
=SMALL([DataRange], SEQUENCE(N))
Why is this the best approach?
- Dynamic: The result “spills” into adjacent cells and resizes when N changes or when more rows are added to the data range.
- Minimal Maintenance: One formula, no copying down.
- Compatibility: Works in Microsoft 365, Excel 2021, Excel for Web, and Excel for Mac (current versions).
- Clarity: The logic—“give me the nth-smallest for n equal to 1 through N”—is intuitive and easy to audit.
When would you choose alternatives?
- If you must return additional columns (e.g., entire rows) linked to the lowest N, SORT + INDEX/MATCH or SORTBY + TAKE may be cleaner.
- In non-dynamic-array versions (Excel 2016 or earlier), you need a legacy array formula with SMALL and ROW functions.
- PivotTables or Power Query may suit huge datasets where formulas slow down workbooks.
Syntax Breakdown
- [DataRange] – The numeric range you’re evaluating, such as [B2:B101].
- N – A numeric constant or cell reference indicating how many lowest values to return.
- SEQUENCE(N) – Generates an array [1,2,3,…,N] that feeds SMALL’s k argument.
=SMALL([B2:B101], SEQUENCE(5))
The above spills the five smallest values from [B2:B101] into the next five cells vertically.
Alternative Dynamic Approach
=SORT(TAKE(SORT([DataRange],1,1),N),1,1)
This uses SORT to rank ascending, TAKE to limit to N rows, and a second SORT (optional) to ensure the final list remains ascending. It excels when you want to tack on adjacent columns with the same TAKE technique, e.g., TAKE(SORT([A2:C101],2,1),N) to keep IDs and names alongside the metric.
Parameters and Inputs
Understanding inputs is half the battle.
-
Required
– DataRange: Must be a single-column numeric range. Treat blank cells as zeros unless you explicitly filter them out.
– N: Positive integer. If N is zero or negative, SMALL returns #NUM!. -
Optional Enhancements
– CriteriaRange & CriteriaValue: Add IF or FILTER wrappers when you only want the lowest N that match a condition (e.g., a region equals \"West\").
– Spill Target: Leave enough blank cells below or to the side so the result array can expand without #SPILL! errors. -
Data Prep
– Remove text, error, or non-numeric values unless you intentionally want them ignored.
– Convert raw data coming from CSV imports into numbers—watch out for numbers stored as text. -
Edge Cases
– If N exceeds the count of numeric entries, SMALL returns #NUM!. Use MIN(N,COUNT(DataRange)) or IFERROR to handle gracefully.
– Duplicate lowest values: SMALL will still return them; your results may include ties.
Step-by-Step Examples
Example 1: Basic Scenario—Find the 3 Cheapest Products
Imagine a small price list in [B2:B11]. You want the three lowest prices.
- Input your prices:
B2:B11: 12.99, 9.50, 17.80, 21.95, 8.30, 14.20, 8.30, 19.99, 10.00, 13.49
- In D2 (or any empty cell), type:
=SMALL([B2:B11], SEQUENCE(3))
- Press Enter. Excel spills downward, showing:
- 8.30
- 8.30
- 9.50
Why it works: SEQUENCE(3) feeds SMALL with [1,2,3], so you get the 1st, 2nd, and 3rd smallest numbers.
Troubleshooting
- If you see #NUM! below the third result, you accidentally typed 4 in SEQUENCE.
- #SPILL! usually means cells underneath contain data. Clear or move them.
Variations
- Replace 3 with a cell reference [E1] so end users decide how many prices to show.
- Wrap inside TEXT to apply currency formatting automatically.
Example 2: Real-World Application—Lowest 10 Delivery Times by Supplier
You manage shipping data with 5,000 rows:
- Column A: SupplierID
- Column B: Route
- Column C: DeliveryHours
Goal: Extract the lowest ten delivery times and list the SupplierID beside each.
Steps:
- Select [A1:C5001] and name it tblDeliveries (Ctrl + T). A structured table automatically expands with new records.
- In a summary sheet, set cell G1 to the label “Top 10 Fastest Deliveries.”
- In G2, enter:
=SORTBY(FILTER(tblDeliveries[[SupplierID]:[DeliveryHours]], tblDeliveries[DeliveryHours]<>""), tblDeliveries[DeliveryHours], 1)
This spills all rows sorted by DeliveryHours ascending.
4. To keep only ten rows, wrap TAKE:
=TAKE(SORTBY(FILTER(tblDeliveries[[SupplierID]:[DeliveryHours]], tblDeliveries[DeliveryHours]<>""), tblDeliveries[DeliveryHours], 1), 10)
- Result: Two-column spill (SupplierID, DeliveryHours) listing the ten fastest deliveries.
Business Impact
- QA teams instantly see which suppliers meet strict SLAs.
- Management dashboard refreshes automatically as new shipment records arrive.
Performance Note
SORTBY is very efficient on tables up to about 100,000 rows. For millions of rows, consider pulling the aggregation into Power Query first, then pass the reduced set to Excel formulas.
Example 3: Advanced Technique—Lowest 5 Values per Category with Dynamic Array + LET
A marketing analyst must identify the lowest five customer acquisition costs (CAC) per campaign. Data layout:
- Column A: Campaign
- Column B: Channel
- Column C: CAC
Task: Build a single formula that, when filtered by campaign name, returns the five best CAC values.
- Set up a cell [F1] to select the campaign using Data Validation.
- In G2, enter the monster formula with LET for readability:
=LET(
camp, F1,
data, FILTER([C2:C5000], [A2:A5000]=camp),
TAKE(SORT(data,1,1),5)
)
Explanation
- The named variable camp equals the campaign selected in F1.
- data is the filtered list of CAC values that match camp.
- SORT orders ascending; TAKE grabs the first five.
Edge-Case Handling
- If fewer than five records exist, TAKE returns the existing number.
- Wrap the TAKE in IFERROR to display \"Not enough data\" otherwise.
Professional Tips
- Use LET to cache the filtered array; saves recalculation time.
- Nest inside CHOOSECOLS if you wish to return Channel information simultaneously.
Tips and Best Practices
- Reference cells for N: Hard-coding the value hides business logic. Store N in a visible input cell so stakeholders can adjust without editing formulas.
- Name your ranges or convert to Tables: Structured references like
Sales[Amount]are self-documenting and automatically expand. - Combine with conditional formatting: Shade the lowest N values directly in the source list so analysts see them in context.
- Control blanks and errors: Wrap the main formula with FILTER([Data], ISNUMBER([Data])) to ignore text or error entries that would break SMALL.
- Use LET to improve readability: Break complex logic into variables, enhancing auditing and recalculation speed.
- Cache volatile functions: If you rely on TODAY or RAND with SMALL, consider copying results as values before running massive reports.
Common Mistakes to Avoid
- Forgetting to reserve spill space: Any pre-existing data below the formula causes #SPILL! errors. Resolve by moving the formula or clearing obstructing cells.
- Mixing text with numbers: SMALL treats text as non-numeric, resulting in #NUM! when N exceeds the count of numeric items. Clean or convert data first.
- Ignoring duplicates: You might believe you are retrieving five unique lowest prices, but duplicates could repeat. Use UNIQUE around your data if distinct values are required.
- Hard-coding N larger than the dataset: When N is bigger than the available numeric entries, SMALL gives #NUM!. Wrap with IF(N>COUNT,COUNT,N) or use IFERROR to handle gracefully.
- Using volatile helper functions needlessly: ROW(INDIRECT(\"1:\"&N)) used to generate 1-N series recalculates excessively. SEQUENCE is faster and non-volatile.
Alternative Methods
Different tasks or Excel versions may steer you toward other techniques.
| Method | Excel Version | Pros | Cons |
|---|---|---|---|
| SMALL + SEQUENCE (Dynamic Array) | 365 / 2021 | One formula, spills, easiest | Not available pre-365 |
| SORTBY + TAKE | 365 / 2021 | Keeps accompanying columns; easy to read | Slightly slower with thousands of rows |
| AGGREGATE in helper column + sort | 2010+ | Works in older Excel; ignores errors | Requires helper column; manual copy down |
| PivotTable (Top 10 Filter) | All versions | Fast on large data; GUI-driven | Less dynamic; limited to 10 |
| Power Query (Keep Top Rows) | 2016+ | Handles millions of rows; no formulas | Refresh required; not real-time in worksheet |
When to switch:
- On shared files opened in Excel 2016 or earlier, build a helper column with
=SMALL.Rangeinside an array formula or use AGGREGATE. - For interactive dashboards with slicers, use dynamic arrays or PivotTables.
- Over 500,000 rows? Run the “Keep Top Rows” step in Power Query, then load back only the lowest N into the worksheet.
FAQ
When should I use this approach?
Use formula-based approaches when you need instant recalculation the moment the underlying data or N changes—ideal for dashboards, what-if analyses, and template workbooks.
Can this work across multiple sheets?
Yes. Qualify the DataRange with sheet names:
=SMALL('Raw Data'!B:B, SEQUENCE(Summary!A1))
You can also combine ranges using CHOOSECOLS + VSTACK if the same metric appears in identical columns across sheets.
What are the limitations?
Dynamic arrays require Microsoft 365 or Excel 2021. In older versions you must enter SMALL formulas as Ctrl + Shift + Enter arrays or rely on helper columns. Performance degrades if the formula references whole-column ranges with hundreds of thousands of rows.
How do I handle errors?
Wrap formulas in IFERROR:
=IFERROR(SMALL(Data, SEQUENCE(N)),"No data")
Alternatively, pre-filter using FILTER(Data, ISNUMBER(Data)) to exclude errors before SMALL evaluates.
Does this work in older Excel versions?
Yes, but without SEQUENCE. Instead use:
=SMALL(Data, ROW(INDIRECT("1:"&N)))
Confirm with Ctrl + Shift + Enter. Note that INDIRECT is volatile and slower.
What about performance with large datasets?
- Limit DataRange to the actual used area, not entire columns.
- Cache expensive filters in LET variables.
- Push heavy aggregation to Power Query or a database, then pull only summarized results back into Excel.
Conclusion
Identifying the lowest N values is a core analytical skill that saves time, drives better decisions, and underpins more sophisticated reporting techniques. Whether you use SMALL + SEQUENCE for a clean, modern solution or fall back on helper columns in legacy workbooks, you now have multiple tools to surface the “bottom N” instantly. Practice these methods with your own business data, integrate them into dashboards, and explore related concepts like percentiles and variance analysis to elevate your overall Excel proficiency.
Related Articles
How to Show the 10 Most Common Text Values in Excel
Learn multiple Excel methods to list the 10 most frequent text values—complete with step-by-step examples, business use cases, and expert tips.
How to Abbreviate Names Or Words in Excel
Learn multiple Excel methods to abbreviate names or words with step-by-step examples and practical applications.
How to Abbreviate State Names in Excel
Learn multiple Excel methods to abbreviate state names with step-by-step examples, professional tips, and real-world applications.