Sub es()
Dim t As Variant, t2() As Variant, x As Long, i As Long, k As Long, M As Object
On Error Resume Next
Application.ScreenUpdating = False
Set M = CreateObject("Scripting.Dictionary")
t = Range("a2:p" & Cells(Rows.Count, 1).End(xlUp).Row)
x = 1
For i = 1 To UBound(t)
t(i, 16) = t(i, 1) & t(i, 2) & t(i, 3) & t(i, 4) & t(i, 5) & t(i, 6) & t(i, 7) & t(i, 8) _
& t(i, 9) & t(i, 10) & t(i, 11) & t(i, 12) & t(i, 13) & t(i, 14) & t(i, 15)
If Not M.Exists(t(i, 16)) Then
M.Add t(i, 16), t(i, 16)
ReDim Preserve t2(1 To 15, 1 To x)
For k = 1 To 15: t2(k, x) = (t(i, k)): Next k: x = x + 1: End If: Next i
Range("a2:o" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
Range("a2").Resize(UBound(t2, 2), UBound(t2, 1)) = Application.Transpose(t2)
Erase t, t2: Set M = Nothing
End Sub