Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nach bestimmter Zeichenfolge sortieren

Nach bestimmter Zeichenfolge sortieren
08.06.2005 10:45:43
Fabian
Guten Morgen,
hab mal wieder eine Frage..
Ich habe eine eine Spalte in deren Zellen eine längere Zeichenfoge steht, zB "CT 847 STD 1096S 8000 M 19" oder "CT 865 HTD 1086 9,525 M 25 EV ZZP".
Ich möchte nun alle Zeilen absteigend danach sortieren, ob die entsprechenden Zellen die Zeichen "CT" und "2000+" (also alle größer als 2000) enthalten..
Hat dazu irgendjemand ne Idee?
Gruß,
Fabian
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach bestimmter Zeichenfolge sortieren
08.06.2005 11:09:56
Harald
Hallo Fabian,
eine Idee wäre die Geschichte zu trennen.
Unter Daten / Text in Spalten kannst Du die Zeichenfolge durch Leerzeichen getrennt auf mehrere Spalten aufteilen und dann nach Lust und Liebe sortieren, filtern, etc
Ggf. wären per Strg+H 2 Leerzeichen durch ein Leerzeichen zu ersetzen
Gruß
Harald
Anzeige
AW: Nach bestimmter Zeichenfolge sortieren
08.06.2005 11:27:32
Fabian
DA die jeweiligen Zellen unteschiedliche Angaben beinhalten und auch die Zahlen an unterschiedlichen Positionen stehen, wäre Text in Spalten ja eher umständlich..
Kann man nicht irgendwie innerhalb der Zellen nach CT und min 200 suchen und die dann farbig markieren, das würde mir ja schon reichen..
Gruß,
Fabian
Anzeige
AW: Nach bestimmter Zeichenfolge sortieren
08.06.2005 11:36:47
Harald
Hallo Fabian,
muss ich offen lassen. CT steht ja offensichtlich immer am Anfang. Das wäre kein Problem.
Aber eine Zahl größer 200 die zudem noch an unterschiedlichen Positionen stehen kann...da fällt mir keine amtliche Lösung ein.
Bin mal gespannt, ob diese Nuss geknackt wird ;-))
Viel Glück
Harald
Anzeige
AW: Nach bestimmter Zeichenfolge sortieren
08.06.2005 12:28:02
IngGi
Hallo Fabian,
ist es 200+ oder 2000+? Und was genau heißt denn 2000+? Heißt das mindestens eine Zahl muß größer 2000 sein oder alle Zahlen müssen größer 2000 sein oder eine bestimmte Zahl muß größer 2000 sein? Wenn es eine bestimmte Zahl ist, wie kann man die finden? Steht die z.B. immer vor oder hinter einem bestimmten oder zumindest ähnlichen Kürzel? Das muß sich doch irgendwie festmachen lassen.
Gruss Ingolf
Anzeige
AW: Nach bestimmter Zeichenfolge sortieren
09.06.2005 10:40:34
Fabian
Hi,
also CT steht immer am Anfang in der Zelle und es gibt verschiedene Zahlen in der Zelle. Ich möchte nun nur die Zeilen raussuchen lassen, deren Zelle CT enthält und eine Zahl GRÖßER als 2000..
Aber hab mich schon fast damit abgefunden, dass es nicht geht...
Gruß,
Fabian
AW: Nach bestimmter Zeichenfolge sortieren
09.06.2005 12:02:11
IngGi
Hallo Fabian,
das geht schon. Sortier die Liste erstmal ganz normal alphabetisch. Dann kopierst du alle Zellen raus, die mit "CT" beginnen und fügst diese in ein leeres Blatt ein (ab Zelle A1). Jetzt geht es nur noch darum, diejenigen Einträge herauszufinden, die irgendwo eine Zahl >=2000 enthalten. Genau das macht das untenstehende Makro. Es schreibt hinter alle gefundenen Einträge eine 1 in Spalte B. Anschließend brauchst du deine Einträge nur noch nach Spalte B sortieren - fertig.
Einfügen des Makros:
Mit Alt+F11 in den Makro-Editor gehen.
Im linken Fenster Doppelklick auf das Tabellenblatt mit den "CT-Fällen".
Über Einfügen-Modul ein neues Modul einfügen.
Makro in das große Fenster rechts kopieren.
Anschließend im Tabellenblatt mit den "CT-Fällen" Makro starten über Extras-Makro-Makros-Pruefen_groesser_2000-Ausführen.

Sub Pruefen_groesser_2000()
Dim e As String, v As String, a As String, i As Integer, rng As Range
For Each rng In ActiveSheet.Range("A1:A" & ActiveSheet.Range("A65536").End(xlUp).Row)
e = rng
For i = 1 To Len(e)
v = Mid(e, i, 1)
Select Case Asc(v)
Case 44, 48 To 57
a = a & v
Case Else
If a > "" Then
If Val(a) >= 2000 Then rng.Offset(0, 1) = 1
i = i - 1
a = ""
End If
End Select
Next i
Next rng
End Sub

Gruß Ingolf
Anzeige
Korrektur !!!
09.06.2005 13:02:29
IngGi
Hallo Fabian,
ich musste das Makro leider nochmal korrigieren:

