首页 文章

将多个列组合成一个列

提问于
浏览
1

使用Excel,如何使用多列创建单个列?

例如:我可能需要删除2012-2014列并创建一年的列 . 同时,我需要在2012 - 2014年保留信息,并为这些信息创建一个列,以便与每一行(名称,国家,年级,年份,数据)对齐:

Name        Country   Grade 2012        2013        2014
Smith       France    A     0.333194233 0.64347979  0.72795544
Adams       Germany   D     0.307532421 0.580823282 0.851274645
Franklin    Americas  C     4.597219783 7.983514354 10.79688839
Roosevelt   Americas  B     0.615064841 1.089043653 1.502249374
Washington  Australia A     0.261792462 0.456573955 0.620206846

所以看起来应该是这样的:

Name        Country   Grade Year Data
Smith       France    A     2012 0.333194233
Smith       France    A     2013 0.64347979
Smith       France    A     2014 0.72795544 etc.

2 回答

  • 0

    假设 Name 在A1中,插入一个新的ColumnD并在D1中复制以适应:

    =A1&"#"&B1&C1
    

    然后展开(图片细节here选择D1:Gn( n 以适应)) .

    在步骤8之后,在表中插入三个新列(成为B:D)和B2中:

    =LEFT(A2,FIND("#",A2)-1)
    

    在C2中:

    =MID(A2,FIND("#",A2)+1,LEN(A2)-LEN(B2)-2)
    

    在D2中:

    =RIGHT(A2)
    

    整理适合 .

  • -1

    您是否在'Paste Special'中尝试过TRANSPOSE?或者你想要它动态吗?

    Link

    找到解决方案:LINK它的工作原理!

    创建此模块并运行宏:

    Public Sub tranpose()
    Dim i   As Long, _
        LR1 As Long, _
        LR2 As Long, _
        LC  As Long
    Application.ScreenUpdating = False
    Columns(1).Insert Shift:=xlToRight
    LR2 = Range("B" & Rows.Count).End(xlUp).row
    Range("A1:A" & LR2).Value = Chr(65)
    LC = Cells(1, Columns.Count).End(xlToLeft).Column
    For i = 3 To LC
        LR1 = Range("A" & Rows.Count).End(xlUp).row + 1
        LR2 = Cells(Rows.Count, i).End(xlUp).row
        Range(Cells(1, i), Cells(LR2, i)).Cut Destination:=Cells(LR1, 2)
        Range(Cells(LR1, 1), Cells(LR1 + LR2 - 1, 1)).Value = Chr(63 + i)
    Next i
    Application.ScreenUpdating = True
    End Sub
    

相关问题