Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortuieren

Sortuieren
16.12.2007 09:24:00
Sam
Hallo zusammen
Vermutlich ein ganz einfache sache, aber ich weiss nicht wie ich es lösen soll.
Mein anliegen ist es, eine Liste nicht nach dem ersten Zeichen, sondern erst ab dem dritten Zeichen zu sortieren.
Beispiel Liste:
  • 01 Holz

  • 02 Baum

  • 03 Zange

  • 04 Stahl

  • usw.
    Sortiert:
  • 02 Baum

  • 01 Holz

  • 04 Stahl

  • 03 Zange

  • Kann mir jemand helfen?
    Besten Dank an alle.

    9
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Sortieren nach dem 3. Zeichen
    16.12.2007 09:29:00
    {Boris}
    Hi Sam,
    das geht mit ner Hilfsspalte. Wenn es wirklich immer ab dem 3. Zeichen ist, dann
    =TEIL(A2;3;99)
    runterkopieren und nach dieser Spalte filtern.
    Wenn es immer nach dem ersten Leerzeichen ist, dann:
    =TEIL(A2;FINDEN(" ";A2)+1;99)
    Grüße Boris

    AW: Sortieren nach dem 3. Zeichen
    16.12.2007 09:35:00
    Sam
    Danke für deine schnelle antwort.
    Geht das ganze auch in VBA, ohne Hilfspalte?

    AW: Sortieren nach dem 3. Zeichen
    16.12.2007 09:46:00
    {Boris}
    Hi Sam,
    dann musst Du alle Datensätze ab dem 3. Zeichen in ein Array einlesen, dieses Array sortieren (z.B. nach Bubblesort oder Quicksort googlen) und das sortierte Array wieder zurückschreiben.
    Anders geht es imho ohne Hilfsspalte nicht.
    Grüße Boris

    Anzeige
    Es gibt auch Formeln, die ohne Hilfsspalte...
    17.12.2007 02:07:00
    Luc:-?
    ...auskommen, Boris,
    z.B....
    
    {=INDEX(MTRANS(A2:A11);VERGLEICH(KGRÖSSTE(MMULT(--(MTRANS(TEIL(A2:A11;4;LÄNGE(A2:A11)-3))>
    TEIL(A2:A11;4;LÄNGE(A2:A11)-3));1^ZEILE(1:10));ZEILE(1:10));MMULT(--(MTRANS(TEIL(A2:A11;4;
    LÄNGE(A2:A11)-3))>TEIL(A2:A11;4;LÄNGE(A2:A11)-3));1^ZEILE(1:10));0))}
    

    Wenn die Texte von A2:A11 stehen. Sonst entsprechend anpassen. Es wird das ganze Wort ab der 4.Stelle bei der Sortierung berücksichtigt. Folgezellen der Zeilen müssen über SVERWEIS bzw INDEX mit VERGLEICH rangeholt wdn. So wird eine wie verlangt sortierte Kopie der Datei angefertigt, Sam.
    Gruß Luc :-?
    PS: Die habt ihr wohl nicht auf der Site bzw im Buch...? ;-)
    Man kann mit xlStandardformeln nahezu alles in einer Spalte oder Zeile sortieren, nur mit Mehrfachauswahlen klappt's so nicht. Da könnte dann eine meiner udFktt helfen...
    Noch ein Tipp: Die Beschreibung von Sortieralgg nebst verschiedener Implementierungen findet man schnell in Wikipedia. Einige VBA-Implementierungen verschiedener SortAlgg finden sich auch auf der Website von Thomas Risi. D.h. aber nicht, dass das dann schon alles wäre, was man tun muss. Ein Rahmenprogramm muss, je nach Anspruch, auch noch geschrieben wdn.
    ...Und übrigens ist ShellSort schneller als QuickSort und BubbleSort das zweitlangsamste Verfahren (nach GnomeSort)!

    Anzeige
    AW: Sortuieren
    16.12.2007 10:25:09
    Sam
    Hat mir noch jemand eine Lösung, wenn in den anderen Spalten (als die zu sortierende) noch mehrere Daten sind?
    Besten Dank für die Hilfe

    AW: Sortieren
    16.12.2007 11:26:36
    Gerd
    Hallo Sam,
    so ?
    
    Sub test()
    Dim Zeile As Long
    For Zeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(Zeile, 1) = Right(Cells(Zeile, 1), Len(Cells(Zeile, 1)) - 2) & Left(Cells(Zeile, 1), 2)
    Next
    Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Sort key1:=Cells(2, 1), order1:=xlAscending
    For Zeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(Zeile, 1) = Right(Cells(Zeile, 1), 2) & " " & Left(Cells(Zeile, 1), Len(Cells(Zeile, 1))  _
    - 2)
    Next
    End Sub
    


    Gruß Gerd

    Anzeige
    Sortieren - Hilfe
    16.12.2007 14:02:07
    Sam
    Hallo
    Habe es eigentlich in Richtung, gemäss nachstehendem Code gedacht.
    Aber dieser Code hat noch seine Mühe mit lehren Zeilen/ Einträgen.
    Kann mir jemand Helfen.
    Besten Dank an alle.
    
    Sub Test()
    ' Sortiert in Spalet A die nachstehenden Einträge in alphabetisch
    ' (ohne Berücksichtigung der vorgestellten Zahlen) sortiert
    ' 05 Gips
    ' 02 Baum
    ' "LEERZEILE"
    ' 01 Holz
    ' 04 Stahl
    ' 03 Zange
    Dim wsSort As Worksheet
    Dim strSortVor As String
    Dim strSortNach As String
    Dim strSpalte As String
    Set wsSort = Worksheets("Tabelle1")
    strSpalte = "A"                     ' Spalte mit Sortierkriterium
    For Durchgang = 1 To 2
    For Zeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    ' Suchstring mit ertsem und zweitem Suchkriterium
    strSortVor = Right$(wsSort.Range(strSpalte & Zeile), Len(wsSort.Range(strSpalte &  _
    Zeile)) - InStr(1, wsSort.Range(strSpalte & Zeile), " "))
    strSortNach = Right$(wsSort.Range(strSpalte & Zeile + 1), Len(wsSort.Range( _
    strSpalte & Zeile + 1)) - InStr(1, wsSort.Range(strSpalte & Zeile + 1), " "))
    If strSortVor > strSortNach Then
    Range(strSpalte & Zeile + 1).Rows("1:1").EntireRow.Cut
    Range(strSpalte & Zeile + 1).Offset(-1, 0).Rows("1:1").EntireRow.Insert  _
    Shift:=xlDown
    Durchgang = 1
    Zeile = 1
    End If
    Next
    Next
    End Sub
    


    Anzeige
    AW: Sortieren - Hilfe
    16.12.2007 14:40:00
    Gerd
    Hi Sam,
    von leeren Zellen innerhalb des Sortierbereichs von Spalte A war bisher nicht die Rede.
    Sollen Nachbarspalten mit sortiert werden?
    Falls ja, welche ?
    Gruß Gerd

    AW: kleine Bitte
    16.12.2007 14:57:21
    Daniel
    Hallo
    wenn du hier Code zum Überprüfen und Verbessern reinstellst, wäre es sehr Hilfreich, wenn du
    1. eine kleine Beispieldatei hinzufügst, an der man den Code testen kann. diese Beispieldatei sollte wenn möglich auch ein (ggf. von Hand erzeugtes und kommentiertes) VORHER-NACHER - Beispiel enthalten, damit man sich besser vorstellen kann, was der Code eigentlich machen soll.
    2. deinen Code grundsätzlich vorab auf Tippfehler und nicht dimensionierte Variablen überprüfst
    daher IMMER mit Option Explicit arbeiten, um solche Variablenfehler zu vermeiden.
    3. wäre es nett, wenn du uns mittleilst, was mit leeren Einträgen passieren soll.
    normalerweise werden diesen nach unten sortiert.
    Außerdem, warum willst du dir die Mühe machen, selber einen Sortieralgorhtythmus zu programmieren?
    einfach Hilfsspalte einfügen mit ner Textformel, die ersten 3 Zeichen eleminert (das wurde ja schon gezeigt), dann nach dieser Hilfsspalte sortieren und Hilfsspalte wieder löschen.
    das sind 4-6 Zeilen Code ohne irgendwelche Schleifen und mit wenig Fehlermöglichkeiten
    Gruß, Daniel
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige