Excel - 将列复制到行

时间:2015-12-29 06:08:15

标签: excel excel-vba excel-formula vba

我在excel的工作表中有3列,如下所示

RAW DATA

我需要在SEPARATE SHEET上以下面的格式输出

OUTPUT

我可以使用VB脚本或只使用excel功能。我能帮忙吗?

2 个答案:

答案 0 :(得分:1)

试试这个宏。将宏放在常规代码模块中(Insert> Module)。调整范围以适合您的情况。

Sub rearrange()
Dim cel As Range, tgt As Range

Set cel = ActiveSheet.Range("A1")
Set tgt = ActiveSheet.Range("D1")
Do While Len(cel) > 0
    tgt = cel
    tgt.Offset(1, 0) = cel.Offset(0, 1) & cel.Offset(0, 2)
    Set cel = cel.Offset(1, 0)
    Set tgt = tgt.Offset(2, 0)
Loop
ActiveSheet.Range("A:C").Delete

End Sub

答案 1 :(得分:0)

如果您不打算定期这样做,这是一个简单的解决方案。

我无法访问MS-Excel,所以我无法给出确切的答案。但我希望这会有所帮助。

步骤:

  1. 在表的右侧添加一个带有连接函数的新列,例如,合并单元格b1和c1,使用=Concatenate(b1,c1)并将此结果保存在单元格D1中。也可以为其他行复制粘贴功能。
  2. 将您的选择复制到您想要结果的新工作表。
  3. 使用粘贴特殊仅粘贴复制的单元格的值而不使用forumulas。这可确保它不会引用原始单元格或相对更改。
  4. 使用转置功能可以在粘贴数据时更改最终输出的结果内容。类似的一个here
  5. 如果您需要定期执行此操作,则此方法不适用。使用VBA脚本会更好。但是自从我使用Excel以来已经很长时间了,所以我无法帮助你。