DROP Function

Excel Functions › Lookup & Reference

Excel 365 Excel 2024+ Dynamic Array

The Excel DROP function returns an array with rows or columns sliced off the edges — the mirror image of TAKE. Positive counts remove from the start, negatives remove from the end, so =DROP(data, 1) peels off a header row and =DROP(data, -1) discards a totals row at the bottom. It’s the tidiest way to feed clean data into other dynamic array functions.


Quick answer: to return a table without its header row:
=DROP(A1:C7, 1) // everything except row 1
The first argument is the array, the second is how many rows to remove. Use a negative number to remove from the bottom instead.

Syntax

=DROP(array, rows, [columns])
ArgumentDescription
arrayRequiredThe range or array to slice from.
rowsRequired*How many rows to remove. Positive = from the top, negative = from the bottom. Omit (leave the comma) to remove none.
columnsOptionalHow many columns to remove. Positive = from the left, negative = from the right. Omitted = none.

*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.

Remove header rows, totals rows, and edge columns

The export in A1:C5 arrives with a header row baked in. One DROP in E1 returns just the data:

ABCEFG
1RepRegionSalesAveryNorth9,400
2AveryNorth9,400BlakeSouth8,750
3BlakeSouth8,750CaseyEast7,900
4CaseyEast7,900DevonWest7,300
5DevonWest7,300
=DROP(A1:C5, 1) // removes the header row - spills into E1:G4

Negative counts trim from the far edge — perfect for system exports that append a totals row, or for cutting an unwanted ID column:

=DROP(A1:C20, -1) // everything except the last row (the totals line)
=DROP(A1:C20, 1, 1) // remove the header row AND the first column

Removing more rows than the array has leaves nothing to return — that’s a #CALC! error, unlike TAKE which just caps at the data size.

Try it: interactive DROP demo

Live demo

Slice the export table live: choose how many rows and columns to remove (negatives trim from the end).

DROP in dynamic-array pipelines

DROP’s signature move is cleaning data inside a formula so the rest of the pipeline never sees the junk:

=SORT(DROP(A1:C50, 1), 3, -1) // sort the data without dragging the header into it
=UNIQUE(DROP(A1:A50, 1)) // unique values, header excluded

Combine positive and negative trims to cut both ends of a messy export at once:

=DROP(DROP(A1:C50, 2), -1) // remove 2 banner rows from the top and a totals row from the bottom

And the classic pairing — TAKE for the header, DROP for the body — lets you process each part separately, then reassemble with VSTACK:

=VSTACK(TAKE(A1:C50, 1), SORT(DROP(A1:C50, 1), 3, -1)) // header stays put, body gets sorted

Excel 365 tip: for trimming blank outer rows and columns rather than a fixed count, see TRIMRANGE.

Errors & common pitfalls

#CALC! — nothing left. Dropping as many (or more) rows or columns as the array contains returns an empty array. If the row count is dynamic — say COUNTA-driven — guard against the data being shorter than the trim.

#SPILL! — the landing zone isn’t empty. The trimmed array still needs room to spill. Clear the blocking cells.

#NAME? — older Excel. DROP requires Microsoft 365 or Excel 2024+. Earlier versions don’t recognize the name; the old-school workaround is OFFSET or INDEX arithmetic.

Pitfall: DROP removes by position, not by content. =DROP(data, -1) removes the last row whether or not it’s actually a totals row. If the export sometimes omits totals, you’ll silently lose a data row — test the layout first.

Pitfall: zero is fine here, unlike TAKE. =DROP(data, 0) just returns the whole array — handy when the trim count is calculated. It’s dropping everything that errors, not dropping nothing.

Practice workbook

📊
Download the free DROP practice workbook
Every example on this page, ready to open in Excel — plus practice challenges with answers on a separate tab. No sign-up required.

Frequently asked questions

What's the difference between DROP and TAKE?
Mirror images. DROP removes rows/columns from an edge and returns the rest; TAKE keeps rows/columns from an edge and discards the rest. =DROP(data, 1) and =TAKE(data, -(ROWS(data)-1)) are the same thing — DROP just says it better.
How do I remove a header row from a range?
=DROP(A1:C100, 1). The 1 removes one row from the top; the rest of the table spills out below your formula. Add a third argument to trim columns too.
How do I remove the last row (a totals row) with DROP?
Use a negative count: =DROP(A1:C100, -1) removes one row from the bottom. -2 removes two, and =DROP(data, 1, -1) trims the header row and the rightmost column in one go.
Why does DROP return #CALC!?
You removed everything. Dropping 5 rows from a 5-row array (or more) leaves an empty array, which Excel reports as #CALC!. Note the asymmetry: TAKE caps at the array size, DROP errors past it.
Which Excel versions support DROP?
Excel for Microsoft 365, Excel 2024 and later, and Excel for the web. Excel 2021 and earlier show #NAME? - use OFFSET or INDEX arithmetic there instead.

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

Related functions: TAKE · TRIMRANGE · CHOOSEROWS · VSTACK · EXPAND