excel中怎样批量将行数据转换成列数据?

如图1至图2.
我知道有可以单列转置,但这个表格最长的有85列,一共5000多行。

你好,楼主想要的功能,可以使用VBA程序实现。

(一)VBA程序代码如下:(代码运行之前请做好数据备份,以免丢失)

Sub abcd()
Dim i1, i2, i3, str
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")  '定义工作表Sheet1

For i1 = 1 To 1000  '从第1行到1000行
 If mysheet1.Cells(i1, 1) <> "" Then     '如果单元格不是空白,则
  str = Mid(mysheet1.Cells(i1, 1), 1, 1) '截取第一个字符
  If IsNumeric(str) = True Then          '如果截取的字符是数字,则
   i2 = i1
   i3 = 1
  Else
   i3 = i3 + 1
  mysheet1.Cells(i2, i3) = mysheet1.Cells(i1, 1)  '把ABCD项写入含有数字的那一行
 End If
End If
Next

End Sub

(二)程序运行前后的结果如下图所示,望笑纳。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-02-14

Sub cs()
Dim i As Integer
For j = 1 To Sheets("sheet2").[a65556].End(xlUp).Row
For i = 1 To Sheets("sheet2").Cells(j, 200).End(xlToLeft).Column
n = n + 1
If i = 1 Then
Cells(n, 1) = Sheets("sheet2").Cells(j, i)
Else
Cells(n, 2) = Sheets("sheet2").Cells(j, i)
End If
Next
Next
End Sub

如不会使用,需要原件,可私信给油箱

本回答被提问者采纳
第2个回答  2021-02-14
选中复制,然后选中你要粘贴的表格地方,鼠标右键选择性粘贴,选择转置,可以实现行数据和列数据的转换,反过来列数据转换行数据也是一样。
第3个回答  2021-02-14
从图中看,这并不是简单的用转置能实现的,因为同一行到的新的区域拆分成两列,也许为更多列,因为有数十列,可能规则更复杂。
用vba可以实现,但需要明确地说明转换与拆分规则。
第4个回答  2021-02-14
这么大数量需要vba了,建立更强大的沟通渠道。
相似回答