INDEX Function

Excel Functions › Lookup & Reference

All Excel versions Lookup & Reference

The Excel INDEX function returns the value at a given row and column of a range. On its own it answers "what's in row 3, column 2?" — but its real power appears when you pair it with MATCH to build lookups that are more flexible than VLOOKUP and work in every version of Excel.


Quick answer: to get the value in the 4th row and 3rd column of a range:
=INDEX(A2:C10, 4, 3)
Pair it with MATCH to find the row and column by value instead of by number: =INDEX(C2:C10, MATCH("Apr", A2:A10, 0)).

Syntax

=INDEX(array, row_num, [column_num])
ArgumentDescription
arrayRequiredThe range to pull a value from.
row_numRequiredWhich row of the array (1 = first row of the array, not of the worksheet). Use 0 to return the entire column.
column_numOptionalWhich column of the array. Required when the array has multiple columns. Use 0 to return the entire row.

Positions are relative to the array, not the sheet. In =INDEX(C5:E20, 1, 1), row 1 / column 1 means cell C5. INDEX also has a rarely-used "reference form" with multiple areas — you can ignore it for everyday work.

Get a value by position

The grid below holds monthly sales by region. The data area is B2:E7. To get the value in its 3rd row, 2nd column (Mar / South):

ABCDE
1MonthNorthSouthEastWest
2Jan$8,200$7,100$9,400$6,800
3Feb$7,900$7,600$8,800$7,200
4Mar$8,600$8,050$9,100$7,500
5Apr$9,100$8,400$9,700$8,100
6May$9,800$8,900$10,300$8,600
7Jun$10,400$9,300$10,900$9,000
=INDEX(B2:E7, 3, 2) // returns $8,050

For a one-column (or one-row) range, you only need one position number:

=INDEX(D2:D7, 4) // 4th value of the East column -> $9,700

Try it: interactive INDEX demo

Live demo

Pick a row and column number and watch INDEX walk the grid above.

Result:

INDEX + MATCH: the classic combo

Hard-coded positions are fragile. MATCH finds positions by value, and INDEX turns them into results. Find April's sales for the East region without typing any numbers:

=INDEX(B2:E7, MATCH("Apr", A2:A7, 0), MATCH("East", B1:E1, 0)) // returns $9,700

Why this combo earned its reputation:

CapabilityINDEX + MATCHVLOOKUP
Look left of the lookup columnYesNo
Survives inserted/deleted columnsYesNo
Two-way (row and column) lookupYesNo
Works in every Excel versionYesYes

In Excel 2021+/365, XLOOKUP does all of this with one function — but INDEX/MATCH remains the portable choice for files that must open everywhere.

Whole rows, columns, and dynamic ranges

Set row_num to 0 and INDEX returns the entire column — useful inside other functions:

=AVERAGE(INDEX(B2:E7, 0, MATCH("West", B1:E1, 0))) // average of the whole West column

INDEX actually returns a reference, not just a value, so it can serve as the endpoint of a range. This builds a range from A2 down to the nth row — a non-volatile alternative to OFFSET:

=SUM(A2:INDEX(A2:A100, D1)) // sums the first D1 values

Errors & common pitfalls

#REF! — position out of range. Asking for row 8 of a 6-row array. Check that row_num and column_num fit inside the array's actual size.

#VALUE! — missing column_num. If the array has multiple columns, INDEX needs both a row and a column number.

Pitfall: counting from the sheet instead of the array. Positions are relative to the array's top-left cell. If your array starts at C5, then row 1 means worksheet row 5.

Pitfall: swapping row and column. INDEX takes row first, then column — the opposite "feel" of cell addresses like C5. When a result looks transposed, this is why.

Practice workbook

📊
Download the free INDEX 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 is the difference between INDEX and VLOOKUP?
VLOOKUP searches for a value and returns from a fixed column number; INDEX returns whatever sits at a position you specify. Paired with MATCH, INDEX can look any direction, survives column changes, and does two-way lookups VLOOKUP can't.
Should I use INDEX/MATCH or XLOOKUP?
If everyone is on Excel 2021+/365, XLOOKUP is simpler and just as capable. INDEX/MATCH is the right choice when files must work in older Excel versions.
What does row_num = 0 do in INDEX?
It returns the entire column (and column_num 0 returns the entire row). In Excel 365 the result spills onto the sheet; in older versions, use it inside functions like SUM or AVERAGE.
Can INDEX return a range, not just a value?
Yes — INDEX returns a reference, so expressions like A2:INDEX(A2:A100, n) build valid ranges. This is a popular non-volatile alternative to OFFSET for dynamic ranges.
Why is INDEX better than OFFSET?
OFFSET is volatile: it recalculates on every worksheet change, slowing large files. INDEX achieves the same dynamic ranges without volatility.

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: MATCH · XLOOKUP · VLOOKUP · OFFSET · CHOOSE