Sub Pruefen_groesser_2000()
Dim e As String, v As String, a As String, i As Integer, rng As Range
For Each rng In ActiveSheet.Range("A1:A" & ActiveSheet.Range("A65536").End(xlUp).Row)
e = rng
For i = 1 To Len(e)
v = Mid(e, i, 1)
Select Case Asc(v)
Case 44, 48 To 57
a = a & v
Case Else
If a > "" Then
If Val(a) >= 2000 Then rng.Offset(0, 1) = 1
If i < Len(e) Then a = ""
End If
End Select
Next i
If a > "" Then
If Val(a) >= 2000 Then rng.Offset(0, 1) = 1
End If
Next rng
End Sub

Gruß Ingolf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nach bestimmter Zeichenfolge in Excel sortieren


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in einer Spalte stehen, z.B. Spalte A.

  2. Daten sortieren:

    • Markiere die gesamte Spalte mit den Zeichenfolgen.
    • Gehe zu Daten -> Sortieren und wähle die gewünschte Sortierreihenfolge (aufsteigend oder absteigend).
  3. Makro einfügen:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
    • Doppelklicke im linken Fenster auf das Tabellenblatt mit deinen Daten.
    • Gehe zu Einfügen -> Modul und füge das folgende Makro ein:
Sub Pruefen_groesser_2000()
    Dim e As String, v As String, a As String, i As Integer, rng As Range
    For Each rng In ActiveSheet.Range("A1:A" & ActiveSheet.Range("A65536").End(xlUp).Row)
        e = rng
        For i = 1 To Len(e)
            v = Mid(e, i, 1)
            Select Case Asc(v)
                Case 44, 48 To 57
                    a = a & v
                Case Else
                    If a > "" Then
                        If Val(a) >= 2000 Then rng.Offset(0, 1) = 1
                        i = i - 1
                        a = ""
                    End If
            End Select
        Next i
    Next rng
End Sub
  1. Makro ausführen:

    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Wähle Extras -> Makros -> Makros anzeigen und führe das Makro Pruefen_groesser_2000 aus.
  2. Ergebnisse überprüfen: Nachdem das Makro ausgeführt wurde, sollten die Zellen, die eine Zahl größer als 2000 enthalten, in Spalte B eine „1“ haben. Sortiere nun nach dieser Spalte.


Häufige Fehler und Lösungen

  • Fehler beim Ausführen des Makros: Stelle sicher, dass das Makro korrekt im richtigen Modul eingefügt wurde. Überprüfe auch, dass dein Excel die Makros aktiviert hat.

  • Keine Ergebnisse: Wenn das Makro keine „1“ einfügt, überprüfe, ob die Zahlen im richtigen Format (nicht als Text) vorliegen.

  • Zellen bleiben unverändert: Überprüfe, ob die Zellen tatsächlich eine Zahl größer als 2000 enthalten. Möglicherweise sind die Werte als Text formatiert.


Alternative Methoden

  • Text in Spalten: Du kannst die Funktion „Text in Spalten“ verwenden, um die Zeichenfolgen in separate Spalten zu teilen. Das hilft, Zahlen zu isolieren und einfacher zu sortieren.

  • Formeln nutzen: Anstatt ein Makro zu verwenden, könntest du auch Formeln wie =WENN(UND(ISTZAHL(SUCHEN("CT";A1));(WERT(TEXT(A1;"0"))>2000));1;0) nutzen, um die Bedingungen zu prüfen.


Praktische Beispiele

Angenommen, du hast folgende Werte in Spalte A:

CT 847 STD 1096S 8000 M 19
CT 865 HTD 1086 9,525 M 25 EV ZZP
CT 9000 DATA 1234 M 15

Nach Ausführung des Makros wird die Spalte B so aussehen:

1  (für CT 9000 DATA 1234 M 15)
0  (für CT 847 STD 1096S 8000 M 19)
0  (für CT 865 HTD 1086 9,525 M 25 EV ZZP)

Jetzt kannst du die Daten nach Spalte B sortieren, um nur die relevanten Zeilen anzuzeigen.


Tipps für Profis

  • Makros optimieren: Du kannst das Makro anpassen, um mehrere Bedingungen zu prüfen oder um zusätzliche Informationen zu extrahieren.

  • Datenvalidierung: Verwende Datenvalidierungsfunktionen, um sicherzustellen, dass nur die richtigen Daten eingegeben werden.

  • Leistungsanalyse: Bei großen Datenmengen kann es sinnvoll sein, die Performance des Makros zu überprüfen und gegebenenfalls zu optimieren.


FAQ: Häufige Fragen

1. Wie kann ich die Sortierung nach Buchstaben durchführen? Du kannst die Spalte einfach alphabetisch sortieren, indem du die Funktion „Sortieren“ in der Datenregisterkarte verwendest.

2. Was ist der Unterschied zwischen CT und 2000+? CT ist eine Zeichenfolge, die in den Zellen enthalten sein muss, während 2000+ eine Bedingung ist, die überprüft, ob eine Zahl in der Zelle größer als 2000 ist.

3. Wie kann ich mehrere Zeichenfolgen gleichzeitig überprüfen? Du kannst das Makro erweitern, um mehrere Bedingungen zu überprüfen, indem du zusätzliche If-Anweisungen hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige