将多行转换为一列

我有下面的表格:

ID Description 1 name1 2 name2 3 name3 4 name4 

我想有以下几点

 ID+name 1 name1 2 name2 3 name3 4 name4 

你有特别的build议吗? 已经尝试了一些其他转置方法,但我无法一次pipe理两行。

感谢您的帮助。

如果你愿意使用公式,那么以下可能会有所帮助。

Cell D2input以下公式

 =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列中输出所需的格式。 请在代码中查看注释以获得更好的理解。