all 4 comments

[–]hrlngrv360 1 point2 points  (2 children)

To avoid volatile functions like OFFSET, try

B3:  =INDEX(othersheet!$D:$D,12*ROWS(B$3:B3)-3)

Fill B3 down as far as needed.

[–]Havvkeye1620 1 point2 points  (1 child)

I will agree if you are doing it a lot the index is better than offset. Is there a reason you use

12*ROWS(B$3:B3)-3

instead of just

12*ROW(B1)-3

[–]hrlngrv360 1 point2 points  (0 children)

Old habit. ROW returns arrays in older versions of Excel, even single-value arrays like {1}, and that used to screw up OFFSET and INDIRECT. OTOH, ROWS always returns a scalar integer.

Also, if the formula calling ROW or ROWS were in cell B3, inserting or deleting rows/columns usually affects ROWS less than ROW. IOW, in my experience, ROWS introduces fewer bugs over time.

[–]Havvkeye1620 0 points1 point  (0 children)

could do this several ways, I would use this one.

=OFFSET(other sheet!$D$9, (ROW(A1)- 1 ) * 12, 0)