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

String Operation

String Operation
03.10.2004 21:53:05
Jens
Hallo Leute,
wer kann mir bei folgendem Problem helfen... ich erhalte einen String, den ich in meine Excel Tabelle schreibe in folgender Form:
47167Duisburg
nun möchte ich den String gerne reparieren, dazu muss ein Freizeichen zwischen der PLZ und dem Ortsnamen eingefügt werden.
Da es auch sein kann, dass es sich um eine PLZ/Ort Kombination aus ÖSterreich oder der Schweiz handeln kann (PLZ sind dort 4-stellig) ist das etwas tricky...
gibt es eine methode mit der man sagen kann, dass er zwischen einer beliebigen anzahl von zahlen und buchstaben zwischen diesen ein freizeichen einfügt?
Wäre über Eure Hilfe sehr dankbar, da ich wirklich nicht mehr weiter weiß.
Schon mal herzlichen Dank in voraus!
LG
Jens

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String Operation
03.10.2004 22:30:17
Jens
Hallo!
Danke erst einmal für diese Formel!
Was mich interessieren würde, ist wie man das mit VBA umsetzen kann... eine Formel hilft mir (glaub ich) nicht weiter?!
LG
Jens
AW: String Operation
K.Rola
Hallo,
wohin sollen die getrennten Strings geschrieben werden? Ist es sicher, dass die
Strings immer mit einer Zahl beginnen, oder kommen auch Länderkürzel, wie D-....
vor?
Gruß K.Rola
AW: String Operation
03.10.2004 22:33:20
Jens
Hi K.Rola,
jipp, das ist sicher, dass es nur zahlen am anfang sind. zumindest für den moment.
die getrennten strings sollen wieder konkatiniert werden und ein freizeichen soll dazwischen stehen...
lg
jens
Anzeige
AW: String Operation
K.Rola
Hallo,
"konkatiniert" ist ein Wort, das mir nicht so geläufig ist, biite um Aufklärung.
Gruß K.Rola
AW: String Operation
03.10.2004 22:45:09
Jens
hoppla, sorry für die allgemeine verwirrung...
damit meinte ich einfach nur, dass die strings wieder zusammengefügt werden sollen... *fg*
lg
jens
AW: String Operation
K.Rola
Hallo,
nun kannst du deine Strings trenne, ich weiß jedoch noch immer nicht, was dieses
Wort bedeutet.
''Daten stehen in Spalte A
Option Explicit
Sub trennen()
Dim c As Range, z&, i&, j&, tmp1$, tmp2$
For j = 1 To 10 'letzte Zeile anpassen
Set c = Cells(j, 1)
i = 0
For z = 1 To Len(c)
If IsNumeric(Mid(c, 1, z)) Then
i = i + 1
End If
tmp1 = Left(c, i)
Next
tmp2 = Mid(c, i + 1, Len(c) - i)
Cells(j, 1) = tmp1 & " " & tmp2
Next
End Sub

Gruß K.Rola
Anzeige
AW: String Operation
Ramses
Hallo K.Rola
würde
tmp1 = Left(c,z)
nicht auch reichen ;-) ?
Noch etwas geschliffener, du Meisterin des geschlifffenen Codes ;-)
Option Explicit

Sub trennen()
Dim c As Range
Dim z As Integer, j As Integer
For j = 1 To 10 'letzte Zeile anpassen
Set c = Cells(j, 1)
For z = 1 To Len(c)
If Not IsNumeric(Mid(c, 1, z)) Then
Cells(j, 1) = WorksheetFunction.Substitute(c.Value, Mid(c, 1, z - 1), Mid(c, 1, z - 1) & " ")
Exit For
End If
Next z
Next
End Sub

