我有一张excel表,其中包含具有某些地理参数的行。我想将文件和下一个文件之间的所有行转置到相邻列。原始图纸就像是图像中的图纸 - 1.我希望它像Image - 2中那样转换。
对于One Row - One Column,我使用了这段代码http://www.mrexcel.com/forum/excel-questions/79645-copying-alternate-rows-data-into-column.html,它完美无缺。但是不知道如何为多行 - 列转置
答案 0 :(得分:1)
这是一个VBA解决方案
Sub TransposeData()
Const FirstRow As Long = 1
Const WorkSheetName As String = "Sheet4"
Dim arData, v
Dim List As Object
Set List = CreateObject("System.Collections.ArrayList")
Dim NextRow As Long, x As Long
With Worksheets(WorkSheetName)
arData = .Range("A1", .Range("A" & .Rows.Count).End(xlUp)).Value
NextRow = WorksheetFunction.CountA(.Range("B:B")) + 1
For Each v In arData
If InStr(v, "File:") And List.Count > 0 Then
.Cells(NextRow, "B").Resize(1, List.Count) = List.ToArray
List.Clear
NextRow = NextRow + 1
End If
List.Add v
Next
If List.Count > 0 Then .Cells(NextRow, "B").Resize(1, List.Count) = List.ToArray
End With
End Sub
答案 1 :(得分:0)
这适用于Google表格。 作为一个样本,我有3条记录,每条记录有4个项目,所以我有从A1到A12的数据代表我的3条记录。 您想要创建一个列,例如B,其数字从0到任何值。
然后在单元格C1中你可以有类似的东西 = INDEX($ A $ 1:$ A $ 12 $ B1 * 4 + 1,1)
在单元格D1中你可以有类似的东西 = INDEX($ A $ 1:$ A $ 12 $ B1 * 4 + 2,1)
在单元格E1中你可以有类似的东西 = INDEX($ A $ 1:$ A $ 12 $ B1 * 4 + 3,1)
在单元格F1中你可以有类似的东西 = INDEX($ A $ 1:$ A $ 12 $ B1 * 4 + 4,1)
所以我完成了第一行,然后我只需单击并拖动以填充其余行,并且因为$ B1 1没有美元符号,它会自动从$ B2读取下一行$ B3并抓住了正确的数据。