Office: Array sortieren

Helfe beim Thema Array sortieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte in VBA ein 2D Array nacheinander nach mehreren "Spalten" sortieren. Das Array enthält diverse verschachtelte Nummerierungen in... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von stb122, 4. April 2018.

  1. Array sortieren


    Hallo,

    ich möchte in VBA ein 2D Array nacheinander nach mehreren "Spalten" sortieren.
    Das Array enthält diverse verschachtelte Nummerierungen in Spalte 1, 3 und 5, nach denen sortiert werden soll. Um es deutlicher zu machen, stelle ich das mal als Tabelle dar - das Feld hat z.B. 5 "Spalten" und 6 "Zeilen" und sieht z.B. so aus:

    1. 1.2 1.2.1
    3. 3.1 3.1.1
    2. 2.1 2.1.1
    1. 1.1 1.1.2
    1. 1.1 1.1.1
    2. 2.1 2.1.2

    Nach der Sortierung soll das Feld also wie folgt aussehen:

    1. 1.1 1.1.1
    1. 1.1 1.1.2
    1. 1.2 1.2.1
    2. 2.1 2.1.1
    2. 2.1 2.1.2
    3. 3.1 3.1.1


    heißt "beliebiger Text", der für die Sortierung keine Rolle spielt!!


    Wie ich schon festgestellt habe, ist das Sortieren mit VBA nicht gerade top supported, eher ziemlich altbacken; z.B. VB.net ist da schon weiter. Ich bin aber auf VBA angewiesen! Wie kann ich das trotzdem mit vertretbarem Aufwand in VBA umsetzen? Ach und ja - halbwegs schnell sollte es auch sein.

    Bin sehr dankbar für kompetente Hilfe!

    stb122

    :)
     
    stb122, 4. April 2018
    #1
  2. Hallo,

    was verstehst Du unter Feld ?
    Du sprichst von 5 Spalten, ich zähle aber 6.

    Außerdem - warum sortierst Du nicht im Tabellenblatt. Mit 3 zu sortierenden Spalten überhaupt kein Problem und auch bei mehr als 6 Zeilen schnell.

    Gruß
    Aloys
     
    aloys78, 6. April 2018
    #2
  3. Array sortieren

    Sorry - bei der ersten Anzeige meines Arrays hat es zwei Spalten "verschluckt" *upps

    Hier die richtige Anzeige. Das Array sieht zunächst z.B. so aus:


    1. beliebigerText 1.2 beliebigerText 1.2.1
    3. beliebigerText 3.1 beliebigerText 3.1.1
    2. beliebigerText 2.1 beliebigerText 2.1.1
    1. beliebigerText 1.1 beliebigerText 1.1.2
    1. beliebigerText 1.1 beliebigerText 1.1.1
    2. beliebigerText 2.1 beliebigerText 2.1.2


    Und soll nach der Sortierung so aussehen:


    1. beliebigerText 1.1 beliebigerText 1.1.1
    1. beliebigerText 1.1 beliebigerText 1.1.2
    1. beliebigerText 1.2 beliebigerText 1.2.1
    2. beliebigerText 2.1 beliebigerText 2.1.1
    2. beliebigerText 2.1 beliebigerText 2.1.2
    3. beliebigerText 3.1 beliebigerText 3.1.1


    Der "beliebigerText" ist für die Sortierung ohne Einfluss.

    Ergo muss ich zunächst nach "Spalte" 1, anschließend nach Spalte 3 und daran anschließend nach Spalte 5 sortieren, aber immer unter Berücksichtigung der bereits vorher sortierten "Spalten"!

    Ach ja, Sortieren mit Excel-Mitteln ist fehleranfällig und damit nicht erlaubt, sagt der Auftraggeber.
    Es muss also mit VBA umgesetzt werden.

    Wie könnte das aussehen?

    Danke.

    stb122
     
    stb122, 6. April 2018
    #4
  4. Hallo,

    hast du den Link in meinem letzten Beitrag gesehen?
     
    Klaus-Dieter, 6. April 2018
    #5
  5. Hallo stb122,
    Und dafür gibt es verschieden Lösungsmöglichkeiten.

    Eine Alternative zum Quicksort wäre zB folgender Code;
    Hier unterstelle ich mal, dass die Daten im Array arr vorliegen und nach dem Sortieren wieder im Array zurückgespeichert werden.
    Das Sortieren selbst findet im Tabellenblatt statt.
    Code:
    Gruß
    Aloys
     
    aloys78, 6. April 2018
    #6
  6. Hat der Auftraggeber ein Beispiel für solche Fehler? Desweilen ist ja nur die Erwartung, was da rauskommen soll, fehlerhaft.
    Code:
    Das sind Zeichenketten und werden alphanumerisch sortiert, also die Zeichen von vorn. Das macht VBA genau so wie Excel oder auch andewre übliche mögliche Sortierungen.
    Was sagst Du?
     
    ebs17, 6. April 2018
    #7
  7. Array sortieren

    Hallo Klaus-Dieter,

    Deine Antwort habe ich (nur etwas spät) gesehen.
    Ich hatte versucht, den Code nachzuvollziehen.

    Danke!

    stb122
     
    stb122, 6. April 2018
    #8
  8. Hallo Aloys,

    danke! Okay, im Tabellenblatt direkt zu sortieren sollte nicht das Problem sein.

    Ich probiere das in Kürze, muss jetzt was anderes erledigen.

    stb122
     
    stb122, 6. April 2018
    #9
  9. Hallo,

    da sehe ich jetzt aber eine gewisse Diskrepanz in den Aussagen.

     
    Klaus-Dieter, 6. April 2018
    #10
  10. Hallo Klaus-Dieter,

    ich habe es so verstanden, dass der Auftraggeber ein automatisches Sortieren wünscht und nicht will, dass seine Leute über das Excel-Menu sich händisch über Daten / Sortieren damit beschäftigen müssen.
    Aus meiner Sicht braucht man dazu kein Array mit Quicksort. Es reicht m.E. eine Lösung, wie ich sie vorgeschlagen habe.

    Gruß
    Aloys
     
    aloys78, 6. April 2018
    #11
  11. Wenn es so ist, wie Aloys schreibt, dann wäre Power Query eine souveräne Alternative. - Logisch sortieren (nacheinander Spalten 1, 3 5) und bei neuer Datenlage ist ein Automatismus drin.
     
    Drogist, 6. April 2018
    #12
  12. Array sortieren

    Hallo,

    aus meiner Sicht auch nicht, danach hattest du gefragt:

    möglicherweise haben wir auch ein unterschiedliches Verständnis, was ein Array ist.
     
    Klaus-Dieter, 6. April 2018
    #13
