View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.misc
Pete_UK Pete_UK is offline
external usenet poster
 
Posts: 8,856
Default Calculation Speed (Index/Match vs Vlookup)?

What's wrong in having a helper column? As it stands, you have 6 MATCH
functions in each row, but you can have your checks once only in the
helper column (C) as:

=IF(OR($B2="",ISNA(MATCH('CC Vari'!$B2,BTs!$C$1:$C
$2000,0)),"",MATCH('CC Vari'!$B2,BTs!$C$1:$C$2000,0))

and then your other formulae take the form:

=IF($C2="","",INDEX(BTs!$H$1:$H$2000,$C2))

in D2, and so on. This will calculate much more quickly, particularly
with several thousand rows.

See here for other speed tips:

http://www.decisionmodels.com/optspeede.htm

Hope this helps.

Pete

On Oct 4, 12:36 pm, Ken wrote:
Excel2003 ... I have identical WorkBooks where I am testing Index/Match vs
Vlookup before I expand ... In Cols C-D-E (Range 2:2000) I entered
Index/Match Formula in 1 WB & Vlookup in 2nd WB ... Both formulas appear to
be returning same results ... However, Index/Match appears to be calculating
faster ... From those that are intimate with Excel ... Does this make sense?
... Also, is there a way I can simplify the formulas I have without creating
a "helper" Col?

WB1 ... Col C

=IF(OR($B2="",ISNA(INDEX(BTs!$H$1:$H$2000,MATCH('C C
Vari'!$B2,BTs!$C$1:$C$2000,0)))),"",INDEX(BTs!$H$1 :$H$2000,MATCH('CC
Vari'!$B2,BTs!$C$1:$C$2000,0)))

WB1 ... Col D

=IF(OR($B2="",ISNA(INDEX(BTs!$H$1:$H$2000,MATCH('C C
Vari'!$B2,BTs!$C$1:$C$2000,0)))),"",INDEX(BTs!$H$1 :$H$2000,MATCH('CC
Vari'!$B2,BTs!$C$1:$C$2000,0)))

WB1 ... Col E

=IF($B2="","",IF(ISNA(INDEX(BTs!$F$1:$F$2000,MATCH ('CC
Vari'!$B2,BTs!$C$1:$C$2000,0))),"",IF(INDEX(BTs!$F $1:$F$2000,MATCH('CC
Vari'!$B2,BTs!$C$1:$C$2000,0))=0,"",INDEX(BTs!$F$1 :$F$2000,MATCH('CC
Vari'!$B2,BTs!$C$1:$C$2000,0)))))

WB2 ... Col C

=IF(ISNA(VLOOKUP($B2,BTs!$C$2:$H$2000,3,0)),"",VLO OKUP($B2,BTs!$C$2:$H$2000*,3,0))

WB2 ... Col D

=IF(ISNA(VLOOKUP($B2,BTs!$C$2:$H$2000,4,0)),"",IF( VLOOKUP($B2,BTs!$C$2:$H$2*000,4,0)="","",VLOOKUP($ B2,BTs!$C$2:$F$2000,4,0)))

WB3 ... Col E

=IF(ISNA(VLOOKUP($B2,BTs!$C$2:$H$2000,6,0)),"",VLO OKUP($B2,BTs!$C$2:$H$2000*,6,0))

Thanks for the guidance ... Kha