Gruss Rainer
AW: String Operation
K.Rola
Hi Rainer,
na ja, ich geb ja zu, besondere Mühe hab ich mir nicht gegeben, zumal diese
Stringmanipulationen ohnehin nicht zu meinen Lieblingen gehören.
Außerdem hat mir Frager das ominöse Wort noch nicht erläutert.
Gruß K.Rola
Anzeige
AW: String Operation
Ramses
Hallo K.Rola
"...na ja, ich geb ja zu, besondere Mühe hab ich mir nicht gegeben,..."
Sooo,... habe ich es auch nicht gemeint :-))
Gruss Rainer
AW: String Operation
05.10.2004 23:12:27
Jens
Hi Rainer,
hatte grade nach meiner Dankesrede ganz vergessen meinen Code mal hier zu posten, den ich auf Basis von Karolas und deinem Ansatz gebaut habe. Ich hab es nun in einer Funktion mit Rückgabewert. Bei den Mid Operationen hab ich noch einen kleinen Fehler ausgemerzt aber nun klappt es einwandfrei!
Horrido!!
Jens

Function plzSplit(inhalt As String) As String
Dim z As Integer
For z = 1 To Len(inhalt)
If Not IsNumeric(Mid(inhalt, 1, z)) Then
inhalt = WorksheetFunction.Substitute(inhalt, Mid(inhalt, z, Len(inhalt) - z - 1), " " & Mid(inhalt, z, Len(inhalt) - z - 1))
Exit For
End If
Next z
plzSplit = inhalt
End Function

