首页 > 解决方案 > Excel VBA表格操作:基于第一列转置列

问题描述

我想组织一个通过从多个文本文件导入生成的表格。将多个文本文件导入 excel 会创建一个类似于下面数据集的表。它在 A 列中具有文本文件名,值在 B 列中。

  1. 组数约为 400
  2. “ID”数始终为 160
  3. 使用公式会很棒,但我认为这是不可能的

这是我的数据集。它只有两列,但需要转置,以便每个不同的列 1 条目有一行,然后将有多个列:

|Group|Value|
|-----|-----|
|A.txt| 1a  |
|A.txt| 2a  |
|A.txt| 3a  |
|B.txt| 1b  |
|B.txt| 2b  |
|B.txt| 3b  |
|C.txt| 1c  |
|C.txt| 2c  |
|C.txt| 3c  |

这是想要的结果!

|Group|ID1|ID2|ID3|
|:----|:-:|:-:|--:|
|A.txt|1a |2a |3a |
|B.txt|1b |2b |3b |
|C.txt|1c |2c |3c |

每个条目的 ID 数量相同。

多年前我在 excel 中使用过 VBA,但自 2015 年以来我没有!需要一些帮助。

标签: excelvba

解决方案


我知道您要求提供 Excel/VBA 解决方案,但我会给您一个非常简单的 Google 表格解决方案。您可以轻松地在 goolge 表格上打开 Excel 并在那里工作。你甚至可以得到这个想法并将其移植到 Excel。只需将公式放在相同的位置并在分配的单元格处编写公式,或调整公式...

在此处输入图像描述

我也在这里粘贴代码:

D2: =UNIQUE(A2:A)
E1: = ARRAYFORMULA("ID" & TEXT(SEQUENCE(1,COUNTA(E2:2),1,1),"00"))
E2: =TRANSPOSE( filter($B$2:$B,$A$2:$A=$D2))
e3... drag down from E2

推荐阅读