【问题标题】:how to use a macro to transpose data from rows into columns如何使用宏将数据从行转换为列
【发布时间】:2023-12-12 17:56:01
【问题描述】:

我对 VBA 完全陌生(除了手动录制和运行),所以希望有人可以帮助我设计这个。我有一个基于日期和类型的工作表,其中每个唯一 ID(A 列)的行数未指定。 :

A        B             C            D

1    12Jan2010    type A     Person1

1    16Jan2010    type B     Person1

2    06Dec2009    type A     Person2 

3    16Dec2009    type A     Person1

5    20Dec2009    type A     Person2

5    02Jan2010    type B     Person2
4    10Dec2009    type A     Person2

根据唯一 ID,我想将此数据转换为每个唯一 ID 的 1 行,然后将所有日期值按时间顺序排列在该行中,如下所示:

A   B           C                D
1   Person1     12Jan2010(A)     16Jan2010(B)  
2   Person2     06Dec2009(A)  
3   Person1     16Dec2009(A)  
4   Person2     10Dec2009(A)  
5   Person2     20Dec2009(A)     02Jan2010(B)  

有没有办法在宏中完成这项工作?

【问题讨论】:

  • 欢迎来到 *!您可能需要一些时间来学习 * Markdown 语法 *.com/editing-help

标签: excel vba rows transpose


【解决方案1】:

使用数据透视表!选择整个表,并创建一个数据透视表,其中侧字段为 A 列,顶部字段为 B 列,并在中间聚合部分计算 A 列。

您最终会得到一个由唯一 ID 作为行、日期作为列以及交叉点的行数组成的矩阵!

【讨论】: