Excel Lookup Multiple Criteria: 5 Methods That Actually Work

Excel lookup multiple criteria the right way. XLOOKUP, INDEX-MATCH, SUMPRODUCT, FILTER, and VLOOKUP helper-column tactics with examples.

Microsoft ExcelBy Katherine LeeMay 21, 202618 min read
Excel Lookup Multiple Criteria: 5 Methods That Actually Work

Single-criterion lookups in Excel are easy. You hand VLOOKUP one value, it returns one row. Done. But the real spreadsheets — the ones that pay your salary — almost never work like that. You need the salary of someone named "Sarah" who works in the "Marketing" department. You need the price of SKU "AX-220" in the "EU" region.

You need the test score for student "Jordan" on exam "Midterm 2." Two criteria. Sometimes three. Sometimes four. And the moment you add that second filter, VLOOKUP falls apart, INDEX-MATCH starts demanding array formulas, and half the tutorials on the internet contradict each other.

So here is the truth, stripped of the jargon. Excel gives you five reliable ways to do a lookup with multiple criteria, and which one is best depends on three things: what version of Excel you have, whether you need one match or all matches, and whether you are returning text or summing numbers.

This guide walks through every method with the actual formula, the trade-offs, and the gotchas that waste an afternoon if nobody warns you. By the end you will know exactly which formula to reach for and why. The primary keyword we are after — excel lookup multiple criteria — covers a wider problem than most people realize, and the tools below solve every flavor of it.

Quick orientation before we dive in. If you are on Excel 365 or 2021, you have xlookup excel and the filter function excel function available — these are the modern champions. If you are stuck on Excel 2019, 2016, or earlier, you live in excel index match territory, possibly with Ctrl+Shift+Enter. If you only need to sum or count numeric values, excel sumproduct is shockingly elegant. And if you absolutely must use excel vlookup (corporate template lock-in is real), the helper-column trick still works. We will cover all five.

Method 1: XLOOKUP With Concatenated Criteria (The Modern Default)

If you are on Excel 365 or 2021, this is where you should start. XLOOKUP was built to fix everything wrong with VLOOKUP — it looks left, returns arrays, handles missing-value fallbacks, and (most importantly for our problem) accepts concatenated lookup arrays. That last part is the trick. You glue your criteria together with the ampersand operator and search for the combined value in a glued-together lookup range.

The pattern looks like this:

=XLOOKUP(criterion1 & criterion2, range1 & range2, return_range)

Concrete example. You have a table of employees in columns A (name), B (department), C (salary). You want Sarah's salary in the Marketing department. The formula becomes:

=XLOOKUP("Sarah" & "Marketing", A2:A500 & B2:B500, C2:C500)

That's it. No Ctrl+Shift+Enter dance. No helper column. No array formula syntax. Excel evaluates A2:A500 & B2:B500 as a dynamic array of concatenated strings, finds the first row where it equals "SarahMarketing", and returns the matching salary from C. Clean, fast, readable in three months when you come back to it.

A few refinements you'll want in real workbooks. First, wrap the lookup value in IFERROR or use XLOOKUP's fifth argument for a missing-value fallback: =XLOOKUP("Sarah"&"Marketing", A:A&B:B, C:C, "Not Found"). Second, mind your data types — if column B stores numbers and you concatenate with text criteria, Excel will coerce, but mismatched leading/trailing spaces will silently break the match. A quick TRIM wrapper around your lookup columns saves an hour of debugging.

For three or more criteria, just keep concatenating: =XLOOKUP(name&dept&year, A:A&B:B&C:C, D:D). The pattern scales as far as you need it to, though performance starts to matter past five or six criteria with full-column references.

Microsoft Excel - Microsoft Excel certification study resource

By the Numbers

880Monthly searches for excel lookup multiple criteria
5Reliable methods covered in this guide
2021+Excel version required for XLOOKUP and FILTER
CSERequired for legacy INDEX-MATCH arrays (Ctrl+Shift+Enter)

Method 2: INDEX-MATCH-MATCH (Works Everywhere)

Before XLOOKUP existed, INDEX-MATCH was the power user's lookup tool. It still is, and on Excel 2019 or earlier it is the most flexible option you have for multi-criteria lookups. The formula reads ugly the first time, but the logic underneath is clean.

The classic multi-criteria INDEX-MATCH uses an array formula:

