Another one:
Assume your data is in the range E1:I3
Assume you want the data extracted starting in cell A1.
Enter this formula in A1 and copy down until you get a contiguous return of
0s:
=OFFSET(E$1,MOD(ROWS($A$1:A1)-1,3),INT((ROWS($A$1:A1)-1)/3))
Where 3 = number of rows in your table.
Or, assuming there are no empty cells within the table, this version will
return blanks once you've extracted all the data:
=IF(ROWS(A$1:A1)<=COUNTA(E$1:I$3),OFFSET(E$1,MOD(ROWS($A$1:A1)-1,3),INT((ROWS($A$1:A1)-1)/3)),"")
Or, this version calculates the number of rows in the table:
=IF(ROWS(A$1:A1)<=COUNTA(E$1:I$3),OFFSET(E$1,MOD(ROWS($A$1:A1)-1,ROWS(E$1:I$3)),INT((ROWS($A$1:A1)-1)/ROWS(E$1:I$3))),"")
Or, if you have the Morefunc.xll add-in from
http://xcell05.free.fr/english/
then this array formula** entered in A1 and copied down:
=INDEX(ARRAY.JOIN(TRANSPOSE(E$1:I$3)),ROWS(A$1:A1))
With an error trap:
=IF(ROWS(A$1:A1)<=COUNTA(E$1:I$3),INDEX(ARRAY.JOIN(TRANSPOSE(E$1:I$3)),ROWS(A$1:A1)),"")