Situation
Not always we want to lookup values based on one search parameter. For eg. Imagine you have data like below and you want to find how much sales Joseph made in January 2007 in North region for product “Fast car”?
Data:

Solution
Simple, use your index finger to scan the list and find the match 😉
Of course, that wouldn’t be scalable. Plus, you may want to put your index finger to better use, like typing . So, lets come up with some formulas that do this for us.
You can extract items from a table that match multiple criteria in multiple ways. See the examples to understand the techniques:
| Using SUMIFS Formula [help] | |
| Formula | =SUMIFS(lstSales, lstSalesman,valSalesman, lstMonths,valMonth, lstRegion,valRegion, lstProduct,valProduct) |
| Result | 1592 |
| Using SUMPRODUCT Formula [help] | |
| Formula | =SUMPRODUCT(lstSales,(lstSalesman=valSalesman)*(lstMonths=valMonth)*(lstRegion=valRegion)* (lstProduct=valProduct)) |
| Result | 1592 |
| Using INDEX & Match Formulas (Array Formula) [help] | |
| Formula | {=INDEX(lstSales,MATCH(valSalesman&valMonth&valRegion&valProduct, lstSalesman&lstMonths&lstRegion&lstProduct,0))} |
| Result | 1592 |
| Using VLOOKUP Formula [help] | |
| Formula | =VLOOKUP(valMonth&valSalesman&valRegion&valProduct,tblData2,7,FALSE) |
| Result | 1592 |
| Conditions: | A helper column that concatenates month, salesman, region & product in the left most column of tblData2 |
| Using SUM (Array Formula) [help] | |
| Formula | {=SUM(lstSales*(lstSalesman=valSalesman)*(lstMonths=valMonth)* (lstRegion=valRegion)*(lstProduct=valProduct))} |
| Result | 1592 |
Sample File
Download Example File – Looking up Based on More than One Value
Go ahead and download the file. It also has some homework for you to practice these formula tricks.
Also checkout the examples Vinod has prepared.
Special Thanks to
Rohit1409, dan l, John, Godzilla, Vinod















3 Responses to “Filter one table if the value is in another table (Formula Trick)”
What about the opposite? I want a list of products without sales or customers with no orders. So I would exclude the ones that are on the other table.
Good question. You can check for the =0 as countifs result. for example,
=FILTER(orders, COUNTIFS(products, orders[Product])=0)
should work in this case.
PS: I have added this example to the article now.
Hi there!
Could i check if there was a way to return certain fields of the table only?
so based off your example above, i would like to continue to use the 'Products" table as a way to filter out items from my "Orders" table, but only want to show maybe only the "Product" and "Order Value" fields, rather than all 5 fields (sales person, customer, product, date, order value).