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