=INDEX(return_range, MATCH(1, (col1=crit1)*(col2=crit2), 0))

What is happening here? The expression (col1=crit1)*(col2=crit2) evaluates each row to TRUE or FALSE for each criterion, multiplies the booleans together (TRUE * TRUE = 1, anything else = 0), and creates an array of 1s and 0s. MATCH then looks for the first 1 in that array — the first row where both criteria are satisfied — and INDEX returns the value from the corresponding row of the return range.

On Excel 2019 and earlier, this is an array formula. You must press Ctrl + Shift + Enter when you finish typing, not just Enter. Excel will wrap the formula in curly braces (you do not type them yourself). Forget the Ctrl+Shift+Enter and you get a single-cell evaluation that almost always returns the wrong row, usually the last match or #N/A.

On Excel 365 and 2021, dynamic arrays make Ctrl+Shift+Enter unnecessary — just press Enter and the formula spills naturally. Same result, less ceremony. The match function excel and index function excel pages have deeper dives on each piece if the logic still feels fuzzy.

Real-world example. You have a gradebook with students in column A, exam names in column B, and scores in column C. You want Jordan's score on Midterm 2:

=INDEX(C2:C200, MATCH(1, (A2:A200="Jordan")*(B2:B200="Midterm 2"), 0))

If you want approximate or case-sensitive matching, you swap the equality test for EXACT(col1, crit1) — which is case-sensitive — or for a comparison operator. For more than two criteria, just keep multiplying: (col1=crit1)*(col2=crit2)*(col3=crit3). The array stays a single dimension because each multiplication is element-wise.

Decision Tree: Which Method Should You Use?

  • Excel 365 or 2021, need one match? Use XLOOKUP with concatenated criteria.
  • Excel 365 or 2021, need ALL matches? Use FILTER — it returns every matching row.
  • Excel 2019 or older? INDEX-MATCH-MATCH with Ctrl+Shift+Enter is your friend.
  • Returning a number to sum or count? SUMPRODUCT is shorter than INDEX-MATCH and works in every version.
  • Locked into a VLOOKUP template? Build a helper column that concatenates the criteria, then VLOOKUP on that.

Method 3: SUMPRODUCT (For Numeric Returns)

SUMPRODUCT is the dark horse of multi-criteria lookups. It is older than INDEX-MATCH in array form, it works in every version of Excel back to the early 2000s, and it does not require Ctrl+Shift+Enter. The catch: it only works cleanly when you are returning a number, because under the hood it sums the array.

The pattern:

=SUMPRODUCT((col1=crit1)*(col2=crit2)*return_range)

This works because when both criteria match, the product is 1 * 1 * value = value. When either criterion fails, the product is zero. SUMPRODUCT sums everything, so you get back the value from the matching row — assuming exactly one row matches. If two rows match, you get their sum, which is fine when you want to aggregate but a bug when you wanted a single lookup.

Example. You have monthly sales by product and region. Total Q1 sales for Product X in the EU:

=SUMPRODUCT((Product=B2)*(Region="EU")*(Quarter="Q1")*Sales)

SUMPRODUCT shines in three scenarios. First, when you actually do want a sum across multiple matching rows — it is shorter than SUMIFS and supports operators SUMIFS does not, like wildcards and ranges. Second, when you are on legacy Excel and want to avoid Ctrl+Shift+Enter. Third, when you need conditional counting — wrap the criteria without a numeric return range and SUMPRODUCT counts matching rows: =SUMPRODUCT((col1=crit1)*(col2=crit2)).

Where SUMPRODUCT falls down: returning text. If your return column is text, SUMPRODUCT throws #VALUE! because it cannot multiply text by a boolean. For text returns, fall back to INDEX-MATCH or XLOOKUP.

The Five Methods at a Glance

searchXLOOKUP

Best for Excel 365/2021 when you need a single match. Concatenate criteria with on both sides. Supports left lookups, fallback values, and approximate match via match_mode=1.

gridINDEX-MATCH-MATCH

Universal compatibility. Uses multiplied boolean arrays inside MATCH. Requires Ctrl+Shift+Enter on Excel 2019 and earlier; spills naturally on 365.

calculatorSUMPRODUCT

Numeric returns only. No CSE required. Great for conditional sums and counts. Throws #VALUE! on text return ranges.

filterFILTER

Excel 365/2021 only. Returns ALL matching rows as a spilled array, not just the first. Perfect when you need every row that meets the criteria.

