Anzeige
Archiv - Navigation
360to364
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
360to364
360to364
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

String sortieren

String sortieren
14.01.2004 10:01:43
einfachJack
Ich möchte einen fünfstellligen String in der Art wie "A28K2" so umwandeln sodass er als Ergebnis "KA822" oder "AK228" also auf oder absteigend sortiert, ausgegeben wird.
Für etwaige Hilfestellung wäre ich sehr dankbar!

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

Betreff
Datum
Anwender
Anzeige
AW: String sortieren
14.01.2004 10:14:20
Boris
Hi,
in A1 steht: "A28K2"
Schreibe in B1 folgende Array-Formel und kopier sie nach RECHTS:
{=WENN(SPALTE(A1)>LÄNGE($A1);"";ZEICHEN(KGRÖSSTE(CODE(TEIL($A1;ZEILE(INDIREKT("1:"&LÄNGE($A1)));1));SPALTE(A1))))}
{geschweifte Klammern} nicht eingeben, sondern Formeleingabe mit Strg-Shift-Enter abschließen. Das erzeugt sie.
Anschließend kann du die Zellen B1, C1, D1 etc... einfach wieder verketten.
Grüße Boris
AW: String sortieren
14.01.2004 11:17:42
einfachJack
Danke für die schnelle Hilfe -ich wollte dieses Problem per VBA lösen.
trotzdem danke!
AW: String sortieren
14.01.2004 10:22:21
IngoG
Hallo Jack???;
folgende Matrixformel sortiert Dir den String aufsteigend
=ZEICHEN(KKLEINSTE(CODE(TEIL(A1;ZEILE(1:5);1));1))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1;ZEILE(1:5);1));2))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1;ZEILE(1:5);1));3))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1;ZEILE(1:5);1));4))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1;ZEILE(1:5);1));5))
die unten stehende absteigend
=ZEICHEN(KGRÖSSTE(CODE(TEIL(A1;ZEILE(1:5);1));1))&ZEICHEN(KGRÖSSTE(CODE(TEIL(A1;ZEILE(1:5);1));2))&ZEICHEN(KGRÖSSTE(CODE(TEIL(A1;ZEILE(1:5);1));3))&ZEICHEN(KGRÖSSTE(CODE(TEIL(A1;ZEILE(1:5);1));4))&ZEICHEN(KGRÖSSTE(CODE(TEIL(A1;ZEILE(1:5);1));5))
Die eingabe muß jeweils abgeschlossen werden mit Strg-Shift-Enter
Ich hoffe, das hilft Dir weiter
Gruß Ingo
PS eineRückmeldung wäre nett...
Anzeige
Ergänzung
14.01.2004 10:40:07
IngoG
Hallo Jack???,
wenn der String auch kürzer als 5 Stellen sein kann kannst Du die Formeln erweitern in der Form:
=WECHSELN(ZEICHEN(KKLEINSTE(CODE(TEIL(A1&" ";ZEILE(1:5);1));1))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1&" ";ZEILE(1:5);1));2))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1&" ";ZEILE(1:5);1));3))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1&" ";ZEILE(1:5);1));4))&ZEICHEN(KKLEINSTE(CODE(TEIL(A1&" ";ZEILE(1:5);1));5));" ";"")
(dabei löscht er allerdings auch im String vorkommende Blanks)
Gruß Ingo
PS eine Rückmeldung wäre nett...
Das ist aber wenig flexibel...
14.01.2004 10:53:29
Boris
Hi Ingo,
der String ist im Beispiel 5 Zeichen lang - was ist, wenn er länger oder kürzer ist?
Zudem sortiert deine aufsteigende Variante nicht - wie gewünscht - "AK228" sondern "228AK". Ist ja auch logisch, da der Zahlencode kleiner als der Buchstabencode ist.
Und eigenlich ist hier ne Formellösung sowieso fehl am Platze. Was ist mit Sonderzeichen? Groß- und Kleinschreibung? Da pack ich mir natürlich auch an meine eigene Nase...
Grüße Boris
Anzeige
AW: Das ist aber wenig flexibel...
14.01.2004 11:28:46
einfachJack
Der String ist immer 5 Zeichen lang und besteht aus dem Gemisch A B D K Z 1 .... 9 und sollte per VBA Code sortiert werden. Übrigens dient das einer Gewinnauswertung eines Pokerspieles.
mfg JACK
AW: Das ist aber wenig flexibel...
14.01.2004 12:30:09
alex mair
ein poker spiel also, ich liebe pokern :)
zuerst string in array einlesen, dann string sortieren (mit bubblesort z.b.), dann array in string rückverwandeln. guck mal den code hier:

Sub blubb()
Dim text As String, dummy As String
Dim i As Integer, j As Integer, l As Integer
Dim feld()
text = "A28K2"
MsgBox text
' string in array einlesen
ReDim feld(Len(text))
For i = 1 To Len(text)
l = Len(text)
dummy = Left(text, 1)
text = Right(text, l - 1)
feld(i) = dummy
Next i
'string sortieren
l = UBound(feld)
For i = 1 To l
For j = 1 To l
If feld(i) > feld(j) Then
dummy = feld(i)
feld(i) = feld(j)
feld(j) = dummy
End If
Next j
Next i
'array in string einlesen
For i = 1 To l
text = text & feld(i)
Next i
MsgBox text
End Sub

Anzeige
AW: Das ist aber wenig flexibel...
14.01.2004 12:34:00
einfachJack
Mir fehlen die Worte....
Recht herzlichen Dank und schöne Grüsse aus Wien
mfg Jack
AW: String sortieren
14.01.2004 11:20:37
einfachJack
Hallo Ingo!
Danke für die prompte Hilfestellung - ich würde das aber gerne als Makro in VBA gewusst- ich finde in der HILFE keine Routine die wie früher bei GW-Basic Bubble war.
Nochmals vielen DAnke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige