excel里面,如何把多列数据变成一列数据?例如 第一行的:a1 a2 a3 a4,按照顺序变成4行,一列。

例如一个表格: 有三行 a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4
变成: a1
a2
a3
a4
b1
b2
....
求公式,因为我有几万行数据

比如你的数据在sheet1中
sheet2的A1输入公式
=offset(sheet1!$a$1,roundup(row(1:1)/4,0)-1,mod(row(1:1)-1,4))
公式下拉即可追问

很接近了,我说法有点误差,就是一行 有五列,您那个公式只能一行四列,请问如何修改一下?

追答

=offset(sheet1!$a$1,roundup(row(1:1)/5,0)-1,mod(row(1:1)-1,5))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-26
你可以生成一个新的sheet
用公式把sheet1中的数据转过去

比如:
sheet1 中有
a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4
在sheet2中
A1 位置输入公式: =Sheet1!A1
A2 位置输入公式: =Sheet1!B1
.....
以此类推
第2个回答  2011-10-26
若有4列!!!
在表的后面找一空白列,如A10000,写公式:
=INDEX($A$1:$D$3,ROW(A4)/4,MOD(ROW(A4),4)+1)
下拖复制!

若有5列!!!
=INDEX($A$1:$E$3,ROW(A5)/5,MOD(ROW(A5),5)+1)
下拖复制
【注意】公式中$A$1:$D$3请你自行修改!!
第3个回答  2011-10-26
假设你的源数据是在sheet1表的A:E五列
F1输入
=INDEX(A:E,ROUNDUP(ROW(A1)/5,),MOD(ROW(A1)-1,5)+1)
下拉公式。
或者sheet2表A1输入
=INDEX(sheet1!A:E,ROUNDUP(ROW(A1)/5,),MOD(ROW(A1)-1,5)+1)
下拉
第4个回答  2011-10-26
选定需要复制的有数据的列,然后右击-复制,然后再去要粘贴的行处,右击-选择性粘贴,这时打开一个对话框,勾选“转置”,最后,确定即可!
第5个回答  2011-10-26
选定行,复制-选择性粘贴-转置追问

这个,如果我有几万行,呢?怎么变?

追答

=COLUMN()+ROW() 下拉

相似回答