转置一组记录

转置一组记录

我需要按组转置表中的记录,如下例所示。我需要对表开头的行号标识的许多记录执行此操作。

需要转置自:

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之外,删除没有标签的列。
  • 删除过滤器,格式化以适合列宽。

以上(粗略地)进行了视觉描述,但考虑到问题的修订元素:

SU495953 示例

答案3

我发现这个解决方案是最简单的:

https://www.extendoffice.com/documents/excel/3360-excel-transpose-every-5-rows.html

确保单个数据列位于 A 列,从 A1 开始

  1. 在附近的新单元格中插入此公式:

=INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))

  1. 只需更改两次出现的“5”数字,使其与你的组集大小相匹配即可。(在本例中 - 修订后的演示文稿 - 为 5)

  2. 将公式拖到右侧,以匹配组集的大小。(在本例中,拖到 5 列)

  3. 将公式向下拖动,直到数据停止显示(您将得到“0”)

相关内容