Thema:

Array sortieren

Die Seite wird geladen...
  1. Array sortieren - Similar Threads - Array sortieren

  2. Mittelwert aus mehreren Spalten als dynamisches Array

    in Microsoft Excel Hilfe
    Mittelwert aus mehreren Spalten als dynamisches Array: Hallo liebes Forum, ich bin bei folgendem Problem ratlos: Ich berechne für verschiedene Dozenten Feedback anhand von 3 verschiedenen Kriterien. Die Stammdaten der Feedbacks stehen in einer...
  3. Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte

    in Microsoft Excel Hilfe
    Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte: Hallo zusammen, wer letzteren Thread kennt, hier eine Neuauflage. Problem: Aus Array-Berechnungen (Variablen von Let) ein weiteres Array zu erzeugen, welches für alle eindeutigen Werte aus G die...
  4. Zahlendubletten im Array

    in Microsoft Excel Hilfe
    Zahlendubletten im Array: Guten Morgen liebe Community, anbei ein vereinfachtes Beispiel der Problematik, da das Original mehrere LAMBDA-Funktionen und Tabellen mit einbezieht. Ich benötige die Lösung, um eine weitere...
  5. Array aus Excel Tabelle einlesen Word VBA

    in Microsoft Excel Hilfe
    Array aus Excel Tabelle einlesen Word VBA: Hallo, ich benötige in einer Word Datei die Werte einer Excel Datei. Ich würde gerne eine Spalte als Array einlesen. Wie das Array ein lesen in Excel geht weiß ich, aber wie schaffe ich den...
  6. Summenteilergebnis eines Arrays als Array darstellen

    in Microsoft Excel Hilfe
    Summenteilergebnis eines Arrays als Array darstellen: Hallo Community, Summenteilergebnis eines Arrays als Array darstellen. An dieser Stelle stecke ich fest. Ich habe eine Testmappe erstellt, die die Problematik versucht darzustellen. Bevor jemand...
  7. Formel bei Veränderung von dynamischem Array "mitziehen"?

    in Microsoft Excel Hilfe
    Formel bei Veränderung von dynamischem Array "mitziehen"?: Hallo liebes Forum, ich komme bei folgendem Problem nicht weiter und habe mir hier etwas Hilfe erhofft: Ich habe eine Tabelle mit Feedbacks zu Lehrgängen/Kursen. Diese will ich nach Dozent erst...
  8. Zweidimensionales Array sortieren

    in Microsoft Excel Hilfe
    Zweidimensionales Array sortieren: Guten Tag alle miteinander. Ich habe hier ein zweispaltiges Array, wo in Spalte 1 eine Kategorie und in Spalte 2 ein Wert steht.Dieses Array soll sortiert werden. Im Netz habe ich viele...
  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