columnsVLOOKUP + Helper Column

The legacy workaround. Build a column that concatenates your criteria, then VLOOKUP normally. Works in every Excel version and survives template lock-in.

databasePower Query Merge

For very large datasets or recurring lookups. Multi-key joins handle millions of rows faster than any formula and refresh on demand.

Excellence Playa Mujeres - Microsoft Excel certification study resource

Method 4: FILTER Function (When You Need All Matches)

XLOOKUP returns the first match. INDEX-MATCH returns the first match. SUMPRODUCT sums everything. But what if you genuinely need every row that satisfies your criteria — say, every transaction by customer X in Q2, not just the first one? That is what the filter function excel function was built for, and it is the cleanest answer in Excel 365.

The pattern:

=FILTER(return_range, (col1=crit1)*(col2=crit2))

Same boolean-multiplication trick as INDEX-MATCH, but FILTER returns the entire spilled array of matching rows instead of stopping at the first one. If three rows match, you get three rows back, automatically populating cells below the formula cell. If zero rows match, you can supply a third argument for the fallback: =FILTER(C2:C500, (A2:A500="Sarah")*(B2:B500="Marketing"), "No match").

Real example. You manage a customer support log and want every ticket from customer "ACME Corp" with priority "High":

=FILTER(Tickets, (Customer="ACME Corp")*(Priority="High"))

FILTER spills the entire matching subset of the Tickets range below your formula cell. If new tickets are added later, the spilled range auto-updates the next time the workbook recalculates. This is a game-changer for dashboards — you build the filter once and every refresh stays current.

FILTER pairs beautifully with other dynamic-array functions. Wrap it in SORT to order the results: =SORT(FILTER(...)). Wrap it in UNIQUE to deduplicate. Wrap it in COUNTA to count matches. The composability is what makes the 365 era of Excel genuinely different from what came before.

Multi-Criteria Lookup Examples

Look up an employee's salary by name and department

Source data in A2:C500 — column A is Name, B is Department, C is Salary.

=XLOOKUP("Sarah"&"Marketing", A2:A500&B2:B500, C2:C500, "Not Found")

Returns Sarah's salary from the Marketing department, or "Not Found" if no match. No array formula needed — XLOOKUP handles spilled lookup arrays natively in Excel 365 and 2021.

Method 5: VLOOKUP With a Helper Column (Legacy Workaround)

Sometimes you cannot escape excel vlookup. A corporate template requires it. A coworker maintains a workbook that breaks if you replace the formula. A pivot table downstream depends on a VLOOKUP-shaped column. Fine. There is a clean trick for multi-criteria VLOOKUP, and it has been used for two decades: the helper column.

Step one. Insert a new column at the start of your lookup table — say, column A becomes the helper and your original columns shift to B, C, D. In the helper, concatenate the criteria columns: =B2&C2. Drag down. You now have a column of unique combined keys like "SarahMarketing", "JordanMidterm 2", "AX-220EU".

Step two. VLOOKUP normally, but concatenate your two criteria in the lookup value too:

=VLOOKUP("Sarah" & "Marketing", A:D, 4, FALSE)

The 4 is the column index of the return value (column D in this example, since the helper shifted everything right). FALSE forces exact match.

This works in every Excel version. It survives template lock-in because the VLOOKUP itself looks normal — anyone who opens the workbook sees a standard VLOOKUP and only notices the helper column if they go digging. The downside: you maintain an extra column, and if your lookup table is referenced by other formulas (pivot tables, named ranges, charts), inserting a column at the start can break them. The fix is to put the helper at the end of the table instead and use INDEX or build the helper in a separate sheet that pulls the source data.

A subtle pitfall. If your criteria values overlap — say one column has "ABC" and "123" and the other has "DEF" and "BCD" — concatenating could produce ambiguous keys ("ABCDEF" and "AB" + "CDEF" collide). The standard fix is to inject a delimiter that cannot appear in your data: =B2 & "|" & C2 in the helper, and "Sarah" & "|" & "Marketing" in the lookup value. The pipe character is a common choice because it rarely appears in business data.

Performance: Which Method Is Fastest?

For small datasets — under 10,000 rows — every method on this list returns in milliseconds. You will not notice a difference. For larger datasets, the picture changes, and the ordering can surprise people.

