How to Use the TAKE and DROP Functions in Microsoft Excel to Extract Table Subsets

Extracting specific subsets of data from larger tables traditionally required cumbersome combinations of INDEX, OFFSET, MATCH, and array slicing formulas. In modern versions of Microsoft Excel (Microsoft 365 and Excel 2024), dynamic array calculations are simplified through the native TAKE and DROP functions. These complementary formulas allow data analysts and accountants to slice rows and columns from arrays using clean, readable syntax that recalculates dynamically as source data changes.

Syntax and Behaviour of the TAKE Function

The TAKE function retrieves a specified number of contiguous rows or columns from the beginning or end of an array. Its syntax is structured as follows:

=TAKE(array, rows, [columns])
  • array: The source range, table, or array calculation from which elements are extracted.
  • rows: An integer specifying how many rows to take. A positive integer extracts from the top; a negative integer extracts from the bottom.
  • [columns]: An optional integer specifying how many columns to take. A positive integer extracts from the left; a negative integer extracts from the right. If omitted, all columns are preserved.

Practical Applications of the TAKE Function

The versatility of TAKE becomes apparent when paired with sorting and aggregation functions:

  • Extracting Top N Performers: Combining TAKE with SORT creates a dynamic leaderboard. For example, to isolate the top 5 sales figures from a data range in columns A to C sorted by column B descending:
    =TAKE(SORT(A2:C100, 2, -1), 5)
  • Retrieving the Most Recent Entry: To return the final 3 transactions recorded at the base of an ongoing ledger regardless of total row count:
    =TAKE(A2:D500, -3)
  • Isolating Trailing Columns: To extract only the final 2 columns of quarterly figures from an extensive annual table:
    =TAKE(A2:M50, , -2)

Syntax and Behaviour of the DROP Function

While TAKE specifies what to keep, the DROP function specifies what to exclude, returning all remaining elements. Its syntax mirrors TAKE:

=DROP(array, rows, [columns])
  • array: The source range or array to be trimmed.
  • rows: The number of rows to exclude. Positive integers drop from the top; negative integers drop from the bottom.
  • [columns]: An optional number of columns to exclude. Positive drops from the left; negative drops from the right.

Common Use Cases for the DROP Function

The DROP function eliminates boilerplate layout issues when manipulating dynamic tables and external data feeds:

  • Removing Table Headers Dynamically: When referencing a formatted Excel Table that returns headers alongside data, you can exclude the top header row cleanly:
    =DROP(SalesTable[#All], 1)
  • Trimming Outliers or Totals: To process a dataset while stripping out summary rows positioned at the bottom of the worksheet:
    =DROP(A2:F50, -1)
  • Excluding Metadata Columns: To remove an internal database ID column located in column 1 while preserving all subsequent reporting fields:
    =DROP(A2:G100, , 1)

Combining TAKE and DROP for Precise Window Slicing

By nesting TAKE and DROP, you can extract any arbitrary intermediate block or page of data without relying on matrix coordinates. For example, to extract rows 11 to 20 from a 100-row table, drop the top 10 rows first, then take the next 10 rows from the remaining array:

=TAKE(DROP(A2:E100, 10), 10)

Because both functions natively support dynamic arrays, the output automatically spills into adjacent rows and columns, establishing an efficient, formula-driven reporting architecture that updates in real time whenever underlying records are edited.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.