1.插入两个辅助列,在E1输入“=SUM(D$1:D1)”,后下拉。
2.在F1输入“=ROW(A1)-1”,后下拉。
3.在A5输入
“=if(row(a1)>sum($d$2:$d$4),"",index(a$2:a$4,lookup(row(a1),$e$1:$e$4,$f$1:$f$4)+1))”。
4.把A5的数据复制粘贴到B5-F5。
5.复制第五列的数据到下面几列,直到显示出来所有列。
参考资料:百度百科-Excel函数
插入两个辅助列
E1=SUM(D$1:D1)
F1=ROW(A1)-1
两公式向下复制
随便找一个单元格比如A8输入=IF(ROW(A1)>SUM($D$2:$D$4),"",INDEX(A$2:A$4,LOOKUP(ROW(A1),$E$1:$E$4,$F$1:$F$4)+1))
把这个单元格向右向下复制即可。
Sub 自动插入指定行()
L = 4 '第四列
H = 2 '第二行
Temp = Cells(H, L)
Do While Temp <> ""
If Temp > 1 Then
'插入空行
Range(Cells(H + 1, 1), Cells(H + Temp - 1, 1)).Select
Application.CutCopyMode = False
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
'复制与粘贴
Range(Cells(H, 1), Cells(H, L)).Select
Selection.Copy
Range(Cells(H + 1, 1), Cells(H + Temp - 1, L)).Select
ActiveSheet.Paste
End If
'准备下一次循环
H = H + Temp
Temp = Cells(H, L)
Loop
End Sub
少量数据的话就用函数或自己直接插入相应的行就可以了,若操作量很大的话可以考虑用vba。需大批量操作数据+PP2327285699说明
建议用VBA代码解决。