Excel将行转换为具有组的列

时间:2012-07-30 16:33:05

标签: excel pivot-table transpose

假设我的excel中的列设置如下:

Name     A    B    C    D  
George   10   5    4    6

而我希望它是这样的:

Name   Category   Amount  
George     A        10  
George     B         5  
George     C         4  
George     D         6

是否有一种简单的方法可以使用转置或使用数据透视表进行复制和粘贴,还是必须使用VBA完成?我一直试图只用VBA来做,但我还没走得很远。

3 个答案:

答案 0 :(得分:3)

真正的答案而不是链接怎么样?

  1. 突出显示要旋转的两行。
  2. 复制
  3. 查找开放行
  4. Paste Special - > Transpose

答案 1 :(得分:2)

根据评论,您可以关注该链接。描述Excel 2010类似步骤的相关SO答案为How can I transform rows into repeated column based data?

答案 2 :(得分:0)

如果要在源数据和目标数据之间保持“动态”链接,那么每当源数据发生更改时,目标也会自动执行,您需要公式。 在这种情况下,您可以使用Excel: Formulas for converting data among column / row / matrix中的第7项:

要进入matrix_data3转换matrix_data2,只需使用matrix_data2_top_leftmatrix_data3_top_left,并使用公式

=OFFSET(matrix_data2_top_left,COLUMN()-COLUMN(matrix_data3_top_left),ROW()-ROW(matrix_data3_top_left))

并复制到合适的目标范围。

请注意,matrix_data2_top_leftmatrix_data3_top_left分别对于源和目标范围的左上角单元格很方便Excel range names,并且可以在公式中用绝对引用替换它们(例如,$B$1$B$6)。 此外,matrix_data2matrix_data3是Excel范围名称,但这里不需要这些范围(无论是名称还是绝对引用)。