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















13 Responses to “Data Validation using an Unsorted column with Duplicate Entries as a Source List”
Pivot Table will involve manual intervention; hence I prefer to use the 'countif remove duplicate trick' along with 'text sorting formula trick; then using the offset with len to name the final range for validation.
if using the pivot table, set the sort to Ascending, so the list in the validation cell comes back alphabetically.
Hui: Brillant neat idea.
Vipul: I am intrigued by what you are saying. Please is it possible to show us how it can be done, because as u said Hui's method requires user intervention.
Thks to PHD and all
K
Table names dont work directly inside Data validation.
You will have to define a name and point it to the table name and then use the name inside validation
Eg MyClient : Refers to :=Table1[Client]
And then in the list validation say = MyClient
Kieranz,
Pls download the sample here http://cid-e98339d969073094.skydrive.live.com/self.aspx/.Public/data-validation-unsorted-list-example.xls
Off course there are many other ways of doing the same and integrating the formulae in multiple columns into one.
Pls refer to column FGHI in that file. Cell G4 is where my validation is.
Vipul:
Many thks, will study it latter.
Rgds
K
[...] to chandoo for the idea of getting unique list using Pivot tables. What we do is that create a pivot table [...]
@Vipul:
Thanks, that was awesome! 🙂
@Playercharlie Happy to hear that 🙂
Great contribution, Hui. Solved a problem of many years!
Thanks to you, A LOT
Hi Hui,
Greeting
hope you are doing well.
I'm interested to send you a private vba excel file which i need to show detail of pivot in new workbook instead of showing in same workbook as new sheet.
Please contact me on muhammed.ye@gmail.com
Best Regards