Pete,
Figured it out, though I ended up:
1) Using whole column and row references
2) And creating a name:
Data =INDEX(Sheet1!$A:$A,2):INDEX(Sheet1!
$1:$1048576,Sheet1!$C$2,Sheet1!$C$3)
A B C
1 Fruit Qty Helper Cells
2 Apple 1 =COUNTA($A:$A)
3 Orange 1 =MATCH("Qty",$1:$1,0)
4 Pear 1
It has the distinction of being dynamic (down and to the right,
depending on the last column referenced in C3), fast, non-volatile and
most importantly... it works.
Now heavy usage of formulas like, =VLOOKUP("Pineapple",Data,
2,FALSE) work and don't cause unnecessary calculation time every time
you modify a cell or object.
The only thing I'd like to change is not referencing every row on
the worksheet ($1:$1048576).
Can you reference a non-volatile formula in the DATA name to
calculate the last used row instead of every row in the worksheet
($1048576) ?
I ask only because it would seem that referencing a huge amount of
unused rows would create unnecessary CPU and memory usage and cause
Excel to prematurely reach a workbook / worksheet limit.
Exceluser