Excel & Google Sheets

VLOOKUP and AND Function: Multiple Conditions in One Formula

VLOOKUP only matches on one value. But real data has multiple conditions — find by region AND product, match by name AND date. Here are three methods to make it work.

⏱ 8 min read ✅ Excel & Google Sheets 📅 Updated May 2026
Excel spreadsheet showing VLOOKUP combined with AND logic across multiple columns
Quick Answer

VLOOKUP cannot natively match on multiple conditions. The three workarounds: (1) Helper column — concatenate your criteria into one key, VLOOKUP against it. (2) CHOOSE array — build a virtual two-column lookup inside the formula. (3) INDEX/MATCH — the most flexible approach for multi-criteria lookups. All three work in Excel and Google Sheets.

In this article
  1. Why VLOOKUP can't handle AND by itself
  2. Method 1: Helper column (simplest)
  3. Method 2: CHOOSE array (no helper column)
  4. Method 3: INDEX/MATCH (most powerful)
  5. Using VLOOKUP inside IF with AND conditions
  6. Which method to use when
  7. FAQ

Why VLOOKUP Can't Handle AND Logic by Itself

VLOOKUP has one lookup value. It scans one column. It cannot natively check "where Region = East AND Product = Widget AND return the Sales figure."

Imagine this sales table:

A — RegionB — ProductC — Sales
EastWidget$12,400
EastGadget$8,900
WestWidget$15,200
WestGadget$6,700

You want the sales for East + Widget. A normal VLOOKUP on "East" returns the first East row — which may or may not be Widget. You need AND logic across two columns.

Three solutions follow, from simplest to most powerful.

Helper Column: Concatenate Your Criteria

Method 1 — Recommended for beginners

Add a helper column that combines all criteria

Add a new column (e.g. column D) to your data table that concatenates all the columns you want to match on, separated by a delimiter:

In column D of the data table (D2 and down)
=A2&"|"&B2 → Creates "East|Widget", "East|Gadget", etc.

Then VLOOKUP against this combined key using the same delimiter in your lookup value:

VLOOKUP using the combined key
=VLOOKUP(F2&"|"&G2, $D$2:$E$100, 2, FALSE) → F2="East", G2="Widget" → looks up "East|Widget"
Pros: Simple, readable, easy to debug, works in all Excel versions.
Cons: Requires modifying your source data with an extra column.
Use a Unique Delimiter

Use | or ~ as your separator — not a space or comma, which might appear inside the data values themselves. This prevents false matches where "East W" + "idget" would incorrectly match "East" + "Widget".

CHOOSE Array: Multi-Criteria Without a Helper Column

Method 2 — No data modification needed

Build a virtual lookup column inside the formula

The CHOOSE function can create a virtual two-column array — combining two columns into one key on the fly, without touching your source data.

Excel — press Ctrl+Shift+Enter in older versions
=VLOOKUP(F2&"|"&G2, CHOOSE({1,2}, A2:A100&"|"&B2:B100, C2:C100), 2, FALSE)

How it works: CHOOSE({1,2}, ...) creates a two-column virtual table where column 1 is the concatenated key and column 2 is the return value. VLOOKUP searches column 1 and returns column 2.

Excel Version Note

