将数据从单列表转置为多列

将数据从单列表转置为多列

我有一个 Excel 电子表格,里面有数万个条目,但这些条目没有组织好。所有数据都在一列中,每个条目占据 3 行,后面跟着一个空格。

例如:

Entry 1 Name
Entry 1 Address
Entry 1 Phone

Entry 2 Name
Entry 2 Address
Entry 2 Phone

大约有 50 万个条目。我需要更好地组织它,并希望将其转置成如下所示

Entry 1 Name      Entry 1 Address      Entry 1 Phone
Entry 2 Name      Entry 2 Address      Entry 2 Phone

我一直在想办法编写一个可以在 Excel 中自动填充的公式,但一直搞不清楚。我在 OSX 上使用 MS Office。但任何解决方案,无论是 Excel 还是非 Excel,都很好。谢谢!

答案1

听起来像是 VBA 的工作 - 我相信此代码应该在 OSX 版本的 Excel 中运行,但我只在 Windows 上测试过它。

你能运行这个吗?

手动创建一个名为 Sheet2 的工作表,并将数据表命名为 Sheet1(或在下面的代码中重命名)。它从新工作表的 B 列开始,如果您不想让它在那里,请手动将其删除。

如果有效请告诉我。

Sub Macro1()

     Application.ScreenUpdating = False  ' Turn off Screen updating

     Dim LastRow As Long                 ' Find the last row of input sheet
     LastRow = Sheets("Sheet1").Range("A1").SpecialCells(xlCellTypeLastCell).Row

     Dim row_working_on As Integer

     For row_working_on = 1 To LastRow
          Worksheets("Sheet2").Cells(Int(row_working_on / 4) + 1, row_working_on Mod 4 + 1) = Sheets("Sheet1").Cells(row_working_on, 1).Value
     Next row_working_on

     Application.ScreenUpdating = True  ' turn on Screen updating

End Sub

相关内容