Excel: Duplikate in 2 Tabellen finden (sparsame Funktion)

overflow

Member of Honour
Suche eine Funktion um ressourcenschonend Duplikaten in Tabellen zu finden. Bisher habe ich das immer über sverweis immer gemacht - jedoch habe ich jetzt knapp 100.000 Datensätzen. Das prüfen dauert eine Ewigkeit...
 
Ich bin jetzt kein Excel-Spezialist, aber wie wäre es mit:
  1. Möglichst eindeutigen Hash für jeden Eintrag berechnen
  2. Einträge nach Hash sortieren (sollte in O(nlog(n)) gehen)
  3. Immer nur mehr mit allen Elemente mit selbem Hash (also den nächsten paar) vergleichen

Damit kommst du zumindest von O(n²) weg. Der Hash kann ja auch ganz einfach eine Familienname+Sozialversicherungsnummer oder so etwas sein.

mfg benediktibk
 
Ich verwende diesen Code dafür.

Code:
Public Sub Doppelte_Rot()
Dim lngZeile As Long
Dim lngZeilenSprung As Long
Dim strSuchwert As String
lngZeile = Cells(Rows.Count, 2).End(xlUp).Row
 
  For lngZeilenSprung = lngZeile To 1 Step -1
    strSuchwert = Cells(lngZeilenSprung, 2).Value
      If Application.WorksheetFunction.CountIf(Range(Cells(1, 2), Cells(lngZeile, 2)), strSuchwert) <> 1 Then
        Cells(lngZeilenSprung, 2).Interior.ColorIndex = 3
      End If
  Next lngZeilenSprung
End Sub

Muss noch angepasst werden, ich weiß nur nicht ob du damit schneller bist!
 
Zurück
Oben