Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige