To use INDEX MATCH with multiple criteria without building helper columns, use boolean array logic. Multiply your criteria ranges together to generate an array of 1s and 0s, and use MATCH to look up the value 1.
Excel
=INDEX(C2:C100, MATCH(1, (A2:A100=F2) * (B2:B100=G2), 0))
(Note: If using Excel 2019 or older, you must press Ctrl+Shift+Enter to execute this as an array formula).
The Syntax Breakdown
INDEX(C2:C100, ...): The return array. This is the column containing the final data you want to retrieve and display in your cell.MATCH(1, ... , 0): The core engine. We are instructing Excel to search for the exact value of1within our generated boolean array, and0dictates an exact match.(A2:A100=F2): Condition 1. This checks if the values in column A exactly match your first criterion in cellF2, creating an underlying memory array ofTRUEandFALSEvalues.*(Asterisk): The mathematical multiplication operator acting as anANDlogic gate. Multiplying boolean arrays forces Excel to convert them into 1s and 0s (TRUE * TRUE = 1,TRUE * FALSE = 0).(B2:B100=G2): Condition 2. This checks if the values in column B exactly match your second criterion in cellG2. The row where both conditions areTRUEequates to1, which theMATCHfunction finds.
Real-World Example: Assigning Regional Shipping Tariffs
You are an Operations Manager calculating freight costs. Your third-party logistics provider charges different rates based on both the Destination Zone and the Transit Mode. You need to automatically pull the exact tariff rate for specific shipments.
Here is your raw Master Tariff data table:
| Row | A (Destination Zone) | B (Transit Mode) | C (Tariff Rate) |
| 2 | Zone 1 | Ground | $12.50 |
| 3 | Zone 1 | Express | $28.00 |
| 4 | Zone 2 | Ground | $18.75 |
| 5 | Zone 2 | Express | $45.00 |
The Application:
You have a shipment dashboard where cell F2 contains the target Zone (Zone 2) and G2 contains the target Mode (Express).
Apply the boolean INDEX MATCH formula in your dashboard’s cost column:
Excel
=INDEX(C2:C5, MATCH(1, (A2:A5=F2) * (B2:B5=G2), 0))
The Output:
The formula dynamically scans the arrays, identifies Row 5 as the only instance where both Zone 2 and Express evaluate to 1 (TRUE), and successfully returns $45.00.
Common Errors & How to Fix Them
#VALUE!Error: Your array ranges are asymmetrical, which breaks the array multiplication process. Fix: Ensure all criteria ranges and your return range have the exact same number of rows (e.g., do not mixA2:A100withB2:B95).- Formula returns
#N/Aeven though the data clearly matches: Invisible trailing spaces or formatting discrepancies (text vs. numbers) are causing the=check to fail. Fix: Use theTRIM()function on your raw data to remove accidental spaces, or ensure both columns are formatted as “Text” via Home > Number Format. - Formula returns an error in older Excel versions: Pre-365 Excel versions do not natively calculate dynamic arrays. Fix: Click into the formula bar and press Ctrl+Shift+Enter. Excel will automatically wrap your formula in curly brackets
{ }, forcing the array calculation.