INDEX MATCH With Multiple Criteria in Excel

โฑ๏ธ 3 min read ๐Ÿ“Š Excel

INDEX MATCH looks up a value based on one condition by default, but you can extend it to match on two or more columns at once by multiplying boolean comparisons together inside MATCH โ€” no helper column required.

Quick answer: =INDEX($D$2:$D$100, MATCH(1, ($A$2:$A$100=F2)*($B$2:$B$100=G2), 0)) returns the row from column D where column A matches F2 AND column B matches G2. In Excel 365 or 2021, press Enter as normal; in older versions, confirm with Ctrl+Shift+Enter or the formula returns an error. XLOOKUP can do the same thing with less syntax in Excel 365/2021, but INDEX MATCH still works in every Excel version back to 2007.

How does the boolean multiplication trick work?

Each comparison like $A$2:$A$100=F2 produces an array of TRUE/FALSE values, one per row; multiplying two such arrays together turns TRUE*TRUE into 1 and anything else into 0, so only the row where both conditions are true produces a 1 for MATCH to find.

=INDEX($D$2:$D$100,
    MATCH(1,
        ($A$2:$A$100=F2) * ($B$2:$B$100=G2),
    0)
)

F2 = "West", G2 = "Q3"
Row where column A = "West" AND column B = "Q3" โ†’ the only 1
MATCH(1, ...) finds that row's position
INDEX returns column D's value at that position

Add a third condition by multiplying in another comparison: ($A2:$A100=F2)*($B2:$B100=G2)*($C2:$C100=H2) โ€” the pattern extends to any number of criteria the same way.

Do I need Ctrl+Shift+Enter for this formula?

It depends on your Excel version: 365 and 2021 evaluate array math natively so a plain Enter works, but Excel 2019 and earlier require confirming the formula as an array formula or it returns the wrong result or an error.

Excel 365 / 2021: type the formula, press Enter โ€” done.
Dynamic arrays handle the multiplication automatically.

Excel 2019 and earlier: type the formula, then press
Ctrl+Shift+Enter instead of Enter. Excel wraps the formula
in curly braces { } to show it's an array formula. Typing
the braces yourself does not work โ€” they only appear when
you confirm with Ctrl+Shift+Enter.

See entering an array formula in Excel for the full Ctrl+Shift+Enter walkthrough if you're on a pre-365 version.

What happens if no row matches both criteria, or more than one does?

No match returns #N/A from MATCH, which you should wrap in IFERROR; multiple matches silently return only the first one MATCH finds, which is rarely what you want for one-to-many data.

Handle no match:
=IFERROR(
    INDEX($D$2:$D$100, MATCH(1, ($A$2:$A$100=F2)*($B$2:$B$100=G2), 0)),
    "Not found"
)

If your criteria combination can legitimately match more than one row (e.g. multiple transactions for the same customer and date), INDEX MATCH will only ever return the first one โ€” use SUMIFS or a pivot table instead when you actually need to aggregate, not just look up.

How does this compare to XLOOKUP for multiple criteria?

XLOOKUP uses the same boolean multiplication idea but with cleaner syntax and built-in error handling, and it's available if your organization is on Excel 365 or 2021.

XLOOKUP with multiple criteria:
=XLOOKUP(1, ($A$2:$A$100=F2)*($B$2:$B$100=G2), $D$2:$D$100, "Not found")

Same logic as INDEX/MATCH, but:
- No array-entry concerns (dynamic arrays handle it)
- Built-in "if not found" argument replaces IFERROR
- One function instead of two nested ones
Factor INDEX MATCH XLOOKUP
Excel version required 2007 onward 365 or 2021+
Array-entry needed pre-365? Yes (Ctrl+Shift+Enter) N/A โ€” not available pre-365
Not-found handling Wrap in IFERROR separately Built-in 4th argument
Functions involved Two (INDEX + MATCH) One

Both approaches use the exact same multiplication logic underneath โ€” XLOOKUP just packages it more cleanly. See INDEX MATCH explained for the single-criteria basics, XLOOKUP with multiple criteria for the full XLOOKUP version, and VLOOKUP with multiple criteria if you're stuck matching this pattern to a VLOOKUP-based sheet.

What are common mistakes with multi-criteria INDEX MATCH?

Most failures come from mismatched range sizes or forgetting the array-entry step on older Excel versions.

Pro Tip: If you need a two-way lookup instead of multi-criteria matching (row from one lookup, column from another, like a matrix of employees ร— months), that's a different pattern โ€” two nested MATCH calls, one for the row and one for the column, both fed into a single INDEX. See INDEX MATCH explained for that version.

โ† Back to Excel Tips