CHOOSECOLS Function

Excel Functions › Lookup & Reference

Excel 365 / 2024+ Dynamic Array

The Excel CHOOSECOLS function returns just the columns you ask for from a range or array — in any order, as many times as you like. One formula extracts a clean report from a wide table, and negative numbers count from the end, so -1 always means the last column. Available in Excel 365 and Excel 2024+.


Quick answer: to pull just the 2nd and 4th columns (Customer and Amount) out of a four-column table:
=CHOOSECOLS(A2:D6, 2, 4)
The result spills as a two-column array. =CHOOSECOLS(A2:D6, -1) returns the last column — whatever width the table grows to.

Syntax

=CHOOSECOLS(array, col_num1, [col_num2], …)
ArgumentDescription
arrayRequiredThe range or array to take columns from.
col_num1RequiredThe first column to return. 1 = leftmost column of the array; negative numbers count from the end (-1 = last column).
col_num2, …OptionalMore columns, in the order you want them back. Repeats are allowed.

Available in: Excel for Microsoft 365, Excel 2024+, and Excel for the web. Older versions show #NAME?. The row-wise twin is CHOOSEROWS.

Pick, reorder, and repeat columns

The orders table below sits in A1:D6. To build a two-column summary of customers and amounts — skipping the ID and region — ask for columns 2 and 4:

ABCD
1Order IDCustomerRegionAmount
21001Acme CorpWest$1,850
31002Bolt LLCEast$920
41003Cedar IncWest$2,400
51004Delta CoNorth$1,310
61005Echo LtdWest$480
=CHOOSECOLS(A2:D6, 2, 4) // Customer + Amount, spilled side by side

The column numbers also control order, so the same function rearranges a table without touching the source:

=CHOOSECOLS(A2:D6, 4, 2) // Amount first, then Customer

Negative numbers count from the right edge — perfect when the table’s width changes but "the last column" is always the one you want:

=CHOOSECOLS(A2:D6, 1, -1) // first and last columns

Try it: interactive CHOOSECOLS demo

Live demo

Tick the columns you want from the orders table above — then flip the notation switch to see the same pick written with negative numbers counted from the end.




The power move: shape other functions’ results

CHOOSECOLS rarely works alone. Its everyday job is trimming the output of other dynamic array functions — FILTER returns whole rows, and CHOOSECOLS keeps only the columns the report needs:

=CHOOSECOLS(FILTER(A2:D6, C2:C6="West"), 2, 4) // West orders -> just Customer + Amount

The same pattern shapes SORT, UNIQUE, or an XLOOKUP that returns multiple columns. Before Excel 365 you needed INDEX with array constants to do any of this:

=INDEX(A2:D6, SEQUENCE(ROWS(A2:D6)), {2,4}) // the old way - CHOOSECOLS reads far better

Columns vs rows: CHOOSECOLS picks columns by number; CHOOSEROWS picks rows; FILTER picks rows by criteria. Need "the Amount column for West orders"? FILTER for the rows, CHOOSECOLS for the columns.

Errors & common pitfalls

#VALUE! — column number out of range. Asking for column 5 (or -5) of a four-column array, or using 0, returns #VALUE!. Numbers must be between 1 and the column count, or -1 to minus the column count.

#SPILL! — the landing zone isn’t empty. The result needs as many blank cells as it spills into. Clear whatever blocks the range, or move the formula.

#NAME? — older Excel. CHOOSECOLS needs Excel 365 or Excel 2024+. In older versions use INDEX with an array constant, or restructure the data.

Pitfall: don’t confuse it with CHOOSE. CHOOSE picks one value from a list of arguments; CHOOSECOLS picks columns from one array. The names are cousins, the jobs aren’t.

Pitfall: column numbers are positions in the array, not sheet letters. If your array starts at column C, then col_num 1 means column C, not column A.

Practice workbook

📊
Download the free CHOOSECOLS 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 do negative column numbers do in CHOOSECOLS?
They count from the end of the array: -1 is the last column, -2 the second-to-last. =CHOOSECOLS(data, -1) always returns the final column even when the table grows wider.
Which Excel versions have CHOOSECOLS?
Excel for Microsoft 365, Excel for the web, and the perpetual Excel 2024 or later. Excel 2021 and older show #NAME?. The compatible fallback is INDEX with an array constant of column numbers.
Can CHOOSECOLS reorder or duplicate columns?
Yes. Columns come back in the order you list them, and you can list the same column twice: =CHOOSECOLS(data, 4, 2, 2) returns the 4th column followed by two copies of the 2nd.
What's the difference between CHOOSECOLS and FILTER?
They cut in different directions. FILTER keeps rows that meet criteria; CHOOSECOLS keeps columns by position. They nest beautifully: FILTER for the rows you want, CHOOSECOLS for the columns.
How do I pick columns by header name instead of number?
Combine with XMATCH: =CHOOSECOLS(A2:D6, XMATCH("Amount", A1:D1)) finds the column number from the header row, so the formula survives column moves.

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: CHOOSEROWS · FILTER · CHOOSE · INDEX · XMATCH