On 2002-08-29 08:01, Ruffinshot wrote:
Modified the search area to only the area I need (can't believe I missed it before)... cut my calculate time down to about 2 seconds.
The corrected formula is:
=IF(ISERROR(INDIRECT("Reference!"&(ADDRESS(MATCH(I11,Reference!$B$1:$B$44,0),2)))),"",INDIRECT("Reference!"&(ADDRESS(MATCH(I11,Reference!$B$1:$B$44,0),6))))
I'm matching a two letter code (VA,NC,MD, etc.) from Reference! column B, rows 1 through 44, to get the row, then using indirect to get figures from the columns to the right. The search area never changes. The information being pulled out is between columns B and J.
The other match I'm using is matching text with column C to get the 2 letter code to match with column B.
The only other way I can see (though I'm probably missing something) to speed it up would be to take the IF/ISERROR out so it only has to match once per cell. How to do this without generating a value error and throwing everything off is a problem.
IF the data area is fixed to B1:J44, try the following:
( 1.) Select B1:J44.
( 2.) Go to the Name Box on the Formula Bar, type Drange, and hit enter.
Now you can use one of:
=IF(ISNUMBER(MATCH(I11,INDEX(Drange,0,1),0)),VLOOKUP(I11,Drange,5,0),"")
=IF(ISNUMBER(SETV(MATCH(I11,INDEX(Drange,0,1),0))),INDEX(Drange,GETV(),5),"")
=IF(ISNA(SETV(VLOOKUP(I11,Drange,5,0))),"",GETV())
The last two use functions from the morefunc add-in.
The above formulations do not include any volatile function like ADDRESS and INDIRECT as does your corrected formula.
I thrust you can adapt the above scheme to:
The other match I'm using is matching text with column C to get the 2 letter code to match with column B,
which puzzles me.
EDIT: I added 0 to MATCH and VLOOKUP in accordance with your own formula that uses exact match.
This message was edited by aladin akyurek on 2002-08-29 12:11