将列的子集转换为行,并将剩余列保留在Excel VBA中

时间:2013-01-18 16:49:53

标签: excel excel-vba vba

我有一个事件注册数据,每周都会以CSV文件的形式发送给我。为简单起见,我对数据进行了贬低,但基本思路是它看起来如下:

Team Name1 Name2 Name3 Total
1    a     b     c     10
2    d     e     f     20
3    g     h     i     30
4    j     k     l     40
5    m     n     o     50
6    p     q     r     60
7    s     t     u     70

对于完整数据集,我需要每周将列Name1,Name2和Name 3转换为行,并使所有其他列保持相同,以使其如下所示:

Team Name Total
1    a    10
1    b    10
1    c    10
2    d    20
2    e    20
2    f    20
3    g    30
3    h    30
3    i    30
4    j    40
4    k    40
4    l    40
5    m    50
5    n    50
5    o    50
6    p    60
6    q    60
6    r    60
7    s    70
7    t    70
7    u    70
  • 最终格式需要在Excel文件中。
  • 这类任务的最佳方法是什么? Excel中/ VBA?访问?
  • 我没有最终格式的列名(如果这会增加复杂性,我可以自己添加这些名称。)

我用VBA使用我在互联网上找到的东西尝试了这个,因为我不是VBA专家,所以在我进一步尝试更彻底地学习VBA之前,我想我会看到最推荐什么技术以及是否任何人都有一个可行的简单解决方案。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我的第一个想法是Access,但如果这就是你正在做的事情,你可以留在Excel中。

这甚至可以在没有VBA的情况下完成 - 只使用MATCH()的Excel公式(对于团队名称,返回Excel行)和INDEX()(给它MATCH()结果,它将返回NAME1,2或3或总计。

答案 1 :(得分:0)

[求助]一位朋友刚刚帮我写了一个awk脚本来创建一个新的CSV文件,而且非常简单。我要去那条路。