Sub codes()
Dim a As Variant, b As Variant, ky As Variant, itm As Variant
Dim dic As Object
Dim i As Long, k As Long
Dim s As String
a = Sheets("Sheet1").Range("A2", Sheets("Sheet1").Range("A" & Rows.Count).End(3))
ReDim b(1 To UBound(a, 1), 1 To 4)
Set dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a)
If InStr(1, a(i, 1), "(") = 0 Then s = a(i, 1) Else s = Trim(Split(a(i, 1), "(")(0))
dic(s) = dic(s) & "|" & a(i, 1)
Next
For Each ky In dic.keys
k = k + 1
b(k, 1) = ky
itm = Split(dic(ky), "|")
For i = 2 To UBound(itm)
b(k, 4) = itm(i)
k = k + 1
Next
If UBound(itm) > 1 Then k = k - 1
Next
Sheets("Sheet2").Range("A2").Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub