The Excel TAKE function slices an array down to just its first — or last — rows and columns. Positive numbers count from the start, negatives count from the end, so =TAKE(data, 5) is the first five rows and =TAKE(data, -1) is the last row, no matter how long the data grows. Wrapped around SORT, it’s the cleanest top-N formula Excel has ever had.
Syntax
| Argument | Description | |
|---|---|---|
array | Required | The range or array to slice from. |
rows | Required* | How many rows to keep. Positive = from the top, negative = from the bottom. Omit (leave the comma) to keep all rows. |
columns | Optional | How many columns to keep. Positive = from the left, negative = from the right. Omitted = all columns. |
*At least one of rows / columns must be supplied.
Available in: Excel for Microsoft 365, Excel 2024+, and Excel for the web. Older versions show #NAME?. The result is a dynamic array that spills onto the sheet.
Keep the first rows — or the last
The sales table sits in A2:C6 (headers in row 1). One formula in E1 keeps the first three rows:
| A | B | C | E | F | G | ||
|---|---|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | Avery | North | 9,400 | |
| 2 | Avery | North | 9,400 | Blake | South | 8,750 | |
| 3 | Blake | South | 8,750 | Casey | East | 7,900 | |
| 4 | Casey | East | 7,900 | ||||
| 5 | Devon | West | 7,300 | ||||
| 6 | Ellis | North | 6,800 |
Negative counts work from the end, which is where TAKE gets really handy — “the most recent entry” in a log that grows daily:
Asking for more rows than exist is safe — =TAKE(A2:C6, 50) simply returns all 5 rows, no padding, no error.
Try it: interactive TAKE demo
Slice the sales table live: set rows and columns (negatives count from the end) and watch the spill change.
Top-N lists and dynamic-array combos
TAKE was practically built to sit around SORT and SORTBY:
Grab headers from a spilled result, or trim a running total to the latest figures:
TAKE’s mirror image is DROP, which removes rows instead of keeping them — =DROP(data, 1) “everything but the header” is the classic. For picking specific rows or columns by position, see CHOOSEROWS and CHOOSECOLS.
Errors & common pitfalls
#CALC! — you asked for zero. rows or columns of 0 returns an empty array, which Excel can’t display. Watch for this when the count comes from a formula that can hit zero — guard it with MAX(1, n) or an IF.
#SPILL! — the landing zone isn’t empty. The sliced array needs blank cells to spill into. Clear whatever is blocking, or slice smaller.
#NAME? — older Excel. TAKE requires Microsoft 365 or Excel 2024+. In Excel 2021 and earlier the name isn’t recognized — the closest classic substitute is INDEX with row/column math.
Pitfall: TAKE doesn’t pick the biggest values — it picks the first rows. =TAKE(data, 5) on unsorted data is just “the top of the sheet.” For a real top-5, sort first: =TAKE(SORT(data, 3, -1), 5).
Pitfall: headers included in the array. If your range starts at row 1, TAKE counts the header as row one of the slice. Start the array at the first data row, or peel headers off with DROP first.
Practice workbook
Frequently asked questions
What's the difference between TAKE and DROP?
=TAKE(data, 3) keeps the first 3 rows; =DROP(data, 3) returns everything after them.How do I get the last row of a range with TAKE?
How do I build a top-5 list with TAKE?
What happens if I ask TAKE for more rows than the array has?
Which Excel versions support TAKE?
Can TAKE keep rows and columns at the same time?
Master functions like this in one day
This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.
See the Formulas & Functions Class