Anzeige
KonkatEnieren
Boris
Hi K.Rola,
soeben gefunden - eine Forumsbeitrag von Gerhard Schröder:
Tach Kinder!
Toll, daß ihr alle da seid bei Onkel Gerhards Märchenstunde! HA HA!
Heute erzähl ich euch von SchneeBITchen und den sieben Informatik-Zwergen! HA HA HA!
Also, es war einmal ein attraktives junges Mädchen. Ihre Mutter hat immer gesacht, dasse Rot, Weiß und Schwarz sein soll. Dadurch hat sie jetz schwarze lange Haare, 90-60-90, nen roten Tanga, schwarze Strapse und weiße Pumps gekricht! HA HA HA! Aber Spaß beiseite. Ich seh hier so viele erwachsene Jugendliche, dann sach ich da nix mehr zu. Also, ihr Name war SchneeBITchen, oder so. Sie wollte unbedingt Informatik auf Lehramt studieren und zog hinaus ins weite Land. Eines Tages kam sie an ein großes rotes Schloß, genau so rot und groß, wie mein.. äh.. meine Partei! HA HA HA! Das war das berühmte Harry-Potter-Institut der Uni Münster! HA HA! Da ging sie dann rein und hat keinen gesehen, weil alle wech waren, wahrscheinlich wieder auf Seminar, oder so. Da hattese erstmal gewartet und alles angeschaut und angefaßt. Plötzlich hörte sie lauten Gesang: " Hei HO, Hei HO! Bill Gates, der ist jetzt tot...". Nacheinander kamen alle sieben Informatik-Zwerge hinein: Zwerg Grob (der Stratege), Zwerg Numerus-Clausing (der Mathematiker und weiser Herrscher aller Zahlen), Zwerg Vossen (Sean-Connery-Double), Zwerg Kuchen (Institutsbäckermeister), Zwerg Klein (der heißt nur so, ist aber erheblich größer als 64 BIT), Zwerg Müller-Funk (Dr. Seltsam) und Zwerg DATA-Becker (Datenadministrator). Alle mit Bart und Zipfelmütze. Da sahen alle das arme kleine SchneeBITchen, das da saß und sie mit großen unschuldigen Augen anschaute. "Was zum Teufel hast du hier verloren?", schimpfte DATA-Becker, der weiseste von allen WI-Zwergen. "Ich bin das arme kleine SchneeBITchen. Ich habe vorher im fernen Ruhrhattan studiert, aber die böse Queen Elisabeth hat in ihrem SemesterSpiegel gelesen, daß ich so ein schönes Mädchen bin und wollte mich töten. Zuerst sperrte sie mich in einen Deadlock, doch nach ihrer Konkatenation wurde ich verbannt. Ich hörte von meinem Traumprinzen, daß er auch hier studiert und jetzt suche ich ihn. Ich liebe ihn doch so sehr!", sagte sie ängstlich und weinte. "Wie heißt er denn? Vielleicht können wir dir helfen.", schlug Zwerg Numerus-Clausing vor. Er war der Weise aller Zahlen. "Er heißt Prinz Al-GO-Rhythmus .", schluchzte sie. "Den kenne ich gut! Er ist ein Stratege auf der Kryptologiebasis und EDV-Rechtsexperte! Leider ist er schon seit längerer Zeit auf einer Forschungsreise. Aber ich werde tun, was ich machen kann.", sagte Clausing. "Nun gut, bleibe hier und wir sorgen für dich. Aber mach ja nichts kaputt!" sagte DATA-Becker. Darauf blieb SchneeBITchen bei den sieben Informatik-Zwergen, lernte einiges, machte nichts kaputt und suchte weiter ihren Prinzen mit yahoo- und fireball-Suchmaschinen, doch sie konnte ihn nirgendwo finden.
Es begab sich aber zu der Zeit, daß Queen Elisabeth mal wieder eine Referenzabweichung durch ihr Virenabwehrprogramm auf ihrem Spiegelrechner entdeckt hatte und sofort das Spiegel-System neu konfigurieren ließ. Bisher bekam sie auf den Input: "Spiegelrechner an der Wand, wer ist die schönste Nutzerin im Land?" immer den Output: " Die schönste Nutzerin bist Du mit dem Verstand von einer Kuh!". Nach dieser Neuinstallation kam immer wieder der Output: Bei den Zwergen mit deren Schergen, lebt ein Mädchen in deren Städtchen. Das ist bestimmt noch schöner als du, mißratene arrogante Kuh!" .
Da war die Queen natürlich total kiewich mit. Kann ich mir ja auch vorstellen, wenn ich der Doris jetz sach, dasse ne Kuh is! Aber sie is doch ein Pferd, das fährt! HA HA HA!
Aber weiter im Text. So, der Prinz ahnte nichts davon und die Queen war sauer und das arme Mädchen war traurig, so weit, so gut. Ich mach das mal ein bischen kürzer, ihr Kinder müßt früh schlafen gehen, ihr habt doch morgen wieder Vorlesung! Also, nach vielen Attentaten der Queen konnte SchneeBITchen immer wieder gerettet werden, bis die Queen ne Idee hatte. Sie schickte ne e-mail mit nem Virus. Der war so verseucht, daß auch kein Informatiker das Problem lösen konnte! Da fiel SchneeBITchen in eine Endlosschleife und schlief und schlief wie ein Modem! HA HA HA! Alle Zwerge sahen das und heulten um die Wette. "So ein armes Ding!", rief Numerus-Clausing. Alle merkten nicht, daß in diesem Moment Prinz Al-GO-Rhythmus den Raum betrat. " Was zum Geier geht denn hier ab?", fragte der Prinz. Da sah er das kleine SchneeBITchen und wußte sofort, was zu tun ist. Er traversierte ihre inordere Baumstruktur einfach in eine präfixe Notation und switchte sämtliche Semaphoren und Mutexen. Danach ließ er einen Algorithmus für endliche Automaten, den ihm Zwerg Numerus-Clausing beigebracht hatte, rekursiv und iterativ in SchneeBITchens Herzen ablaufen, und sie erwachte wieder zum Leben. Als sie ihren Prinzen sah, sagte sie: "Mein Retter, laß uns konkatenieren!" . " Ja, meine Liebste, ich will dich konkatenieren!", sagte der Prinz. Als der Prinz das gesagt hatte, waren alle voller Freude. Bei der feierlichen Konkatenation stellten SchneeBITchen und Prinz Al-GO-Rhythmus schon ihren VoFi und Konsumplan für eine Unterklassenkapselung auf und lebten bis zu ihrer endgültigen Lebensalgorithmusterminierung in voller Effizienz und Effektivität ihres Arbeitsspeicheras. Und wenn sie nicht heruntergefahren sind, so laufen sie noch heute.
So, liebe Kinder, jetz is aber Schluß für heute.
Bis zum nächsten Mal.
Euer Onkel Gerhard

