Se você inserir esses dados em B2 e C2
B2 =IFERROR(IF(AND(A2=A1;B1=3);1;IF(AND(A2=A1;B1<3);0;3));3) C2 =IFERROR(OFFSET(B2;-1;0)+OFFSET(C2;-1;0);0)
e, em seguida, preencha as colunas B e C com essas, você receberá uma tabela para:
B) quantas vezes cada item (na mesma linha) deve repetir na coluna
C) qual linha de deslocamento A1 para escolher o valor repetido de.
Agora, não acho que isso seja possível com fórmulas.
O VBA precisa ser usado; abaixo você encontra um "sub" (com a lógica / fórmulas escolhidas de cima) que irá criar a tabela solicitada, dada a sua tabela começando em A1
Sub createDupeTable() r = 1: c = 1 ' Assumption: for accessing A1 with Cells(r,c) br = 1: bc = c + 1 ' where to start inserting copies, Cells(br,bc) ' value in "B1" (above) always 3 pz = 3 Do While Cells(r, c).Value <> "" a1 = Cells(r, c).Value a2 = Cells(r + 1, c).Value b1 = pz If a2 = a1 And b1 = 3 Then Z = 1 Else If a2 = a1 And b1 < 3 Then Z = 0 Else Z = 3 End If End If pz = Z Do While Z > 0 Cells(br, bc).Value = Cells(r, c).Value ' copy one value from the list Z = Z - 1 br = br + 1 Loop r = r + 1 Loop End Sub
O resultado:
A B 1 5YJSA3H17EFP49729 5YJSA3H17EFP49729 2 5YJSA3H17EFP41128 5YJSA3H17EFP49729 3 5YJSA3H17EFP30954 5YJSA3H17EFP49729 4 5YJSA3H17EFP30954 5YJSA3H17EFP41128 5 5YJSA3H17EFP30212 5YJSA3H17EFP41128 6 5YJSA3H17EFP30050 5YJSA3H17EFP41128 7 5YJSA3H17EFP30954 8 5YJSA3H17EFP30954 9 5YJSA3H17EFP30954 10 5YJSA3H17EFP30954 11 5YJSA3H17EFP30212 12 5YJSA3H17EFP30212 13 5YJSA3H17EFP30212 14 5YJSA3H17EFP30050 15 5YJSA3H17EFP30050 16 5YJSA3H17EFP30050