Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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

Schnell sortieren

Schnell sortieren
29.11.2019 12:04:54
Tobias

Guten Morgen,
Ich muss in meiner Datei sehr große Datenmengen sortieren. Da das aufgezeichnete Makro sehr lange dauert habe ich mal gegooglet und hier im Forum geschaut wie man schneller sortieren kann.
Dies habe ich dazu gefunden:


Hallo
probier mal das Makro hier, das ist bei mir c.a. 20x schneller als die Schleife von Christian   _
und Jan (getestet mit 10000 Zeilen, von denen 1000 gelöscht werden müssen):
Sub löschen1()

Columns(1).Insert
With Range(Cells(1, 2), Cells(65536, 2).End(xlUp)).Offset(0, -1)
.FormulaR1C1 = "=if(rc2=""Abschnitt"", true, row())"
.Formula = .Value
.EntireRow.Sort key1:=Cells(1, 1), order1:=xlAscending, header:=xlNo
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
.EntireColumn.Delete
End With
End Sub

wenn die Sortierung der Daten verändert werden darf, oder du einen Schlüssel hast, nach dem du _
wieder zu zurücksortieren kannst, kannst du auch diesen Code verwenden, der ist kurz und noch _ einmal mehr als doppelt so schnell wie meine erster vorschlag (also c.a. Faktor 40 gegenüber der Schleife), außerdem sollte es keine Probleme bei sehr grossen Datenmengen geben:

Sub löschen3()
With Columns(1)
.EntireRow.Sort key1:=Cells(1, 1), order1:=xlAscending, header:=xlNo
.AutoFilter Field:=1, Criteria1:="Abschnitt"
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
End Sub
Ich möchte nichts löschen sondern nur sortieren aber irgendwie bekomme ich den Code nicht vernünftig angepasst.
Es ist eine intelligente Tabelle und fängt ab Zeile 2 an. Es soll die Spalte P absteigend sortiert werden. Die Überschrift ist also in P2 und heißt [Akt.zeit] (so kann man ja auch in excel ansprechen).
Was muss ich an dem Code genau abändern?
Vielen Dank schon mal!
mfg
Tobias

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schnell sortieren
29.11.2019 14:54:23
EtoPHG
Hallo Tobias,
Zitat: Es ist eine intelligente Tabelle und fängt ab Zeile 2
Warum um Himmelswillen willst du dann mit einem Makrocode alles zerstören?
Diese Tabellen haben doch automatische Spalten-Dropdowns mit der Möglichkeit auf- oder ab-steigend zu sortieren. Alles schon eingebaut! Also überlege es Dir noch einmal.
Gruess Hansueli
AW: Schnell sortieren
29.11.2019 15:11:30
Tobias
Hallo Hansueli,
es ist so, dass excel bei so großen Datenmengen ewig braucht um zu Filten bzw. zu sortieren.
Deswegen benötigt mein Makro gerade mehrere Minuten. Aber es gibt bestimmt auch eine Möglichkeit dies schneller zu vollzeiehen als mit dem Makrorecorder aufgezeichnetem Code.
Bei meiner suche bin ich dann auf die obrigen Codes gestoßen. Aber mir scheint es als ob dies nur mit normalen Exceltabellen funktioniert. Nicht aber mit einer intelligenten Tabelle.
Es muss da doch irgendwie eine Möglichkeit geben dies schneller zu vollziehen.
mfg
Tobias
Anzeige
Was genau sind grosse Datenmengen?
29.11.2019 16:09:24
EtoPHG
Hallo Tobias,
Ein VBA Code ist mit Sicherheit langsamer wie die eingebauten Sortieralgorithmen in Excel.
Was verstehst du unter grossen Datenmengen?
Ich habe probehalber mal eine i-Tabelle mit 28 Spalten und 480'000 unsortierten Zeilen mit dem Dropdown sortiert (einmal auf- und einmal absteigend). Die Sortierung war unter 3 Sekunden erledigt.
Darum muss ein etwas anderes (Formeln, bedingte Formatierungen?) deine Sortierung ausbremsen.
Ohne genaues Wissen der Datenstrukturen und Inhalte ist hier keine generelle Aussage möglich.
Vielleicht mal die automatische Berechnung ausschalten, sortieren und wieder einschalten.
Gruess Hansueli
Anzeige
AW: Was genau sind grosse Datenmengen?
02.12.2019 09:42:39
Tobias
Hallo Hansueli,
das mit dem automatischen berechnen ist ein sehr guter Punkt. Genau dadurch wird mein Makro so langsam. Nun ist es aber so, dass das einschalten des Berechnens logischerweise auch wieder ewig braucht.
Also gibt es keine Möglichkeit anders, sauber und schnell zu sortieren.
Es handelt sich um eine Tabelle mit ca.5000-8000 Zeilen und Spalten bis X. In 8 Spalten sind Formeln hinterlegt. genau die machen das Makro so langsam.
mfg
Tobias
AW: Was genau sind grosse Datenmengen?
02.12.2019 13:34:03
EtoPHG
Hallo Tobias,
Zitat: "un ist es aber so, dass das einschalten des Berechnens logischerweise auch wieder ewig braucht."
Ja dann kann ich auch nicht helfen. Dazu müsste man die Formeln analysieren und ggf. Alternativen finden, aber auch dazu wäre natürlich eine Beispielmappe erforderlich. Oft sind es SUMMEPRODUKT Formeln, die solche Bremsmanöver verursachen. Wenn dann in diesen noch ganze Spalten, statt nur der relevante Bereich, dann kann es wirklich langsam werden. Aber das kennst du ja sicher (Excel gut)!
Gruess Hansueli
Anzeige
AW: Was genau sind grosse Datenmengen?
02.12.2019 16:52:28
Tobias
Hallo Hansueli,
Ja das Thema ist mir bekannt. Ich werde jetzt versuchen das makro dahingehend zu bearbeiten dass ich am anfang die automatische Berechnung ausschalten und am ende wieder einschalten kann, anders wird es wohl nicht gehen, da die Berechnung von Nöten ist.
Gruß Tobias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige