excel中如何把列数据批量转置成行数据,且使每行数据的数量相同

比如:
A y1
A y2
A y3
B y4
B y5
B y6
转换成:A y1 y2 y3
B y4 y5 y6

第1个回答  2011-05-20
复制。
然后选择性张贴。--转置。
第2个回答  2011-05-20
只想到用数组公式实现。
不知道是否需要数组。如果你的数据量很大,数组会比较慢。
第3个回答  2011-05-20
用宏,我们做邻区库天天换追问

能说具体点吗?我是整理上市公司的数据,算每个公司每年12个月平均股价,比如000012代码
000012 2008-01 18.24
000012 2008-02 22.85
000012 2008-03 18.04
000012 2008-04 19.48
000012 2008-05 18.77
000012 2008-06 14.81
000012 2008-07 15.86
000012 2008-08 12.08
000012 2008-09 10.45
000012 2008-10 6.22
000012 2008-11 7.37
000012 2008-12 8.5
只需要把最右边一列转成行,其他代码的也依次转置

第4个回答  2011-05-20
批量的话,写个宏最方便~你可以把要求说清楚,我帮你写宏追问

我是整理上市公司的数据,算每个公司每年12个月平均股价,比如000012代码
000012 2008-01 18.24
000012 2008-02 22.85
000012 2008-03 18.04
000012 2008-04 19.48
000012 2008-05 18.77
000012 2008-06 14.81
000012 2008-07 15.86
000012 2008-08 12.08
000012 2008-09 10.45
000012 2008-10 6.22
000012 2008-11 7.37
000012 2008-12 8.5
只需要把最右边一列转成行,其他代码的也依次转置

追答

总共三列? 最右边的转成行了 中间那列怎么放

追问

中间那列不用管,弄完了以后是这样的效果
000012 18.24 22.85 18.04 19.48 18.77 14.81 15.86 12.08 10.45 6.22 7.37 8.5
000026 14.34 16.3 15.2 11.63 11.17 8.5 8.86 7.11 5.71 4.1 4.91 4.85
000028 20.75 23.15 17.1 17.88 18.01 16.35 16.92 11.68 12.6 11.35 12.65 16.41
……
非常着急,麻烦了~

追答

Sub Macro1()
Dim var1, var2
var1 = 1
var2 = 0
For var2 = 0 To 900
If Cells(var2 * 12 + 1, 1) "" Then
For var1 = 12 * var2 + 1 To 12 * var2 + 12
Cells(var2 + 1, 1) = Cells(var2 * 12 + 1, 1)
Cells(var2 + 1, var1 - 12 * var2 + 1) = Cells(var1, 3)
Next
Else
Range(Cells(var2 + 1, 1), Cells(var2 * 12, 3)).Delete
Exit Sub
End If
Next
End Sub
你看下要不要做其他条件,我是假设每个公司都会有12个月数据,没有缺失的 另外宏怎么用应该会吧?

本回答被提问者采纳
相似回答