EXCEL如何把复制了的一行,转置,然后插入第二行前面?1 2 3 4 5 变成1 2 3 4 5

我不要先插入空白行的方法,因为我有很多横向数据。

见截图

输入

=OFFSET($A$1,INT((ROW(A1)-1)/4),MOD(ROW(A1)-1,4))

公式下拉

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-15
把下面代码放到对应的表中,运行这个宏。即可在A列生成整个表格转置后的数据。
当然,你可以修改 行范围和列范围来控制转置区域。
不限每行个数据个数是否一致,生成的新数据在A列,不覆盖原来数据。

Sub 转置()
Dim Arr, S As String
For i = 1 To Range("a65536").End(xlUp).Row '行范围

For j = 1 To Cells(i, 255).End(xlToLeft).Column '列范围

S = S & Cells(i, j) & " "
Next
Next
Columns(1).Insert
Arr = Split(S, " ")
Range("a1").Resize(UBound(Arr)) = Application.Transpose(Arr)
End Sub本回答被网友采纳
第2个回答  2013-03-14
选择性粘贴时,选第3行,转置后,再剪切第2行粘贴到最下面。这样不难吧?追问

如果我第二行下面还有很多数据怎么办?我不是只有两行,我有上万条数据,其中有些就是横向出现这种情况

追答

用“选择性粘贴-转置”都覆盖掉目标区域原来的内容。
就“转置”到另一个工作表里去再行处理吧。

如果知道第一行的列数,才方便像一楼1975qjm那样用公式。
看看用VBA能否解决,但VBA就像一种类木马,使用时要慎重。

第3个回答  2013-03-14
A5单元格写入公式
=OFFSET($A$1,(ROW(A1)-1)/4,MOD(ROW(A1)-1,4))
下拉复制公式
相似回答