将多行转换为一列
我有下面的表格:
ID Description 1 name1 2 name2 3 name3 4 name4
我想有以下几点
ID+name 1 name1 2 name2 3 name3 4 name4
你有特别的build议吗? 已经尝试了一些其他转置方法,但我无法一次pipe理两行。
感谢您的帮助。
如果你愿意使用公式,那么以下可能会有所帮助。
在Cell D2
input以下公式
=INDEX($A$2:$B$5,1+INT((ROW(A1)-1)/COLUMNS($A$2:$B$5)),MOD(ROW(A1)-1+COLUMNS($A$2:$B$5),COLUMNS($A$2:$B$5))+1)
根据需要拖放/复制。 看图像以供参考。
对于@Vityata:
数据在G17:H20
和公式在I10
用G18:H21
数据和I12
公式
您可以使用基于OFFSET的公式
=OFFSET($A$1,INT((ROW(A1)-1)/2),MOD(ROW(A1)-1,2))
使用VBAmacros ,你可以这样做:
Sub Transpose1() Worksheets("Sheet1").Select Range("C1").Value = "ID+Name" 'Get Worksheet Dim ws As Worksheet: Set ws = Worksheets("Sheet1") 'Find last row Dim LastRow As Long: LastRow = ws.UsedRange.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Dim i As Long, j As Long, RowCounter As Long: RowCounter = 2 Dim DestCol As Long DestCol = 3 With ws 'loop through all rows For i = 2 To LastRow 'set value in row=1,col=3, with value from row=i,col=1 .Cells(RowCounter, DestCol) = ws.Cells(i, 1) RowCounter = RowCounter + 1 'set value in row=2,col=3, with value from row=i,col=2 .Cells(RowCounter, DestCol) = ws.Cells(i, 2) RowCounter = RowCounter + 1 Next i End With End Sub
假设您有两列ID分别在工作表A列和B列的Sheet1上的描述 。 该macros将在C列中输出所需的格式。 请在代码中查看注释以获得更好的理解。