How to do an Excel lookup with 2 or more criteria in columns, with the FILTER function (Office 365), or the INDEX and MATCH functions. Get the sample file, then watch the step-by-step video, or follow the written instructions.
There are many ways to do an Excel lookup based on 2 criteria. On this page, you'll see how to do an Excel lookup with 2 criteria. using either:
The next section will help you choose which option will work better for you, and then two short videos will show you how each option works.
After you choose a solution, there are detailed steps below, on how to set up either the FILTER function, or INDEX and MATCH.
To help you decide which solution to use for a Microsoft Excel lookup with multiple criteria, here are the key differences between them.
Also, there are other ways to do a Microsoft Excel lookup with multiple criteria. Take a look at the examples on the following pages:
-- Excel LOOKUP function for Multiple Criteria
-- Excel VLOOKUP formula for 2-column lookup
Also, see more information about Excel's different lookup functions.
To help you get started, there are 2 videos below, that show you how each lookup option works. There are written steps below the videos:
1) Excel Lookup with Multiple Criteria: Shows how the INDEX and MATCH functions work together, with one criterion. Next, at the 1:50 mark, the formula is changed, to work with 2 criteria. To follow along with the video, download the sample file.
2) Get Started with Excel FILTER function: Shows how the FILTER function works, with one criterion. The 3rd example at the 6:00 mark, shows the FILTER function with 2 criteria. To follow along with the video, download the sample file.
To do an Excel lookup with multiple criteria, you can use the INDEX and MATCH functions.
When INDEX and MATCH are used together, they create a flexible and powerful lookup formula.
Before using INDEX and MATCH with multiple criteria, let's see how they work together in a simple formula.
In the following formula, we need to find “Sweater” in a column B of a price list, and get its price from column C on the same worksheet.
=INDEX($C$2:$C$4,MATCH(A7,$B$2:$B$4,0))
The formula returns the correct price for the sweater - 10.
Here’s how that simple INDEX / MATCH formula finds the correct price for sweater.
So, by combining INDEX and MATCH, you can find the row location of an item, and return the price from that row.
Here are the function details:
The MATCH function has 3 arguments:
In this example, the MATCH function looks for the value from cell A7, in the range B2:B4, with an exact match.
The INDEX function has 3 arguments:
In this example, the INDEX function returns 10 -- the price from row 1, in the range C2:C4
In the previous example, the match was based on one criterion -- the Item name. For the next lookup, there are 2 criteria -- Item and Size.
In this pricing lookup table, each item is listed 3 times - once for each size. We want to find the price for a specific Item and Size.
The price for a large jacket is 40, so that should be the result if an INDEX/MATCH formula is entered in cell E13.
To calculate the price based on 2 criteria, enter this array-entered* INDEX and MATCH formula in cell E13. The formula is explained below.
Note: In Excel 365, which has spill functions, you can just press Enter
*Array-entered -- Press Ctrl + Shift + Enter, instead of just pressing the Enter key. That will automatically add curly brackets around the array formula.
Here's how this INDEX MATCH multiple criteria formula works.
Product prices are in cells E2:E10, and INDEX will return a Price from that range.
The MATCH function tells INDEX which row number to use, in that range.
Note: This number might be different from the worksheet row number.
1) In the MATCH function, the first argument, lookup_value, is 1
2a) For the second argument, lookup_array, there are 2 tests:
2b) Next, those TRUE and FALSE results are multiplied, to return zeros and ones
2c) In this example, only the 8th product matches both criteria, Jacket and Large, and returns a 1
3) The third argument in MATCH, match_type, is zero, to return an exact match.
So, the result of the MATCH function is 8, because it found an exact match for the the lookup value, 1, in the 8th position in the lookup array
Based on that result, INDEX returns the price for the 8th product in the price lookup table.
If your version of Excel has dynamic arrays (Office 365), you can use the new FILTER function to return the results that you need. The FILTER function lets you return results from a range, based on your criteria.
In this example, there is a named table, tblProducts, with 4 columns -- Code, Item, Size and Price.
At the top of the sheet, two criteria have been entered, for the product specifications
Based on those criteria, we need two results - the product's Price and the product's alphanumeric Code.
First, in cell C2, we'll enter a FILTER formula to calculate the product price, based on the criteria in cells A2 and B2.
The FILTER function has 3 arguments:
Product prices are stored in this range:
So, to start the formula,
Excel will automatically enter a reference to the Price column, in a structured table reference.
The formula should look like this:
For the include argument, the formula must check the Item column, to see if it matches cell A2
AND the formula must check the Size column, to see if it matches cell B2
Both criteria are in the include argument, with the Multiply operator (*) between them
=FILTER(tblProducts[Price], (tblProducts[Item]=A2) * (tblProducts[Size]=B2))
The FILTER formula to return the product code is almost the same, but for the array argument, we need a result from the Code column:
=FILTER(tblProducts[Code], (tblProducts[Item]=A2) * (tblProducts[Size]=B2))
Last updated: March 4, 2022 1:35 PM