我需要按组转置表中的记录,如下例所示。我需要对表开头的行号标识的许多记录执行此操作。
需要转置自:
1 LastModified$Time 2011-05-10 12:57:03.0
1 Count1 0
1 Count2 58
1 LastModified$UserName mbeardsell
2 LastModified$Time 2010-03-31 21:45:53.0
2 Count1 0
2 Count2 0
2 LastModified$UserName MBeardsell
3 LastModified$Time 2006-12-13 12:55:47.0
3 Count1 1
3 Count2 0
3 LastModified$UserName markhall
到:
LastModified$Time Count1 Count2 LastModified$UserName
1 2011-05-10 12:57:03.0 0 58 mbeardsell
2 2010-03-31 21:45:53.0 0 0 MBeardsell
3 2006-12-13 12:55:47.0 1 0 markhall
PS 我不明白我得到的答案。我将重新表述我的问题以使其更清楚。我希望能够做到这一点:
如果我有以下价值观:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
我想按以下五组方式转置它们:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
我必须对很多记录执行此操作,我无法真正停下来并遍历每五个单元格并输入 =Transpose(....)
答案1
最简单的方法是:
- 在 LastModified$Time 上运行自动过滤
- 在结果的第二列中,引用 Count 1 单元格并向下复制
- 在结果的第三列中,引用 Count 2 单元格并向下复制
- 在结果的第四列中,引用 UserName 单元格并向下复制
- 清除过滤器,复制粘贴值
- 将 LastModified$Time 替换为 Nothing (如 Nothing)
- 将 LastModified$UserName 替换为 Nothing (如 Nothing)
- 将 Count1 替换为 Nothing (如 Nothing)
- 将 Count2 替换为 Nothing (如 Nothing)
- 删除空白行(使用自动过滤器)
- 添加您的标题
- 你完成了
答案2
与@nutsch 的答案类似,但(可能)出错的风险较小(不涉及公式),并且如果您的数据仅以两列开始,则将是:
- 在数据中,将文本分列(以空格分隔)[如果需要解析一列]。
- 将 ColumnA:D 复制到 ColumnE 并复制到 I 和 ,M。
- 删除(上移)E1:P1,然后删除 I1:P1,然后删除 M1:P1。
- 添加 Row1 并将文本从 ColumnB 拖到适合的列标签。
- 过滤全部,并使用 ColumnB 取消选择 LastModified$Time。
- 删除第 3 行至结束。
- 除ColumnA和ColumnC之外,删除没有标签的列。
- 删除过滤器,格式化以适合列宽。
以上(粗略地)进行了视觉描述,但考虑到问题的修订元素:
答案3
我发现这个解决方案是最简单的:
https://www.extendoffice.com/documents/excel/3360-excel-transpose-every-5-rows.html
确保单个数据列位于 A 列,从 A1 开始
- 在附近的新单元格中插入此公式:
=INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))
只需更改两次出现的“5”数字,使其与你的组集大小相匹配即可。(在本例中 - 修订后的演示文稿 - 为 5)
将公式拖到右侧,以匹配组集的大小。(在本例中,拖到 5 列)
将公式向下拖动,直到数据停止显示(您将得到“0”)