XLOOKUP is consistently the fastest for single-value retrieval in Excel 365. Microsoft optimized the underlying binary search and the concatenated-array handling, and on a 100,000-row table with two criteria it typically finishes in 30–50 milliseconds. INDEX-MATCH with the array-multiplication pattern is slower because it has to evaluate the full criteria arrays for every row before MATCH picks a winner — expect 200–400 milliseconds on the same dataset.

SUMPRODUCT is comparable to INDEX-MATCH in speed but uses less memory because it does not build an intermediate array of return values. FILTER, when spilling many rows, can be slower than XLOOKUP for the same lookup because it has to materialize every matching row instead of stopping at the first one — which is the cost of getting every match instead of just the first.

VLOOKUP with a helper column is fast for the lookup itself but slow to maintain — every insert, delete, or sort in your source data forces Excel to recalculate the helper, which cascades through every downstream formula. On large tables the helper becomes a bottleneck even when each individual VLOOKUP is fast.

For datasets above 500,000 rows, drop formulas entirely. Use excel power query to do the multi-key merge as a query, load the result to the worksheet, and refresh on demand. Power Query merges run in C++ under the hood, not Excel's formula engine, and they handle millions of rows without breaking a sweat. The excel lookup function reference walks through the formula side; Power Query is the natural next step when formulas hit their limit.

Excel Spreadsheet - Microsoft Excel certification study resource

Pre-Flight Checklist

  • Confirm your Excel version — 365/2021 unlocks XLOOKUP and FILTER, older versions need INDEX-MATCH or SUMPRODUCT
  • Decide whether you need ONE match (XLOOKUP, INDEX-MATCH) or ALL matches (FILTER, SUMPRODUCT for sums)
  • Check return-value type — text returns rule out SUMPRODUCT
  • Wrap criteria columns in TRIM if data came from external sources to kill rogue spaces
  • Inject a delimiter ('|' or similar) when concatenating criteria to avoid key-collision bugs
  • Use absolute references ($A$2:$A$500) when you plan to drag the formula across rows
  • Convert source data to an Excel Table for cleaner range references and auto-expansion
  • For 500k+ rows, plan to switch to Power Query merges instead of formulas
  • Test the formula on a known matching row first to confirm the result is what you expect
  • On Excel 2019 and older, press Ctrl + Shift + Enter for INDEX-MATCH array formulas

Common Errors and How to Diagnose Them

Multi-criteria lookups break in predictable ways. Here is the short list of things that will eat your morning if you don't recognize them.

The #N/A return. Usually means no row matches all your criteria. Check for leading or trailing spaces by wrapping your criteria columns in TRIM. Check for invisible characters (Excel pastes from web pages often include non-breaking spaces) by wrapping in CLEAN. Check for case sensitivity if your criteria came from systems that treat "sarah" and "Sarah" differently. Standard equality in Excel is case-insensitive; use EXACT if you actually need case match.

The wrong-row return. Almost always means you forgot Ctrl+Shift+Enter on an INDEX-MATCH array formula in legacy Excel. The formula evaluates only the first row of the criteria comparison without CSE, finds a coincidental match, and returns the wrong result. Look at the formula bar — if there are no curly braces around the formula, you missed the CSE.

The #VALUE! error. SUMPRODUCT throws this when your return range contains text. Switch to INDEX-MATCH or XLOOKUP. The same error from XLOOKUP usually means a range-size mismatch — your lookup array and return array have different lengths.

The #NAME? error. You typed XLOOKUP or FILTER on a version of Excel that does not support it. Either upgrade to 365/2021, or rewrite the formula using INDEX-MATCH or SUMPRODUCT.

Slow recalculation. Full-column references (A:A instead of A2:A1000) on large workbooks with many formulas force Excel to evaluate millions of empty cells. Trim your ranges to the actual data, convert the source to an Excel Table (Ctrl + T), and reference the table by name — Excel only evaluates the populated rows.

Modern vs Legacy

Pros
  • +XLOOKUP and FILTER are dramatically more readable — no array-formula syntax, no Ctrl+Shift+Enter
  • +Spilled arrays mean one formula returns many rows automatically — perfect for live dashboards
  • +Native fallback arguments replace IFERROR wrappers — cleaner formulas, fewer nested functions
  • +Microsoft is investing in dynamic-array functions; legacy methods are stable but not improving
  • +XLOOKUP is faster than INDEX-MATCH on large single-value lookups due to optimized binary search
