vlookup() with multiple results?

SirMille

New Member
In Google Spreadsheets you can use

=TRANSPOSE( QUERY(D:H ; "select D where H='"&H11&"'" ))

So I was trying to find something similar to that for excel 2010, and found this

=INDEX($A$2:$C$7, SMALL(IF($B$9=$A$2:$A$7, ROW($A$2:$A$7)-MIN(ROW($A$2:$A$7))+1, ""), ROW(A1)),COLUMN(A1))

(it's better explained on How to return multiple values using vlookup in excel | Get Digital Help - Microsoft Excel resource)

The thing is that the forumla is super slow. It takes about 2-3 seconds per row in a document that has 300 rows... so that leaves me with ~5-10 minutes update when I change a row.

I was thinking having a dualcore 3 Ghz computer would do it fast, so I'm not sure weather it is the formula or excel all together that is slow.


Is there a better/faster solution for excel 2010? All tips are welcome! Thank you!
 

Aladin Akyurek

MrExcel MVP
In Google Spreadsheets you can use

=TRANSPOSE( QUERY(D:H ; "select D where H='"&H11&"'" ))

So I was trying to find something similar to that for excel 2010, and found this

=INDEX($A$2:$C$7, SMALL(IF($B$9=$A$2:$A$7, ROW($A$2:$A$7)-MIN(ROW($A$2:$A$7))+1, ""), ROW(A1)),COLUMN(A1))

(it's better explained on How to return multiple values using vlookup in excel | Get Digital Help - Microsoft Excel resource)

The thing is that the forumla is super slow. It takes about 2-3 seconds per row in a document that has 300 rows... so that leaves me with ~5-10 minutes update when I change a row.

I was thinking having a dualcore 3 Ghz computer would do it fast, so I'm not sure weather it is the formula or excel all together that is slow.


Is there a better/faster solution for excel 2010? All tips are welcome! Thank you!
The following set up is faster if you return records with multiple cells...

http://www.mrexcel.com/forum/excel-questions/307832-multiple-vlookups.html#post1511354 (post #3).
 

T. Valko

Well-known Member
In Google Spreadsheets you can use

=TRANSPOSE( QUERY(D:H ; "select D where H='"&H11&"'" ))

So I was trying to find something similar to that for excel 2010, and found this

=INDEX($A$2:$C$7, SMALL(IF($B$9=$A$2:$A$7, ROW($A$2:$A$7)-MIN(ROW($A$2:$A$7))+1, ""), ROW(A1)),COLUMN(A1))

(it's better explained on How to return multiple values using vlookup in excel | Get Digital Help - Microsoft Excel resource)

The thing is that the forumla is super slow. It takes about 2-3 seconds per row in a document that has 300 rows... so that leaves me with ~5-10 minutes update when I change a row.

I was thinking having a dualcore 3 Ghz computer would do it fast, so I'm not sure weather it is the formula or excel all together that is slow.


Is there a better/faster solution for excel 2010? All tips are welcome! Thank you!
Are you using entire columns as range references? That will certainly slow things down.

See if this helps:

Lookup when there are multiple instances of the lookup value
 

Some videos you may like

This Week's Hot Topics

  • Importing multiple excel files into one spreadsheet
    Hi, I'm trying to import multiple excel files (with the same format into a single spreadsheet) so that each day's file is listed underneath the...
  • find many based on a certain criteria
    good evening, I hope someone can help me? I have a workbook sheet 2 contains lots of data.... I would like to be able to find anything on sheet...
  • How to copy multiple rows using If
    Hi all, I'm very new to VBA and have written this simple code to copy certain cells if a certain cell within that row contains any data. I need...
  • VBA If statement
    Dear All, I have two dates, where I'd like a message box to pop, if the dates are between this criteria. [CODE] sDate1 = #10/1/2019#...
  • Text Format
    I have a sheet for user to keyin the data. The format of the data can be 451 / 1903, 0012 / 9908 or 00287 / 0099. The number after the "/" is...
  • Macro to copy values across rows and transposing them and add the user id
    [FONT=Times New Roman][SIZE=3][COLOR=#000000][/COLOR][/SIZE][/FONT][FONT=Calibri][SIZE=3][COLOR=#000000]Hi,[/COLOR][/SIZE][/FONT] [FONT=Times New...
Top