Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Doppelte Einträge per VBA (damit es schnell geht)

Doppelte Einträge per VBA (damit es schnell geht)
17.09.2013 13:00:11
nontacky
Hallo allerseits,
ich habe eine Liste mit 50.000 Einträgen, bei denen ich überprüfen will ob Einträge in Spalte K (K15 bis K50.000) doppelt oder gar mehrfach sind.
Aktuell löse ich das mit einer Zählenwenn Funktion in Spalte A (also =zählenwenn(K:K;K15), aber da ist die Performance sehr schlecht, das berechnen dauert mehrere Minuten.
Ich bräuchte also ein Makro, das mir per Knopfdruck einmal die Liste durchrechnet und mir dann in der jeweiligen Zeile in der ein Eintrag in Spalte K doppelt ist, in Spalte A die Anzahl anzeigt wie oft der Eintrag in Spalte K doppelt / mehrfach ist.
Richtig toll wäre es natürlich wenn in der entsprechenden Zeile in Spalte A dann auch drin stünde in welchen anderen Zeilen der jeweils doppelte Eintrag ist, aber das ist nicht zwingend nötig :).
Vielen Dank für eure Hilfe.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Einträge per VBA (damit es schnell geht)
17.09.2013 13:07:18
Rudi
Hallo,
Sub Anzahl()
With Range("A15:A50000")
.FormulaR1C1 = "=countif(C11,rc11)"
.Copy
.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End Sub

Gruß
Rudi

Doppelte Einträge per VBA (damit es schnell geht)
17.09.2013 13:40:08
nontacky
Vielen Dank, funktioniert. Ist aber genau so langsam wie wenn man es per Funktion macht :).

AW: Doppelte Einträge per VBA (damit es schnell geht)
17.09.2013 14:36:49
Rudi
Hallo,
klar, es nutzt ja auch die Funktion. Nur dass die anschließend in Werte umgewandelt wird.
Zählenwenn() ist übrigens eine der schnellsten Funktionen in Excel. Mit 'reinem' VBA wird's nur langsamer.
Gruß
Rudi

AW: Doppelte Einträge per VBA (damit es schnell geht)
17.09.2013 14:51:29
Rudi
Hallo,
doch ne Lösung:
Sub zaehlen()
Dim arr, i As Long, oCount As Object
Set oCount = CreateObject("Scripting.dictionary")
arr = Range(Cells(15, 11), Cells(Rows.Count, 11).End(xlUp))
For i = 1 To UBound(arr)
oCount(arr(i, 1)) = oCount(arr(i, 1)) + 1
Next
For i = 1 To UBound(arr)
arr(i, 1) = oCount(arr(i, 1))
Next
Cells(15, 1).Resize(UBound(arr)) = arr
End Sub

Gruß
Rudi

Anzeige
Doppelte Einträge per VBA (damit es schnell geht)
17.09.2013 15:08:41
nontacky
Hallo Rudi,
absolut genial - so schnell, Wahnsinn .. man merkt gar nicht, dass überhaupt was gerechnet wird :).
Vielen Dank!

147 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige