Sub Emre()
Zaman = Timer
Range("F:H") = ""
Dim dic As Object, liste(), dizi()
Son = Cells(Rows.Count, "B").End(3).Row
liste = Range("A3:C" & Son).Value
ReDim dizi(1 To Son, 1 To 3)
Set dic1 = CreateObject("scripting.dictionary")
Set dic2 = CreateObject("scripting.dictionary")
For X = 1 To UBound(liste, 1)
aranan1 = liste(X, 1)
aranan2 = liste(X, 1) & liste(X, 2)
If Not dic1.exists(aranan1) Then
n = n + 1
m = m + 1
dic1.Add aranan1, n
dic2.Add aranan2, m
ReDim Preserve dizi(1 To Son, 1 To 3)
dizi(n, 1) = liste(X, 1)
dizi(n, 2) = 1
Else
If Not dic2.exists(aranan2) Then
m = m + 1
dic2.Add aranan2, m
ReDim Preserve dizi(1 To Son, 1 To 3)
dizi(dic1.Item(aranan1), 2) = dizi(dic1.Item(aranan1), 2) + 1
End If
End If
dizi(dic1.Item(aranan1), 3) = dizi(dic1.Item(aranan1), 3) + liste(X, 3)
Next X
Range("F3").Resize(dic1.Count, 3) = dizi
Range("F3:H100").Sort Range("F3")
MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
Sub BENZERSİZ_ÇİFT_SÜTUN()
Dim s As Object, liste(), dizi()
Son = Cells(Rows.Count, "A").End(3).Row
liste = Range("A3:C" & Son).Value
ReDim dizi(1 To Son, 1 To 3)
Set s = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(liste, 1)
Aranan = liste(i, 1) & liste(i, 2)
If Not s.exists(Aranan) Then
Say = Say + 1
s.Add Aranan, Say
ReDim Preserve dizi(1 To Son, 1 To 3)
dizi(Say, 1) = liste(i, 1)
'dizi(say, 2) = dizi(say, 2) + liste(i, 2)
'dizi(say, 3) = dizi(say, 3) + liste(i, 2)
End If
Next i
Range("F3").Resize(s.Count, 3) = dizi
End Sub