Coverting array data into single column

D

dgarg

I have data in form of array (table). For example:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

i want to convert this data into sigle column as below:
1
6
11
2
7
12
..
..
5
10
15

Can anyone suggest me the way to do this?
 
F

Frank Kabel

Hi
on your second sheet in A1 enter
=OFFSET('sheet1'!$A$1,INT((ROW()-1)/5),MOD(ROW()-1,5)
and copy this down
 
H

Harlan Grove

Frank Kabel wrote...
on your second sheet in A1 enter
=OFFSET('sheet1'!$A$1,INT((ROW()-1)/5),MOD(ROW()-1,5)
and copy this down

First, your formula is missing a final right parenthesis. Untested?

Secong, you do need to start reading what OPs write more carefully. OP wants
to interate by row then by column, not by column then by row. Your formula
above would need to change to

=OFFSET('sheet1'!$A$1,MOD(ROW()-1,3),INT((ROW()-1)/3))

Third, positionally dependent. As an alternative, the following returns an
array of numbers that could be used as a component in longer formulas. I'm
using x to denote the source range.

=N(OFFSET(x,MOD(ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1,ROWS(x)),
INT((ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1)/ROWS(x)),1,1))

For that matter, if the result were to be entered into a single column,
multiple row range of cells, a slightly shorter array formula could be used.

=INDEX(x,MOD(ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1,ROWS(x))+1,
INT((ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1)/ROWS(x))+1)
 
F

Frank Kabel

Frank Kabel wrote...
First, your formula is missing a final right parenthesis. Untested?
No but just not able to copy and paste correctly on my side :)

Secong, you do need to start reading what OPs write more carefully.
OP wants to interate by row then by column, not by column then by
row. Your formula above would need to change to

=OFFSET('sheet1'!$A$1,MOD(ROW()-1,3),INT((ROW()-1)/3))
Thanks for the correction

Third, positionally dependent. As an alternative, the following
returns an array of numbers that could be used as a component in
longer formulas. I'm using x to denote the source range.

=N(OFFSET(x,MOD(ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1,ROWS(x)),
INT((ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1)/ROWS(x)),1,1))

For that matter, if the result were to be entered into a single
column, multiple row range of cells, a slightly shorter array formula
could be used.

=INDEX(x,MOD(ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1,ROWS(x))+1,
INT((ROW(INDIRECT("1:"&(ROWS(x)*COLUMNS(x))))-1)/ROWS(x))+1)

Both formulas are quite nice
Regards
Frank
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top