Does structure of data affect speed of vlookup?

B

Brotherharry

I'm having to work with very large data sets using vlookups.

e.g. I've 200k rows with an id in one sheet and I'm looking up
corresponding values in a data range that's 20k rows and 4 columns in
size in another sheet.

I recognise there are probably solutions in moving data off into
Access or whatnot, but hey, I'm here and I like Excel.

so my question is
can I influence the speed of calculation by how my data is structured
in either the source or vlookup range?
 
L

Luke M

If your VLOOKUP range is sorted alphabetically by key column, you could use a
'range lookup' of true(or omitted), thus eliminating the need for XL to look
at all the rows everytime. Downside of this is if you need an exact match,
this won't work.
 
N

Niek Otten

It helps if the data is sorted (ascending). Then you can set the 4th
argument to TRUE (or omit it), which enables Excel to use fast search
mechanisms (like binary search).
You'd have to check for the presence of your key yourself. that means two
VLOOKUPS (in one formula), but it can still be hunreds to thousands times
faster.
Suppose your table is in A1:B4 and the search argument is in C1:

=IF(C1=VLOOKUP(C1,A1:B4,1),VLOOKUP(C1,A1:B4,2),"")

Really, hundreds to thousands times faster!

If this is not your case, post again in this thread with more details
 
B

Brotherharry

My key column is a unique number, so it would need to be an exact
match, but do I understand you correctly in saying that if the vlookup
range is sorted in ascending order, then if the range lookup is
'true', excel would stop as soon as it hits the first instance of the
look up ID,

e.g.

lookup value = 45

data

34
36
45
54
67
45
 
B

Brotherharry

sorry slipped when trying to illustrate data. looks like 'true' is the
way to go.
 
N

Niek Otten

<=IF(C1=VLOOKUP(C1,A1:B4,1),VLOOKUP(C1,A1:B4,2),"")>

Or, probably "better":

=IF(C1=VLOOKUP(C1,A1:B4,1),VLOOKUP(C1,A1:B4,2),NA())
 
B

Brotherharry

Bingo!

Awesome.

Adding that one to my 'best spreadsheet in the world ever.xls' list of
useful functions.

Thanks Niek.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top