Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-重新排列新工作表中的数据_Vba_Excel - Fatal编程技术网

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

VBA-重新排列新工作表中的数据,vba,excel,Vba,Excel,我是VBA新手,无法找到一个线程来回答这个问题。如果重复,请道歉 我在Excel文件中有两张工作表,分别称为“sheet1”和“sheet2”。“sheet1”有50000多行,如下所示:(如果按“用户名”排序,则为“问题”) 也就是说,每行都有一个唯一的问题和用户名组合。请注意,用户名基本上是“Mr_”后面的随机数,问题编号也是任意的。“答案”列只包含整数。不同的用户名有不同数量的问题。我想做的是创建一个电子表格,看起来像下面的“sheet2”中的表格: 也就是说,我想把每个用户名放在自己的行

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

我在Excel文件中有两张工作表,分别称为“sheet1”和“sheet2”。“sheet1”有50000多行,如下所示:(如果按“用户名”排序,则为“问题”)

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

也就是说,我想把每个用户名放在自己的行中,对于用户名没有回答的任何问题,都用空格表示


任何建议的代码都将非常感谢。

如果您不需要特别的VBA,那么答案可能非常简单。Pivot表可以为您提供所需的确切数据。你应该:

  • 选择表1中的所有数据

  • 选择插入->透视表

  • username
    字段放置在行标签区域中

  • 问题
    放入列标签区域

  • 答案
    放入值区域


欢迎来到stackoverflow。如果你在询问之前表现出一些研究成果,人们会更愿意提供帮助。否则,您将作为一名专家出现,除了向我们展示您自己的研究结果外,您还应该在源数据示例中解释“…许多其他列…”的重要性。你们有三列的多个集合吗?或者可以忽略那些“…许多其他专栏…”,因为您只对前三个感兴趣?谢谢您的回复。不,可能会忽略“许多其他列”,只是想指出它们在那里。我尝试了一些事情,但我还远远没有达到目的,所以我没有包括在内;您正在使用的算法;在那里你会遇到麻烦。另请参阅“帮助”以获取有关如何提出好问题的建议。非常感谢您的帮助。我不知道“数据透视表”。按照您的步骤,然后在右键单击生成的数据时,从“汇总值依据”中选择“乘积”或“总和”即可。我认为“乘积”和“总和”起作用是因为每个用户名和问题的组合都是唯一的。再次感谢。
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       |
...
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...