Excel TAKE and DROP Functions: Slice Arrays Cleanly from Either End
The TAKE and DROP functions give modern Excel users precise, readable control over array slicing without legacy INDEX/OFFSET gymnastics. Both work on any range or spilled array and return a dynamic spill that resizes as the source changes. TAKE returns a specified number of contiguous rows or columns from the start or end. DROP removes a specified number of rows or columns from the start or end and returns the remainder. These two are mirror images that simplify top‑N, latest N, header/footer removal, and viewport‑sized panels in dashboards. Microsoft’s reference defines the syntax as =TAKE(array, rows, [columns]) and =DROP(array, rows, [columns]), with positive values operating from the start and negative values from the end. If either rows or columns is zero, TAKE signals an empty array with #CALC!; if the array requested exceeds limits, Excel returns #NUM. Availability is Microsoft 365 and Excel for the web.
TAKE focuses the view. Set rows to a positive N to grab the first N records for “Top‑N” or preview tables. Set rows to a negative N to take the last N records for “latest entries”, rolling windows, or quality checks at the bottom of logs. If rows is omitted and columns provided, TAKE trims columns instead, with negative columns taking from the right. Practical examples include TAKE(SORT(A2:D500, 4, -1), 10) to return top 10 by column 4, or TAKE(Sales, -7) to show the last seven rows of a table named Sales. Tutorials highlight that rows and columns are optional but at least one must be specified, and that omitting one means “take all” in that dimension. This makes expressions like TAKE(Sales, , 3) a clean way to return all rows but only the first three columns.
DROP removes what you don’t want and leaves the rest. Use a positive rows value to skip header blocks or warm‑up periods, e.g., DROP(A1:D100, 1) to remove a header row while keeping all columns. Use negative rows to trim footers or totals at the bottom, e.g., DROP(A1:D100, -2) to remove two trailing summary rows. Similarly, columns can be dropped from the left with positive values or from the right with negative values. A frequent pattern is DROP(Data, 1, 1) to remove both the first row and first column when the source includes labels that shouldn’t be repeated in a downstream panel. Documentation and examples show that zero values for rows or columns are not allowed in DROP, and that overly aggressive arguments in some builds can return #CALC! to indicate an empty result or #NUM if the array exceeds limits.
In real workbooks, TAKE and DROP are best used as the first or last stage in a small pipeline. Before a pivot or chart, TAKE limits a table to a visible window so chart ranges don’t balloon. After a FILTER, TAKE can cap the number of matches displayed for compact cards. Before an export, DROP neatly removes headers or footers that would confuse a receiving system. Because both functions are non‑volatile and easy to read, they reduce maintenance compared with OFFSET or nested INDEX, and they invite composition with other dynamic arrays.
Combining with SORT and FILTER unlocks common analytics patterns. For leaders and laggards, take a dataset, sort by a metric descending, then TAKE the first N for a Top‑N panel. For “latest activity”, FILTER to a category, sort by date descending, and TAKE the last N with negative rows. Coefficient’s and XelPlus’s tutorials showcase such blends, including grabbing the last seven days or the top five campaigns with one short, readable formula. This composability means your logic is visible in the cell, not scattered across hidden helpers.
These slicers also pair elegantly with other array shapers. Use CHOOSEROWS or CHOOSECOLS when you need specific indices rather than contiguous blocks; combine them with TAKE to first reduce and then select. Use WRAPROWS or WRAPCOLS after TAKE to present a trimmed list as a multi‑row or multi‑column panel for dashboards. If a downstream consumer expects a fixed rectangle, follow with EXPAND to pad the result to a standard size, filling extras with “” or “-” for clean presentation. Each step is a small, declarative function, and the final formula remains approachable to collaborators.
Error handling and edge cases are predictable. A #SPILL means content blocks the output area; clear cells or remove merges. A #CALC! “empty array” typically arises when TAKE or DROP’s arguments zero out the result; reconsider the N or add a guard like IF(ROWS(Data)=0, “”, TAKE(…)). For very large arrays, #NUM signals that the requested spill exceeds sheet limits; reduce scope with FILTER or operate on table columns instead of whole columns. Microsoft’s TAKE page explicitly calls out #CALC! for zero arguments and #NUM for excessive outputs; common guides for DROP add that extreme trims can produce empty arrays and that some formatting, like dates, may render as serials depending on how the result is used.
Compared with legacy techniques, the benefits are tangible. OFFSET is volatile and can slow models, while nested INDEX/COUNTA requires mental gymnastics that hide intent. TAKE and DROP express a simple idea directly: “give me the first N”, “give me the last N”, or “skip the first/last N”. In dashboards, that clarity matters because one well‑named formula cell becomes the contract for a module. In exports, it prevents off‑by‑one errors that creep in with manual trimming. In analysis, it speeds iteration by making reshaping operations obvious and single‑purpose.
A practical recipe to adopt is this: filter or sort first, then TAKE or DROP to size, then optionally choose columns and present. For example, =TAKE(SORTBY(FILTER(Data, Data[Region]=H2), Data[Revenue], -1), 10) yields the top ten rows for a selected region; =DROP(Data, 1) removes the header row before a VSTACK consolidation; =TAKE(Data, , 4) creates a compact view of just the first four columns for a side panel. Each of these reads like a sentence, and because they’re dynamic arrays, the outputs stay synchronized with source changes.
Once these become second nature, you will find fewer reasons to reach for helper sheets or Power Query for simple slices. Reserve heavier tools for merges and complex transforms, and keep TAKE and DROP in your day‑to‑day toolbox for fast, reliable shaping. With Microsoft 365’s continued investment in dynamic arrays, these functions sit at the heart of modern, maintainable Excel models that calculate quickly, explain themselves, and scale with your data.

