【问题标题】:Transpose a subset of columns into rows and keep remaining columns in Excel VBA将列的子集转换为行并将剩余列保留在 Excel VBA 中
【发布时间】:2013-01-18 16:49:52
【问题描述】:

我有一个活动注册数据,每周都会以 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 之前,我想我会看看最推荐什么技术任何人都有一个可行的简单解决方案。

感谢您的帮助。

【问题讨论】:

  • 您可以在 Excel 中执行此操作。一个简单的循环可以处理你想要的。很久以前我已经回答了一个类似的问题......将不得不搜索它。如果可以的话我会回帖

标签: excel vba


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多