Office: Sortieralgorithmus

Helfe beim Thema Sortieralgorithmus in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Guten Morgen zusammen, ich bin jetzt schon länger dabei an einem Projekt herumzutüfteln. Aber an dieser Stelle komme ich nicht weiter. Folgendes... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von msz7, 14. Januar 2017.

  1. Sortieralgorithmus


    Guten Morgen zusammen,

    ich bin jetzt schon länger dabei an einem Projekt herumzutüfteln. Aber an dieser Stelle komme ich nicht weiter. Folgendes Problem:
    Es wird automatisiert eine Excel-Datei erstellt, in der ab B19 Werte (je nach Datei unterschiedlich viele) eingetragen sind. Ab A19 stehen die IDs zu den Werten.

    Die Werte werden in zwei Spalten einsortiert. Der Algorithmus dafür soll wiefolgt aussehen:

    Sortieralgorithmus algorithmus0pql5.jpg

    Bis eben alle Werte sortiert sind. Ich habe das bisher immer mit =KKLEINSTE und =KGRÖSSTE gemacht, aber da ich jetzt auch unterschiedlich viele Werte (pro Datei zwischen 50 und 2.000) bekomme, kriege ich das auf diesem Weg nicht mehr hin.

    Ich hänge noch eine Beispieldatei an.

    Algorithmus-bsp070616.xlsx


    Ich würde mich echt freuen, wenn da jemand einen Lösungsvorschlag parat hat. Ich vermute mit VBA geht es am einfachsten, aber das sind für mich leider böhmische Dörfer *frown.gif*

    Liebe Grüße
    Marina

    :)
     
  2. Hallo Marina,

    im Anhang mein Vorschlag.

    Gruß
    Aloys
     
    aloys78, 15. Januar 2017
    #2
  3. Hallo Aloys,

    vielen Dank für Deinen Vorschlag!

    Wenn ich die Datei ausführe, werden die Werte richtig sortiert, aber alle Werte sind doppelt enthalten. Ich glaube das ist, weil der x-größte Wert gleichzeitg auch der x-kleinste Wert ist. Das hatte ich bei meinem Versuch mit KKLEINSTE/KGRÖSSTE auch erst so gemacht *Smilie

    Lieben Dank für Deine Hilfe!
    Marina
     
  4. Sortieralgorithmus

    Hallo Marina,
    Die Reihenfolge der Kleinsten ist eben die umgekehrte Reihenfolge der Größten.
    Und die Schlußfolgerung ?
    Was soll geändert werden ?

    Gruß
    Aloys
     
    aloys78, 15. Januar 2017
    #4
  5. Hallo Aloys,

    jede ID darf nur ein einziges mal vorkommen. Wenn ich das richtig sehe, könnte ich die untere Hälfte der sortierten Liste einfach löschen und es wäre richtig *Smilie ich habe gerade auch schon in den Code geguckt, aber da steige ich leider absolut nicht durch und weiß nicht, wie ich das ändern könnte.

    Liebe Grüße
    Marina
     
  6. Hallo Marina,
    ok
    Wo schneiden wir ab, wenn die Anzahl der Positionen ungerade ist ?
    Bei den Kleinsten ?

    Gruß
    Aloys
     
    aloys78, 15. Januar 2017
    #6
  7. Hallo Aloys,

    in der Praxis wird das soweit ich weiß niemals vorkommen - aber falls doch, sollte einfach die letzte Zahl bzw. die Zahl mit der höchsten ID übrig bleiben

    Lieben dank!
    Marina
     
  8. Sortieralgorithmus

    Hallo Marina,

    ich werde Dir zum Nachmittag eine überarbeitete Lösung zur Verfügung stellen.

    Gruß
    Aloys
     
    aloys78, 15. Januar 2017
    #8
  9. Hallo Marine,

    meine überarbeiteter Code:
    Code:
    Gruß
    Aloys
     
    aloys78, 16. Januar 2017
    #9
  10. Hallo Aloys,

    das funktioniert wunderbar! Und vielen Dank, dass Du mir ein bisschen auf die Sprünge hilfst, was genau da eigentlich passiert *Smilie

    Damit habe ich Dich erstmal genug belästigt. Lieben Dank und einen schönen Tag wünsche ich Dir noch!
    Liebe Grüße
    Marina
     
  11. Hallo Aloys,

    ich muss die Datei leider noch etwas erweitern. Die Beispieldatei aus meinem Startbeitrag ist dafür immer noch korrekt.
    Die Sortierung soll nicht auf zwei Spalten beschränkt sein, sondern auf bis zu 12 Spalten erweitert werden können. Die Sortiermethode bleibt dabei gleich.

    Beispiel mit 4 Spalten:

    PHP:
             1.-Kleinste   2.-Kleinste   3.-Kleinste   4.-Kleinste
    1.
    -Längste    2.-Längste    3.-Längste    4.-Längste
    5.
    -Kleinste   6.-Kleinste   7.-Kleinste   8.-Kleinste
    5.
    -Längste    6.-Längste    7.-Längste    8.-Längste
    9.
    -Kleinste  10.-Kleinste  11.-Kleinste  12.-Kleinste
    9.
    -Längste   10.-Längste   11.-Längste   12.-Längste
    usw
    .
     
  12. Hier eine Datei
     
  13. Sortieralgorithmus

    Hallo Marina,
    Kann die Spaltenzahl dann jeden Wert von 2 bis 12 annehmen ?
    Wie stelltst Du Dir die jeweilige Vorgabe vor ?
    Bei 2 Spalten hatten wir den letzten Wert abgeschnitten, wenn die Gesamtzahl ungerade war.
    Folgerichtig müssten wir dann bei einer Spaltenzahl
     
    aloys78, 26. Januar 2017
    #13
  14. Hallo Lupo,

    danke für Deinen Tipp! Das werde ich mir auf jeden Fall angucken, aber fürs erste verfolge ich den Vorschlag von Aloys, da ich den ersten Teil dadurch schon wunderbar lösen konnte. Trotzdem danke! *Smilie

    Hallo Aloys,

    genau, die Spaltenanzahl kann zwischen 2 und 12 variieren. Vielleicht eine kleine Textbox, um die Spaltenanzahl einzugeben?

    Genau, falls Werte übergelassen werden, soll der Rest einfach nicht berücksichtigt werden.

    Der Name der neuen Excel-Datei sollte sich auf den Text, der in Zelle C1 steht, beziehen und das Datum noch hinten anhängen.

    Vielen Dank und liebe Grüße!
    Marina
     
  15. Hallo Marina,

    schau Dir mal die Datei an, das wäre die Grundlage für die Umsetzung.

    Gruß
    Aloys
     
    aloys78, 27. Januar 2017
    #15
Thema:

Sortieralgorithmus

  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