Cons
  • XLOOKUP and FILTER require Excel 365 or 2021 — shared workbooks may break on older installs
  • INDEX-MATCH and SUMPRODUCT work in every version back to Excel 2010 — true portability
  • Legacy methods don't need a subscription — one-time licenses still ship without dynamic arrays
  • SUMPRODUCT remains the cleanest way to do conditional sums across multi-criteria with operators
  • Helper-column VLOOKUP survives corporate template lock-in better than newer functions

Approximate Match and Sorted-Data Lookups

Most multi-criteria lookups are exact-match — you want Sarah in Marketing, not someone like Sarah in something-like Marketing. But occasionally you need approximate matching, usually with one criterion being a numeric range (like income brackets, date ranges, or score thresholds) combined with an exact-match secondary criterion.

XLOOKUP handles this elegantly through its match_mode argument. The fifth argument, match_mode, accepts 1 (exact or next larger), -1 (exact or next smaller), or 2 (wildcard). For a salary lookup by name and income bracket where the bracket column holds the lower bound of each band:

=XLOOKUP(name&bracket, names&brackets, salary, "Not Found", -1)

For approximate matches on legacy Excel, INDEX-MATCH lets you swap the third MATCH argument to 1 (less than) or -1 (greater than), but the data must be sorted accordingly. Sorted lookups are an order of magnitude faster than exact-match scans on large tables — Excel uses binary search instead of a linear scan — so if your reference data is naturally sorted, the approximate-match modes are worth knowing.

One more useful pattern: combining multi-criteria with wildcards. XLOOKUP's match_mode 2 lets you use * and ? in the criteria. So a lookup like "find the employee whose name starts with Sa in the Marketing department" becomes:

=XLOOKUP("Sa*"&"Marketing", names&departments, salaries, , 2)

Useful for messy data where you don't know the exact spelling but you know the prefix.

Putting It Together: A Decision Framework

Here is how I actually choose, in the order I think about it.

First question: what Excel version are you on? If 365 or 2021, the question becomes "one match or all matches?" — XLOOKUP for one, FILTER for all. If 2019 or earlier, you are in INDEX-MATCH or SUMPRODUCT territory.

Second question: what are you returning? Text only — use XLOOKUP, INDEX-MATCH, FILTER, or VLOOKUP-helper. A number you want to sum across matches — use SUMPRODUCT or SUMIFS. A count of matching rows — SUMPRODUCT or COUNTIFS.

Third question: how big is the data? Under 10,000 rows, any method works. Between 10k and 500k, prefer XLOOKUP or trimmed-range INDEX-MATCH over full-column references. Over 500k, drop formulas and use Power Query merges with multiple key columns — they are an order of magnitude faster.

Fourth question: how often does the data change? Static or rarely-updated data — formulas are fine. Frequently-refreshed data (especially from external sources) — Power Query gives you a refresh button and skips the formula-recalc storm. Dashboard refresh times matter when you are presenting to non-technical stakeholders who lose patience after the first thirty-second recalculation.

Fifth question: who else will maintain this workbook? If you are the only owner, write the most concise formula. If you are handing off to less-technical users, prefer XLOOKUP for readability or a clearly-labeled helper column with VLOOKUP — both are easier for non-experts to debug than nested INDEX-MATCH arrays.

Final Word

There is no single best method for excel lookup multiple criteria. There is the right method for your version, your data shape, and your team. The five techniques in this guide cover every realistic scenario, and the decision framework above should make the choice obvious within thirty seconds. Bookmark the formulas. Print the cheat-sheet section. Most importantly, practice on a small test dataset before pointing any of these at the workbook that runs your quarterly board report. Excel forgives a lot, but it does not forgive a multi-criteria lookup that silently returns the wrong row to a CFO.

If you remember nothing else: concatenate criteria with a delimiter, trim your inputs, and test on a known-matching row first. Those three habits prevent ninety percent of the bugs that show up in multi-criteria lookups across every Excel version and every method.

Excel Questions and Answers

About the Author

Katherine LeeMBA, CPA, PHR, PMP

Business Consultant & Professional Certification Advisor

Wharton School, University of Pennsylvania

Katherine Lee earned her MBA from the Wharton School at the University of Pennsylvania and holds CPA, PHR, and PMP certifications. With a background spanning corporate finance, human resources, and project management, she has coached professionals preparing for CPA, CMA, PHR/SPHR, PMP, and financial services licensing exams.