In Excel 2019 and earlier, press Ctrl+Shift+Enter instead of just Enter — this enters it as an array formula (you'll see curly braces around it: {=VLOOKUP(...)}). In Excel 365 and Google Sheets, press Enter normally — dynamic arrays handle it automatically.

Pros: No helper column, no data changes, works in one formula.
Cons: Harder to read and debug. Requires array entry in older Excel.

INDEX/MATCH: The Most Powerful Multi-Criteria Approach

Method 3 — Best for complex or production use

Use INDEX with MATCH for multiple AND conditions

INDEX/MATCH can natively handle multiple conditions using array logic. This is cleaner than the CHOOSE workaround and more readable in complex formulas.

INDEX/MATCH with two AND conditions — Excel 365 / Google Sheets
=INDEX(C2:C100, MATCH(1, (A2:A100=F2)*(B2:B100=G2), 0))
Excel 2019 and earlier — Ctrl+Shift+Enter required
{=INDEX(C2:C100,MATCH(1,(A2:A100=F2)*(B2:B100=G2),0))}

How the AND logic works: (A2:A100=F2) returns an array of TRUE/FALSE for each row. Multiplying two such arrays — * — gives 1 only where both conditions are TRUE. MATCH finds the position of the first 1, and INDEX returns the value at that position.

Adding a Third Condition

Add more criteria by multiplying another array: *(C2:C100="Q1"). Each additional condition narrows the match further. All conditions must be TRUE for MATCH to find a result.

Pros: Handles unlimited conditions, no helper column, can look left, doesn't break on column inserts.
Cons: More complex syntax. Requires Ctrl+Shift+Enter in older Excel.

Using VLOOKUP Inside IF With AND Conditions

Sometimes you want to run a VLOOKUP only when certain conditions are met — not multi-criteria matching, but conditional execution.

Only run VLOOKUP if both conditions are met
=IF(AND(A2="Active", B2>1000), VLOOKUP(C2, $F$2:$H$100, 2, FALSE), "Not eligible")

This formula checks two conditions with AND: Status = "Active" AND Value > 1000. Only if both are true does it run the VLOOKUP. Otherwise it returns "Not eligible". This is different from multi-criteria matching — it is conditional execution of a lookup.

Which Method to Use and When

SituationBest MethodWhy
You can add a column to your dataHelper columnSimplest, most readable, easiest to audit
You cannot modify the source dataCHOOSE array or INDEX/MATCHBoth work without touching the data
3+ conditionsINDEX/MATCHMost scalable — just multiply more arrays
You need to look leftINDEX/MATCHVLOOKUP can't look left, INDEX/MATCH can
Excel 2019 or earlier, avoid array entryHelper columnNo Ctrl+Shift+Enter required
Excel 365 or Google SheetsINDEX/MATCH or XLOOKUPDynamic arrays, cleaner syntax
Run lookup only under certain conditionsIF + AND + VLOOKUPConditional execution, not multi-criteria match

Master the full VLOOKUP toolkit.

Multi-criteria lookups are one piece. Understanding how VLOOKUP works end-to-end makes every formula faster to build and easier to debug.

VLOOKUP: Complete Explanation →

Frequently Asked Questions

Not natively — VLOOKUP accepts only one lookup value. The workarounds are: (1) Helper column that concatenates criteria into one key; (2) CHOOSE array formula that builds a virtual combined column; (3) INDEX/MATCH with array logic that multiplies condition arrays. All three work in Excel and Google Sheets.
Easiest: add a helper column concatenating both criteria with a delimiter (e.g. =A2&"|"&B2), then VLOOKUP using the same combined key: =VLOOKUP(F2&"|"&G2, $D:$E, 2, FALSE). No helper column: use INDEX/MATCH: =INDEX(C2:C100, MATCH(1, (A2:A100=F2)*(B2:B100=G2), 0)) — press Ctrl+Shift+Enter in older Excel.
To execute VLOOKUP only when multiple conditions are true: =IF(AND(condition1, condition2), VLOOKUP(...), "alternative"). For example: =IF(AND(A2="Active", B2>1000), VLOOKUP(C2, $F:$H, 2, FALSE), "Not eligible"). This runs the VLOOKUP only when both conditions are met.
INDEX/MATCH is the most flexible and scalable alternative for multi-criteria lookups. In Excel 365 and Google Sheets, XLOOKUP also handles this cleanly. For users on older Excel versions who want to avoid array formulas, the helper column method is the simplest reliable approach.
Yes. INDEX/MATCH works identically in Google Sheets. The multi-criteria version — =INDEX(C2:C100, MATCH(1, (A2:A100=F2)*(B2:B100=G2), 0)) — enters as a regular formula in Google Sheets without Ctrl+Shift+Enter. Google Sheets also supports XLOOKUP and the FILTER function, which can also handle multi-criteria lookups.

Related Articles