将一行分成几行,带有标识符
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填满。
我有一个很大的电子表格,其中有一组数据,我想分成几行。
格式如下:
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填满。