Try this one
Option Explicit
Sub test()
Dim a, i As Long, ii As Long, txt As String, n As Long
a = Sheets("yty").Cells(1).CurrentRegion.Value
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For i = 1 To UBound(a, 1)
txt = Join$(Array(a(i, 1), a(i, 2), a(i, 3)), Chr(2))
If Not .exists(txt) Then
n = n + 1: .Item(txt) = n
For ii = 1 To UBound(a, 2)
a(n, ii) = a(i, ii)
Next
Else
For ii = 4 To UBound(a, 2)
If (a(i, ii) <> "") * (a(i, ii) <> " - ") Then a(.Item(txt), ii) = a(i, ii)
Next
End If
Next
End With
With Sheets.Add().Cells(1).Resize(n, UBound(a, 2))
.Value = a
.Columns.AutoFit
End With
End Sub
Bookmarks