VBA - 重新排列新工作表中的数据

时间:2014-08-24 16:15:40

标签: excel vba excel-vba

我是VBA的新手,找不到线程来回答这个问题。道歉,如果重复。

我在名为“sheet1”和“sheet2”的Excel文件中有2张纸。 “sheet1”有这样的50,000多行:(如果它按“用户名”排序,那么“问题”)

username   |question   |answer    | ...many other columns...
Mr_1754    |Q10        |56        |
Mr_1754    |Q18        |32        |
Mr_1754    |Q56        |42        |
Mr_9564    |Q10        |1         |
Mr_9564    |Q22        |564       |
...

也就是说,每行都有一个唯一的问题和用户名组合。请注意,用户名基本上是“Mr_”之后的随机数字,问题编号也是任意的。 “答案”列仅包含整数。不同的用户名具有不同数量的问题。我想要做的是在“sheet2”中创建一个如下所示的电子表格:

username   |Q10       |Q18       |Q22       |Q56       | ...as many columns as there are questions...
Mr_1754    |56        |32        |          |42        |
Mr_9564    |1         |          |564       |          |
...As many rows as there are usernames...

也就是说,如果用户名没有回答的任何问题,我想将每个用户名放在自己的行中,并留空。

任何建议的代码都将非常受欢迎。

1 个答案:

答案 0 :(得分:0)

如果您不需要专门的VBA,答案可能非常简单。数据透视表可以为您提供所需的确切数据。你应该:

  • 选择sheet1中的所有数据

  • 选择Insert-> Pivot table

  • username字段放在行标签区域

  • question放入列标签区域

  • answer放在值区