多列中的范围数据在vba中转换为单行

时间:2017-07-17 18:03:28

标签: excel vba transpose

我正在尝试将多个列中的多个数据转换为新工作表中的单个行。我的原始数据如下所示

Col1 | Col2 | Col3
  1  |   2  |  3
  1  |   2  |  3
  1  |   2  |  3

Row1   1  |   1  |  1 |  2  |   2  |  2  | 3  |  3  |  3   

有人可以帮助我使用可以从原始工作表转换到新工作表的vba代码。谢谢!

1 个答案:

答案 0 :(得分:0)

这假设您在名为data的工作表上的数据位于A:C中。把它放在第一个单元格中:

=IFERROR(IFERROR(INDEX(data!$A$1:INDEX(data!$A:$A,MATCH(1E+99,data!$A:$A)),COLUMN(A:A)),IFERROR(INDEX(data!$B$1:INDEX(data!$B:$B,MATCH(1E+99,data!$A:$A)),COLUMN(A:A)-COUNT(data!$A:$A)),INDEX(data!$C$1:INDEX(data!$C:$C,MATCH(1E+99,data!$A:$A)),COLUMN(A:A)-COUNT(data!$A:$B)))),"")

然后复制到右边。

enter image description here