VLOOKUP Return Multiple Values in Excel
VLOOKUP stops at the first match. These methods return them all.
Every match in a list: FILTER
=FILTER(B2:B100,A2:A100=E2,"None")
All orders for the customer in E2, spilled down. See FILTER.
Every match in one cell
=TEXTJOIN(", ",TRUE,FILTER(B2:B100,A2:A100=E2,""))
Several columns for every match
=FILTER(B2:D100,A2:A100=E2)
Only some columns, in your order
=CHOOSECOLS(FILTER(A2:D100,A2:A100=E2),4,2)
Several columns for the first match
=VLOOKUP(E2,A2:D100,{2,3,4},FALSE)
In Microsoft 365 this spills three results across.
Older Excel (no FILTER)
In F2, fill down until errors appear:
=IFERROR(INDEX($B$2:$B$100,AGGREGATE(15,6,(ROW($A$2:$A$100)-ROW($A$2)+1)/($A$2:$A$100=$E$2),ROWS(F$2:F2))),"")
AGGREGATE finds the 1st, 2nd, 3rd… matching row number; INDEX returns the value. See INDEX MATCH.
Match on two conditions
=FILTER(C2:C100,(A2:A100=E2)*(B2:B100=F2)) — see multiple criteria.