Grüße Boris
Anzeige
AW: KonkatEnieren
K.Rola
Userbild
Gruß K.Rola
Matrixformel:
ingoG
Hallo Jens,
wenn es doch eine Formel sein darf kannst Du auch folgende Formel nutzen:
=GLÄTTEN(TEIL(A1;1;MIN(WENN((NICHT(ISTFEHLER(TEIL(A1;ZEILE($1:$100);1)*1))*ISTFEHLER(TEIL(A1;ZEILE($1:$100)+1;1)*1));ZEILE($1:$100))))&" "&TEIL(A1;MIN(WENN((NICHT(ISTFEHLER(TEIL(A1;ZEILE($1:$100);1)*1))*ISTFEHLER(TEIL(A1;ZEILE($1:$100)+1;1)*1));ZEILE($1:$100)+1));100))
Eingabe abschließen mit Strg-Shift-Enter
Bei mir funzt es solange die Strings nicht länger als 100 Zeichen lang sind.
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: Matrixformel - etwas verkürzt:
Boris
Hi Ingo,
etwas kürzer:
{=LINKS(A1;MAX(ISTZAHL(TEIL(A1;SPALTE($1:$1);1)*1)*SPALTE($1:$1)))&" "&TEIL(A1;MAX(ISTZAHL(TEIL(A1;SPALTE($1:$1);1)*1)*SPALTE($1:$1)+1);99)}
;-)
Grüße Boris
AW: Matrixformel - noch etwas verkürzt:
Martin
Hallo,
noch ein bißchen kürzer, allerdings für maximal 6 Ziffern am Anfang :-(
=LINKS(A1;SUMME((ISTZAHL(1*TEIL(A1;{1;2;3;4;5;6};1)))*1))&" "&RECHTS(A1;LÄNGE(A1)-SUMME((ISTZAHL(1*TEIL(A1;{1;2;3;4;5;6};1)))*1))
Gruß
Martin Beck
Das geht bei den Ausländern in die Hose...
Boris
Hi Martin,
...denn in der Ursprungsfrage stand:
Da es auch sein kann, dass es sich um eine PLZ/Ort Kombination aus ÖSterreich oder der Schweiz handeln kann (PLZ sind dort 4-stellig) ist das etwas tricky...
Und dann steht z.B. in der Zelle:
A-1234Linz/Österreich
Daher hab ich die Lösung gewählt, die letzte Ziffer im Text ausfindig zu machen. ;-)
Grüße Boris
Anzeige
AW: Das glaube ich nicht
Martin
Hallo Boris,
Zitat aus der erläuternden Mail von Jens auf eine entsprechende Nachfrage von K.Rola:
"das ist sicher, dass es nur zahlen am anfang sind. zumindest für den moment."
https://www.herber.de/forum/messages/494544.html
Daran habe ich mich orientiert und für 1234Linz/Österreich funktioniert die Formel m.E. wie gewünscht.
Gruß
Martin Beck
Das sind halt 2 Lösungen für 2 Probleme...
Boris
Hi Martin,
...wenn am Anfang definitiv nur Zahlen stehen, dann reicht auch die Arrayvariante:
{=LINKS(A1;ANZAHL(LINKS(A1;SPALTE(1:1))*1))&" "&TEIL(A1;ANZAHL(LINKS(A1;SPALTE(1:1))*1)+1;99)}
Sind nochmal 37 weniger...;-)
Oder als normale Formel - wie deine auch - bis maximal 6-stelliger PLZ:
=LINKS(A1;ANZAHL(LINKS(A1;{1.2.3.4.5.6})*1))&" "&TEIL(A1;ANZAHL(LINKS(A1;{1.2.3.4.5.6})*1)+1;99)
Grüße Boris
Anzeige
AW: Matrixformel - etwas verkürzt:
IngoG
Hi Boris,
ich hatte schon geahnt, dass meine Formel noch nicht der Weisheit letzter Schluß sein würde ;-)
Wie immer kurz und gut...
Gruß Ingo
PS bin mir aber nicht 100% sicher, ob es nicht strings gibt wie zB "1234 Wien 1", das würde deine Formel irgendwie aushebeln, aber vielleicht hab ich das auch nur aus "der dritte Mann" ;-))
Dankeschön!
05.10.2004 22:36:20
Jens
Hallo Leutz!
Herzlichen Dank für Eure Tipps und Tricks :-)
@Karola und den Rest, das mit dem Konkatenieren find ich lustig, dass das so viel Verwirrung gestiftet hat, eine schöne Geschichte über die sieben Informatikzwerge kam da grade richtig *fg*
LG
Jens
P.S.
Ich habe auf die Makrolösung zurückgegriffen und das klappt ganz wunderbar :-)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige