Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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
Inhaltsverzeichnis

Text mit verschiedener Länge vor und nach einem bestimmten Zeichen

Text mit verschiedener Länge vor und nach einem bestimmten Zeichen
13.01.2020 17:17:18
Aleksandra
Hallo zusammen,
ich kämpfe schon Ewigkeiten mit einer Formel...
Ich habe einen Text z.B.:
"Buchung Leistung 05/18 Max Mustermann"
Aus dem obigen Text muss ich in einer Spalte "05/18" extrahieren.
Jetzt ist es aber so, dass 05/18 anders geschrieben sein könnte, z.B. mit Leerzeichen auf einer oder auf beiden Seiten von dem Zeichen "/". Zudem könnte das Jahr (hier "18") auch ausgeschrieben sein (d.h. 05/2018 anstatt 05/18).
Könnt ihr mir hierbei helfen?
Tausend Dank für Eure Hilfe!
LG

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

Betreff
Datum
Anwender
Anzeige
UDF Regex
13.01.2020 17:29:26
ChrisL
Hi Aleksandra
Folgender Code in ein Standardmodul kopieren, danach als Formel verwendet =Aleksa(A1)
Function Aleksa(strInput As String) As String
Dim regAusdr As Object
Dim varErgebnis As Variant
Set regAusdr = CreateObject("Vbscript.regexp")
regAusdr.Pattern = "\d*\/\d*"
regAusdr.IgnoreCase = True
regAusdr.Global = True
Set varErgebnis = regAusdr.Execute(strInput)
On Error Resume Next
Aleksa = varErgebnis(0)
End Function
cu
Chris
Korrektur Pattern und Erläuterung
13.01.2020 18:59:59
ChrisL
Noch eine kleine RegEx(kursion)...
regAusdr.Pattern = "\d+\/\d+"

anstelle
regAusdr.Pattern = "\d*\/\d*"
\ = kündigt ein Steuerzeichen an
d = Digit resp. Ziffer
* = 0 oder mehr Ziffern
+ = 1 oder mehr Ziffern
(somit Stern falsch; Plus richtig, weil wir wollen ja mindestens 1 oder mehr Ziffer)
\ = Steuerzeichen
/ = Charakterzeichen (wir suchen den Slash)
gefolgt auf weitere Ziffer/n.
Und hier eine präzisere Version:
regAusdr.Pattern = "\ \d{2}\/(\d{2}\ |\d{4}\ )"
Ausdruck als Freitext:
Leerzeichen AND digit {2-stellig} AND Slash AND (digit {2-stellig} OR digit {4-stellig}) AND Leerzeichen
AND ergibt sich automatisch, für OR braucht es den Strich |
cu
Chris
PS: Patterns lassen sich z.B. hier testen https://regexr.com/
Anzeige
AW: Korrektur Pattern und Erläuterung
14.01.2020 10:33:01
ChrisL
Danke Case, Leerzeichen habe ich überlesen :)
regAusdr.Pattern = "\ \d{2}\ *\/\ *(\d{2}\ |\d{4}\ )"
Die einfachere Variante mit \d* würde u.a. auch einen einzelnen Slash erfassen.
AW: Text mit verschiedener Länge vor und nach einem bestimmten Zeichen
13.01.2020 17:30:36
Sigi
Hallo Aleksandra,
welche Schreibweisen sind möglich? Liste mal alle auf.
Gruß
Sigi
AW: Text mit verschiedener Länge vor und nach einem bestimmten Zeichen
13.01.2020 20:18:24
Günther
Moin,
welche Excel-Version hast du denn wirklich? (ich weiß, dass hier nicht alle Versionen angegeben werden können...)
Du kannst es aber auf jeden Fall ohne VBA lösen.
Gruß
Günther
Im Anhang...
14.01.2020 10:12:04
Case
Hallo, :-)
... mal eine Beispieldatei für die von dir genannten Fälle mit den Leerzeichen: ;-)
Beispieldatei...
Servus
Case

Anzeige
Ohne PQ, ohne VBA
14.01.2020 20:07:14
lupo1
B1:
=
GLÄTTEN(TEIL(WECHSELN(A7;" ";WIEDERHOLEN(" ";99));MIN(WENN(ISTZAHL(--LINKS(
GLÄTTEN(TEIL(WECHSELN(A7;" ";WIEDERHOLEN(" ";99));SPALTE(A1:Z1)*99-98;98))));SPALTE(A1:Z1)))*99-98;98))
Anzeige
nachgereicht Korrektur für Leerzeichen um / herum
14.01.2020 20:14:59
lupo1
B1:
=
GLÄTTEN(TEIL(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A7;" / ";"/");"/ ";"/");" /";"/");" ";
WIEDERHOLEN(" ";99));MIN(WENN(ISTZAHL(--LINKS(
GLÄTTEN(TEIL(WECHSELN(A7;" ";WIEDERHOLEN(" ";99));
SPALTE(A1:Z1)*99-98;98))));
SPALTE(A1:Z1)))*99-98;98))
benötigt Matrixformelabschluss vor xl365

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige