使用标识符将一行拆分为多行

时间:2015-01-16 11:40:04

标签: excel

我有一个大型电子表格,其中包含一组我希望分成几行的数据。

格式如下:

ID A B C D

这些是在不同的列中,我希望它们以

的格式显示

ID A
ID B
ID C
ID D
ID2 A
ID2 B
ID2 C
ID2 D

等等。我不确定如何做到这一点 - 任何帮助都能得到赞赏。

2 个答案:

答案 0 :(得分:1)

您可以在超级用户的this thread中找到VBA和基于公式的解决方案,并提供详细说明。

根据您的情况量身定制的VBA代码:

Sub NewLayout()
    ' go over the rows
    outrow = 0
    For rowi = 1 To Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
        ' go over columns B..E
        For coli = 2 To 5
            ' for every cell: move down a row, copy id, cell value
            outrow = outrow + 1
            Cells(rowi, 1).Copy Destination:=Cells(outrow, 10)
            Cells(rowi, coli).Copy Destination:=Cells(outrow, 11)
        Next coli
    Next rowi
End Sub

答案 1 :(得分:0)

这是一个公式解决方案:

The picture is shown here.

单元格H1是分隔符。在这种情况下是空格。

Helper:=SUM(C1,LEN(B1)-LEN(SUBSTITUTE(B1,$H$1,"")))+1

您必须再填充一行公式。

E1:=a1

E2:=LOOKUP(ROW(1:1),$C:$C,A:A)&""

F1:=b1

F2:=MID($H$1&LOOKUP(ROW(A1),$C:$C,B:B)&$H$1,FIND("艹",SUBSTITUTE($H$1&LOOKUP(ROW(A1),$C:$C,B:B)&$H$1,$H$1,"艹",ROW(A2)-LOOKUP(ROW(A1),$C:$C)))+1,FIND("艹",SUBSTITUTE($H$1&LOOKUP(ROW(A1),$C:$C,B:B)&$H$1,$H$1,"艹",ROW(A2)-LOOKUP(ROW(A1),$C:$C)+1))-FIND("艹",SUBSTITUTE($H$1&LOOKUP(ROW(A1),$C:$C,B:B)&$H$1,$H$1,"艹",ROW(A2)-LOOKUP(ROW(A1),$C:$C)))-1)&""

缺点:

数字将转换为文字。 当然,您可以删除公式末尾的&"",但空白单元格将填充为0。