我有一个大型电子表格,其中包含一组我希望分成几行的数据。
格式如下:
ID A B C D
这些是在不同的列中,我希望它们以
的格式显示 ID A
ID B
ID C
ID D
ID2 A
ID2 B
ID2 C
ID2 D
等等。我不确定如何做到这一点 - 任何帮助都能得到赞赏。
答案 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)
这是一个公式解决方案:
单元格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。