模拟数据及结果如图:

代码如下:
Sub Test529()
Dim arr, i&, n&
r = Cells(Rows.Count, 2).End(xlUp).Row
arr = Range("b1:b" & r + 1)
For i = 2 To r
If arr(i - 1, 1) <> arr(i, 1) Then
Do
n = n + 1
Loop Until arr(i + n - 1, 1) <> arr(i + n, 1) _
Or i + n = r + 1
Cells(i, "d").Resize(, n) = arr(i, 1)
End If
n = 0
Next
End Sub