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