Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1292to1296
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

mehrere Tabellenblätter gleichzeitig sortieren

mehrere Tabellenblätter gleichzeitig sortieren
14.01.2013 10:28:57
Dirk73
Hallo zusammen,
ich habe eine Excel 2010 Tabelle. Darin sind 6 Tabellenblätter enthalten. Jede hat ca. 300.000 Zeilen. Alle in ein Tabellenblatt passen leider nicht.
Ich möchte gerne alles sortieren, sprich Excel soll ausgehend von Tabellenblatt 1 bei A anfangen und über alle 6 Blätter sortieren, so daß in Blatt 6 unten dann Z stehen würde.
Geht das ? Weiss jemand Rat ?
Vielen Dank !
Dirk

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

Betreff
Datum
Anwender
Anzeige
AW: mehrere Tabellenblätter gleichzeitig sortieren
14.01.2013 10:41:38
Klaus
Hi Dirk,
sorry, aber wenn du wirklich über 1.048.576 Datensätze verarbeiten musst ist Excel schlicht das falsche Programm. Steig auf Access um!
In Excel könnte man sicherlich:
- alle 1.800.000 Datensätze in ein einzelnes Array einlesen
- das Array sortieren
- das Array häppchenweise zurück schreiben
aber ob das Sinn macht? Bei der Menge an Daten könnte man ja alleine ein stundenlanges Fachgespräch darüber führen, welche Sortierroutine (Quick? Bubble?) zu benutzen ist.
Alternative Idee:
in einem neuen Blatt:
- 6 Tabellen erstellen (Namens A-F, G-L usw)
- im alten Blatt jede Tabelle, jede Zeile per Schleife anfassen
- jeweils ins neue Blatt in die entsprechende Tabelle kopieren
- im neuen Blatt jede Tabelle sortieren
Das hätte zwar ein bestimmtes Fehlerpotential (theoretisch könnten alle 1.800.000 Einträge mit A anfangen, dann reichts nicht) und die Blätter wären unverhältnissmäßig gefüllt (theoretisch könnte ein Blatt sogar leer bleiben) aber vielleicht reicht dir das ja?
So oder so,
jegliche Lösung würd in Excel unverhältnissmäßig lange dauern und unpraktikabel sein.
Grüße,
Klaus M.vdT.

Anzeige
AW: mehrere Tabellenblätter gleichzeitig sortieren
14.01.2013 12:33:57
firmus
Hallo Dirk,
Menge und Excel - da muss ich mich voll Klaus anschließen.
Zum Problem:
1. Kopiere die Tabellen 1-3 und 4-5 jeweils in ein eigenes Blatt in einer neuer XLSfile.
2. Sortiere diese beiden neuen Blätter (TEIL1, TEIL2)
Das sollte funktionieren bei dann jeweils ca. 900.000 Zeilen.
3. Kopiere aus TEIL1 und aus TEIL2 jeweils ca. 450.000 Zeilen wieder in ein neues Blatt+neue file
TEIL1NEU. Wichig ist, dass Du dabei auf Buchstabenabgrenzung achtest. Den jeweiligen Rest von
TEIL1 und TEIL2 kopierst Du in TEIL2NEU.
4. Teil1NEU und TEIL2NEU sind dann nochmals zu sortieren.
Danach solltest Du Dein gewünschtes Ergebnis haben.
TEIL1NEU beginnt bei "A" und endet irgendwo im Alphabet,
Teil2NEU beginnt irgendwo im Alphabet und endet bei "Z".
Wichtig ist die "Nahtstelle" zwischen 1 + 2.
Buchstabenabgrenzung heisst: Jeder Anfangsbuchstabe darf nur in 1 ODER 2 vorkommen.
Kommt ein Anfangsbuchstabe in beiden vor, stimmt die Nahtstelle nicht.
Lass wissen, ob das ein brauchbarer Weg ist.
Gruss
Firmus

Anzeige
das scheint mir aber auch nicht optimal ...
14.01.2013 13:57:55
Klaus
Hallo Firmus,
wir sind uns einig, das ganze muss nach Access oder ein anderes Datenbankentool kopiert werden.
aber nachdem das Thema ein paar stunden gesackt ist (leider ohne dass der TE sich nochmal meldet) find ich es nun doch wieder interessant, aus rein akademischer Sicht.
Stellen wir mal kurz die Bedingung auf, dass die Aufgabe nicht in Access gelöst werden darf.
Dein Algorithmus würde im Worst-Case Fall nicht funktionieren. Sei Teil1 gefüllt mit 1 mal "A", danach 899.999 mal "M". Teil 2 dagegen ist gefüllt mit 899.999 mal "M", danach 1 mal "Z" Das trennen in 450.000 Einträge hätte in diesem Fall keinen Effekt auf die Sortiertung. Ein zusammenführen nach Trennbuchstaben ist nicht möglich, da die Menge an "M" die grenze einer Excelliste sprengt.
(allerdings funktioniert in diesem beschriebenen Worst-Case Szenario mein oben vorgeschlagener Algorithmus genauso wenig ...)
Funktionieren könnte folgendes, währe aber enorm langsam:
Die Liste wird in zwei Teile je 900.000 Einträge geteilt. Aus der Liste2 wird durch einen Durchgang BubbleSort der kleinste Wert auf Position1 geschrieben, Liste1 wird per QuickSort komplett sortiert.
Vergleich letzter Wert Liste1 mit erstem Wert Liste2: gegebenenfalls beide Werte tauschen, dann den Prozess von vorne beginnen.
Sobald der letzte Wert von Liste1 und der erste von Liste2 nicht mehr tauschen, einen Quicksort auf Liste2.
Alternative Idee:
QuickSort teilt seine Matrix ja "eh" in zwei ähnliche Größen. Vielleicht kann man den QuickSort-Algorithmus umschreiben, so dass er auf zwei "real" geteilten Größen arbeitet - eben über die beiden Tabellenblätter.
Grüße,
Klaus M.vdT.

Anzeige
AW: das scheint mir aber auch nicht optimal ...
14.01.2013 14:48:35
Dirk73
Hallo zusammen,
na erstmal vielen Dank für all die Ansätze. Aber das wird mir zu kompliziert, da kann ich nicht mithalten.
Natürlich hat Firmus recht, ich kann die SAP Pakete auch in 2 Tabellen packen. Dann hätte ich jeweils 900.000. Die jeweilige Spalte "Bezeichnung" ist dann in beiden Blättern bunt gemischt. Ich kann natürlich jedes Blatt Blatt für sich sortieren von A nach Z. Hätte es aber gern am Stück sortiert.
Mit Access habe ich auch schon probiert, aber dort klappt es mit dem Import nicht so recht. Egal ob ich 2 oder 6 .txt Packages aus SAP hole, spätestens beim Importieren des zweiten sagt Access Fehler, es konnte nicht alles importiert werden.
Viele Grüße
Dirk

Anzeige
Datenbank?
14.01.2013 14:52:02
Klaus
Hallo Dirk,
du bewegst dich auch hart an / über der Grenze von dem, was mit Tabellenkalkulationen machbar ist. Kann SAP die Werte nicht sortiert ausgeben?
Die Grenzwerte von Access kenne ich nicht, denke aber aus dem Bauch heraus dass dort einige Million Eninträge machbar sein sollten. Wer weiss es genauer?
Ansonsten solltest du dich vielleicht mal mit "echten" Datenbanken beschäftigen - SQL oder so.
Grüße
Klaus M.vdT.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige