将Excel行转换为列

如何将列A中的行转换为列B中的行并将其转换为单行?

这是我目前的设置:

ColumnA ColumnB Question1 Answer1 Question2 Answer2 Question3 Answer3 Question4 Answer4 Question5 Answer5 Question1 Answer6 Question2 Answer7 Question3 Answer8 Question4 Answer9 Question5 Answer10 

我想要的是:

 Question1 Question2 Question3 Question4 Question5 Answer1 Answer2 Answer3 Answer4 Answer5 Answer6 Answer7 Answer8 Answer9 Answer10 

我认为这最好用VBAmacros来解决。 如果您在Sheet1获得了当前表格并想要转换为Sheet2则以下macros将执行转换。

 Option Explicit Sub ConvertRows() Dim ws1 As Worksheet, ws2 As Worksheet Dim i As Integer, j As Integer Set ws1 = ActiveWorkbook.Sheets("Sheet1") Set ws2 = ActiveWorkbook.Sheets("Sheet2") 'Lists each value from column 1 For i = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row Step 1 For j = 1 To ws2.Cells(1, Columns.Count).End(xlToLeft).Column + 1 Step 1 If ws2.Cells(1, j).Value = ws1.Cells(i, 1).Value Then Exit For If ws2.Cells(1, j).Value = vbNullString Then ws2.Cells(1, j).Value = ws1.Cells(i, 1).Value Exit For End If Next j Next i 'Fills columns with matching values For i = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row Step 1 For j = 1 To ws2.Cells(1, Columns.Count).End(xlToLeft).Column Step 1 If ws2.Cells(1, j).Value = ws1.Cells(i, 1).Value Then ws2.Cells(Rows.Count, j).End(xlUp).Offset(1, 0).Value = ws1.Cells(i, 2).Value End If Next j Next i End Sub 

非VBA方法:

如果您正在处理一次性问题,则处理从列到行的转换的简单方法是使用INDEX()函数。 我build议在第一个目标单元格中​​使用以下内容(对于要放置的“Question1”和“Question2”要放置的位置):

 Question1 Destination Cell: =INDEX($A:$A,COLUMN(A1)) Answer1 Destination Cell: =INDEX($B:$B,COLUMN(A1)) 

从那里,只要将方程式复制到右边,直到您有多个行,因为这可以让您的列行转换无限地扩展到右侧。

**只要您的问题与解答数据在您指定的ColumnA和ColumnB中,这将会工作,但可以相应地进行修改(使用COLUMN(A1)的替代方法来定位您正在移动的行)。

而且,如果您想在上面显示的一组5列完成后堆叠问题和答案,请如下设置:

 Question1 Destination Cell: =INDEX($A:$A,COLUMN(A1)) Answer1 Destination Cell: =INDEX($B:$B,COLUMN(A1)) Answer6 Destination Cell: =INDEX($B:$B,MATCH([non-locked cell address of Answer1],$B:$B,0)+5) 

从那里,将这三个单元格复制到右侧5列。 然后,向下扩展,只复制以Answer6开头的那一行计算,然后粘贴到SheetA中,以覆盖ColumnA和ColumnB中的许多行。

这个方法会产生这样的结果:

 Question1 Question2 Question3 Question4 Question5 Answer1 Answer2 Answer3 Answer4 Answer5 Answer6 Answer7 Answer8 Answer9 Answer10 

干杯。