Если вы введете их в B2 и 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)
а затем заполните их столбцами B и C, вы получите таблицы для:
Б) сколько раз каждый элемент (в той же строке) должен повторяться в столбце
C) из какого A1-offset-ряда выбрать повторяемое значение.
Я не думаю, что это можно сделать с помощью формул.
VBA должен быть использован; ниже вы найдете "sub" (с выбранной выше логикой / формулами), который создаст запрошенную таблицу, если ваша таблица начинается с 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
Результат:
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