转置n'行到一个列

时间:2015-12-16 16:41:09

标签: excel excel-vba excel-2010 vba

我想将三行转置为一列。例如:

    A     B      C       D       E       F       G
1 60000 40000   50000   40000   50000   50000   40000
2 50000 40000   50000   50000   40000   50000   50000
3 60000 50000   50000   50000   50000   50000   50000

 A
60000 1
40000 1
50000 1
40000 1
50000 1
50000 1
40000 1
50000 2
40000 2
50000 2
50000 2
40000 2
50000 2
50000 2
60000 3
50000 3
50000 3
50000 3
50000 3
50000 3
50000 3

我写过VBA并最终得到的代码不够自动化。我的逻辑是针对每个列的转置:true然后将它们连接在一个列中。

1 个答案:

答案 0 :(得分:1)

选择一个单元格并输入:

=OFFSET($A$1,ROUNDUP(ROWS($1:1)/7,0)-1,MOD(ROWS($1:1)-1,7))

然后向下复制。

enter image description here

使用类似的公式,您可以将任何矩形表映射到单个列或单个行。也可以将任何单个行或列映射到矩形表中。

修改#1:

要获取Poster示例中的 second 列,请选择我的单列输出旁边的单元格,然后输入:

=ROUNDUP(ROWS($1:1)/7,0)

向下复制。 (在我的示例中,这是单元 I5