将一行分成几行,带有标识符

Split a row into several, with an identifier

我有一个很大的电子表格,其中有一组数据,我想分成几行。

格式如下:

ID A B C D

这些在单独的列中,我希望它们以

的格式显示

ID A
编号 B
编号 C
编号 D
ID2 A
ID2 B
ID2 C
ID2 D

等等。我不太确定我该怎么做 - 任何帮助表示赞赏。

您可以在超级用户 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

这是一个公式解决方案:

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

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

你必须再填一行公式。

E1:=a1

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

F1:=b1

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

缺点:

数字将被转换为文本。 当然你可以把公式末尾的&""去掉,但是空白的单元格会被0填满。