Office: Sortieren von Daten

Helfe beim Thema Sortieren von Daten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich wollte die Daten nach bestimmtem Muster sortieren. Zwar habe ich ein Makro geschrieben und es auch funktioniert aber es ist zu langsam... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von kasitom, 3. Oktober 2013.

  1. Sortieren von Daten


    Hallo,

    ich wollte die Daten nach bestimmtem Muster sortieren. Zwar habe ich ein Makro geschrieben und es auch funktioniert aber es ist zu langsam (insb. Code fürs Suchen der Daten und Kopieren in die entsprechenden Spalten). Der Code sollte ca. 550 000 Daten so schell wie möglich von der Ursprungsdatei in die Zyklus-Datei übertragen.
    Habt ihr ein Vorschlag dazu?

    Gruß Tom

    Code:
    :)
     
    kasitom, 3. Oktober 2013
    #1
  2. Hallo Tom,
    Dann beschreib doch mal anschaulich, welche Daten der Ursprungsdatei wie in die Zyklus-Datei zu übertragen sind.
    Das ist für den Helfer mE mehr zielführend, als sich die Aufgabenstellung mühsam aus einem Makro-Torso herauslesen zu müssen.

    Gruß
    Aloys
     
    aloys78, 5. Oktober 2013
    #2
  3. Moin,

    Code:
    dürfte so einiges bringen. Und am Ende natürlich zurück setzen *wink.gif*

    Ansonsten: In der angehängten Datei habe ich keine einzige Zeile Code gefunden …
     
  4. Sortieren von Daten

    Hallo,

    also Makro sollte folgendes machen:

    - wenn in Register: Quelle in Spalte "G" (Station) besipielweise 1 steht dann Makro kopiert die Zellen: Datum, Stunde, Minunte, Sekunde, Linie ud Artikel in die nächste freie Zeile in Register: Zyklus (in die Spalten A:F); noch besser wäre wenn Makro konnte gleich die Zellen: Stunde, Minute und Sekunde zu einer Zelle (Uhrzeit) verbinden und statt 3 Spalten in Register: Zyklus hätte ich bloss eine Spalte mit Uhrzeit. Ich glaube, in dem Fall , das Makro hätte noch länger gebraucht um alle Zellen zu übertragen

    - dazu sollte der Wert von Spalte H (in Register: Quelle) in die entsprechende Spalte (Spalten G bis AD je nach Nummer der Station) in Register: Zyklus kopiert werden (beispielweise wenn in Register: Quelle Spalte G = 1, dann kopiert den Wert von Spalte H (Register: Quelle) in Register: Zyklus Spalte G (diese Spalte ist für Station 1 gedacht).

    Gruss
    Tom
     
    kasitom, 6. Oktober 2013
    #4
  5. Hallo Tom,

    wenn es denn superschnell sein soll: Wie sieht es mit einer Pivot-Tabelle aus? In Quelle habe ich eine Hilfsspalte eingebaut, um "vernünftig" arbeiten zu können.

    Ich sehe, dass das Ziel nicht exakt so aussieht wie Zyklus, aber das eine was du willst, das andere was möglich ist *mrcool
     
  6. Hallo Tom,

    eine weitere Lösung auf Basis eines Arrays Tom.xlsm

    Gruß
    Aloys
     
    aloys78, 6. Oktober 2013
    #6
  7. Moin Tom,

    und jetzt noch einmal als VBA-Version. Einfach einmal probieren. Name des Ziel-Sheets natürlich noch bei dir anpassen *wink.gif*
     
  8. Sortieren von Daten

    Hallo,

    @GMG-CC
    @aloys78

    beide Lösungen finde ich interessant*wink.gif*. Auf den ersten Blick scheint der Vorschlag mit Array einfacher zu sein. Morgen werde ich diese Lösungen für die kompletten Daten ca. 550 000 Zeilen testen.
    Erstmal Vielen Dank
     
    kasitom, 6. Oktober 2013
    #8
  9. Hallo,

    ich habe die Lösungen getestet, beide funktioneren. Jedoch habe ich ein kleines Problem mit Array. Es wird eine Tabelle mit ca. 51.000 Zeilen und 28 Spalten erzeugt. Es sollte aber die Tabelle mit ca. 150.000 Zeilen generiert werden. Die restlichen 100.000 Zeilen gehen verloren.
    Ich habe der oryginale Code von Aloys78 für 150.000 Zeilen getestet und es funktioniert. Alle Zyklen werden in die Tabelle übernommen, in meiner von Modifikation von Code leider nicht. Woran liegt es? Hat Array eine Begrenzung? Wo habe ich einen Fehler gemacht?

    Anbei der Code
    Code:
    Gruss
    Tom
     
    kasitom, 8. Oktober 2013
    #9
  10. Hallo Tom,

    natürlich hatte ich zuerst auch an ein Array gedacht. Ist prinzipiell immer schneller. Aber diese Riesenmenge an Daten muss bei einem Array komplett in den Arbeitsspeicher, und das wird schnell knapp. OK, es gibt auch noch so etwas wie eine Auslagerungsdatei, aber dann geht der Speed ganz schön schnell verloren.

    Ich habe mir deine geänderte Lösung nicht weiter angesehen, weil ... na ja, siehe hierüber.
     
  11. Hallo GMG-CC,

    leider kann ich die komplette Datei mit Code hier nicht hochladen - einfach zu gross.
    Ich verstehe nicht, was anderes in meinem Code gibt in Vergleich zu Vorschlag vom Aloys78 und wieso Array bei mir so schnell voll ist. Für den ersten Array (1. Schicht, ca. 45 000 Zeilen) habe ich keinen Datenverlust, erst für 2. und 3. Schicht gehen die Daten verloren (ab ca. Zeile 51000 keine Daten mehr).
    Ich wollte nach dem Kopieren der Daten von 1. Schicht Array zurücksetzen (beleeren: Erase arr) und für 2. Schicht wieder neu mit Daten befüllen aber ohne Erfolg.
     
    kasitom, 8. Oktober 2013
    #11
  12. Hallo Tom,

    (ich bin übrigens der Günther, siehe Signatur),
    also, du sollst ja auch nicht die komplette Datei hochladen. Was ich meinte: Die Datenmenge ist wahrscheinlich für eine ArrayLösung zu groß, darum habe ich weiter oben ja auch einen Code vorgestellt, der mit ziemlicher Sicherheit auch bei 1.000.000 Zeilen nicht "abschmiert".

    Davon abgesehen (ich habe mir bislang den Kommentar bewusst "verkniffen"): Solche Datenmengen sind eher ein Fall für eine Datenbank als für Excel ... *mrcool

    Dein geänderter Code basiert ja auf der Array-Lösung; vielleicht setzt sich Aloys damit noch einmal auseinander (ich tue es hier aus den in meinem vorherigen Beitrag genannten Gründen aus Überzeugung nicht).
     
  13. Sortieren von Daten

    Hallo Tom,

    dass solche Datenmengen für Excel nicht typisch sind, da gebe ich Günther Recht.
    Meine Lösung auf Array-Basis habe ich mit über 550 000 Zeilen getestet, in dem ich deine 1048 Zeilen 550 mal per VBA-Code kopiert habe. Die ganze Verarbeitung dauert dann 130 Sek, was mE bei dieser Datenmenge akzeptabel ist.

    Warum es bei Dir nicht läuft, kann ich dir nicht sagen. Und ich verspüre auch keine Neigung, in diesem Code nach möglichen Fehlern zu suchen. Gründe:
    - du erwartest offenbar, dass man aus dem Code wieder die Aufgabenstellung ableiten soll; diese unterscheidet sich offenbar von der bisher geschilderten,
    - davon abgesehen ist der Code nicht strukturiert und nur schwer lesbar.

    Ich empfehle dir, die Aufgabenstellung hier anhand einer Beispieldatei anschaulich zu beschreiben; der vorhandene Code kann da Beiwerk sein.

    Gruß
    Aloys
     
    aloys78, 8. Oktober 2013
    #13
Thema:

Sortieren von Daten

Die Seite wird geladen...
  1. Sortieren von Daten - Similar Threads - Sortieren Daten

  2. Excel 2016 Daten vom Datum abhängig anzeigen

    in Microsoft Excel Hilfe
    Excel 2016 Daten vom Datum abhängig anzeigen: Liebe Community, nach einer ersten Tabelle mit viel Unterstützung von Klaus-Dieter, vielen Dank hierfür noch mal, habe ich die Tabelle umstrukturiert und für andere Zwecke entfremdet....
  3. Daten Sortieren

    in Microsoft Excel Hilfe
    Daten Sortieren: Guten Tag zusammen, folgendes Anliegen: Ich habe eine Tabelle mit vielen Einträgen von Retouren die an mich zurück geschickt wurden. Für jede Retoure gibt es eine Zeile und in einer Spalte wird...
  4. Daten neu sortieren

    in Microsoft Excel Hilfe
    Daten neu sortieren: Hallo zusammen, in der Tabelle (siehe Bild links) sind die relevanten Daten sowohl in Spalten also auch in Zeilen erfasst. Die Daten sollen so neu strukturiert werden ( siehe Bild rechts), so...
  5. Aus PDF importierte Daten einfach sortieren

    in Microsoft Excel Hilfe
    Aus PDF importierte Daten einfach sortieren: Hallo zusammen, ich bin relativ unbedarft und neu bei Excell. Wenn ich deshalb das bereits bestehende Thema nicht gefunden haben sollte: sorry. Ich habe ein Ausgabedokument (PDF) einer...
  6. Daten nach nicht-erster Stelle der Sortierspalte sortieren

    in Microsoft Excel Tutorials
    Daten nach nicht-erster Stelle der Sortierspalte sortieren: A1:B3: 1739 AS 211123 DF 35 QW a) ergibt, nach 2. Stelle sortiert, für die erste Spalte A1:A3 mit =INDEX(SORTIEREN(TEIL(A1:A3;{1.2};9);2);;1) oder =SORTIERENNACH(A1:A3;TEIL(A1:A3;2;9))...
  7. Daten sortieren

    in Microsoft Excel Hilfe
    Daten sortieren: Hallo zusammen, ich habe in einer Zelle folgende Syntax stehen: 113*x1001+142*x1002+102*x1003+34*x1004+132.85*x1005+48.75*x1006+78.3*x1007+96.5*...
  8. Daten dynamisch blockweise sortieren (mit SORTIEREN und INDEX; auch LET möglich)

    in Microsoft Excel Tutorials
    Daten dynamisch blockweise sortieren (mit SORTIEREN und INDEX; auch LET möglich): In einer Zeile stehen 5er-Blöcke beginnend mit je einer PKW-Marke wie folgt: A1:AI1: VW 1 3 2 4 BMW 2 1 3 4 Mercedes 2 4 3 1 Opel 1 2 3 4 Ford 4 3 2 1 Porsche 4 1 3 2 Audi 3 2 1 4 Diese Blöcke...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden