Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Inhalt zwischen 2 Sonderzeichen auslesen

Inhalt zwischen 2 Sonderzeichen auslesen
07.02.2017 10:53:52
Werner
Hallo Excelfreunde,
ich möchte gern den "Inhalt" zwischen 2 Sonderzeichen "auslesen"
Beispiel
in der Zelle steht
File/Proj/Runden/Jahr_2016/20Dez/KW51/Spezial/Test
Ich möchte in der Zelle jedoch nur
Jahr_2016/20Dez/KW/51
also den Text
ab dem 3. / und vor dem 6. /
Ist sowas per Formel möglich ?
Freu mich auf einen Tipp
Gruß
Werner
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt zwischen 2 Sonderzeichen auslesen
07.02.2017 11:00:37
Fennek
Hallo,
bei excel-fox.com gab es mal einen Ansatz:

Rick Rothstein (Fox)
Get Field from Delimited Text String
How many times have you had a delimited text string (say "one,two,three,four" where the  _
delimiter is a comma) and you wanted a formula to retrieve one of the delimited values, say, the third one. Personally, I have wondered for years why such a function is not built into Excel but, alas, it isn't. We could use VB to create a UDF (user defined function), but as it turns out, that is not necessary. Here is a relatively simple formula that will parse delimited text out from within a larger text string up to 99 characters long...
=TRIM(MID(SUBSTITUTE(A1,delimiter,REPT(" ",99)),fieldnumber*99-98,99))
You simply have to replace the word "delimiter" with a text value (one or more characters  _
long) and replace the word "fieldnumber" with the number (starting at 1) for the field of text you want. For example, let's say the cell A1 has this text in it...
one,two,three,four,five,six,seven,eight,nine,ten
This formula can be used to retrieve, say, the seventh field of data...
=TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),7*99-98,99))
or, simplifying the expression by performing the indicated math toward the end of the  _
formula...
=TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),595,99))
Remember, the delimiter does not have to be a single character. Let's say your this text  _
was in cell A1...
one - two - three - four - five - six - seven
and you wanted, say, the third field using the dash as the delimiter. You could use "-" as  _
the delimiter and then apply the TRIM function to it in order to get rid of the leading/trailing spaces that would attach to the text returned if only as single dash was used for the delimiter; however, if we use " - " (space/dash/space) as the delimiter, then the desired result would be returned directly...
=TRIM(MID(SUBSTITUTE(A1," - ",REPT(" ",99)),3*99-98,99))
mfg
Anzeige
AW: Inhalt zwischen 2 Sonderzeichen auslesen
07.02.2017 11:06:06
Anton
Hallo Werner,
etwas umständlich aber sollte funktionieren:
=TEIL(A1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;1)+1)+1)+1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/"; A1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;1)+1)+1)+1)+1)+1)-2-FINDEN("/";A1;FINDEN("/";A1; FINDEN("/";A1;1)+1)+1)+1) 
VG Anton
Anzeige
AW: mit vba recht einfach
07.02.2017 11:12:30
Fennek
Hallo,
noch eine kleine Erklärung:
da ich mich mit Formeln schlecht auskenne und diese Aufgabe mit VBA sehr einfach zu lösen ist (erg = split(cells(1,1), "/"), gab es nur (einen für mich schwer verständichen) link.
mfg
AW: Inhalt zwischen 2 Sonderzeichen auslesen
07.02.2017 11:23:44
Werner
Funzt
DANKE
Gruß
Werner
AW: Inhalt zwischen 2 Sonderzeichen auslesen
07.02.2017 11:18:55
Daniel
Hi
eine Möglichkeit:
=GLÄTTEN(TEIL(WECHSELN(WECHSELN(A1;"/";WIEDERHOLEN(" ";1000);6);"/";WIEDERHOLEN(" ";1000);3);1000;1000))
Etwas korrekter, aber aufwendiger ist:
1. ersetze das 3. und 6 Trennzeichen durch ein jeweils anderes Trennzeichen, welches ansonsten im Text nicht vorkommt (z.B. "\" und "|")
dh in B1 dann =Wechseln(Wechseln(A1;"/";"|";6);"/";"\";3)
in C1 dann =TEIL(B1;FINDEN("\";B1)+1;FINDEN("|";B1)-FINDEN("\";B1)-1)
diese Variante geht natürlich auch ohne Hilfsformel, wenn du die Formel aus B1 an die entsprechenden Stellen in der Formel von C1 einsetzt (natürlich ohne "=")
Gruß Daniel
Anzeige
AW: Inhalt zwischen 2 Sonderzeichen auslesen
07.02.2017 11:25:40
Werner
Cool, Daniel :)
Danke und Gruß
Werner
.. Folgefrage: nur den Text vom letzten /
07.02.2017 11:27:18
Werner
Hallo
irgendwie stehe ich gerad völlig auf dem Schlauch
von
File/Proj/Runden/Jahr_2016/20Dez/KW51/Spezial/Test
möchte ich nur
Test
ausgeben.
Also die letzten Buchstaben nach dem letzten /
Gruß
Werner
Text nach dem letzten /
07.02.2017 11:33:22
WF
Hi,
=TEIL(A1;VERWEIS(9^9;FINDEN("/";A1;ZEILE(1:999)))+1;9^9)
WF
Anzeige
AW: .. Folgefrage: nur den Text vom letzten /
07.02.2017 11:34:11
Daniel
Hi
1. versuche mal, die bisher gezeigten Lösungen zu verstehen.
2. ersetze dann das letze "/" durch ein anderes Trennzeichen (z.B. "|")
3. ermittle dann die Position dieses Trennzeichens (Finden) und lasse alle Zeichen ab diesem Trennzeichen ausgeben (Teil)
wenn du berechnen willst, wieviele "/" überhaupt im Text vorhanden sind, geht das so:
=länge(A1)-Länge(Wechseln(A1;"/";""))
Reicht dir das an Tips?
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Inhalt zwischen zwei Sonderzeichen auslesen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel den Text zwischen zwei Sonderzeichen auszulesen, kannst Du die folgende Methode verwenden. Angenommen, in Zelle A1 steht der Text:

File/Proj/Runden/Jahr_2016/20Dez/KW51/Spezial/Test
  1. Verwende die Formel, um den Text zwischen den 3. und 6. Schrägstrichen (/) auszulesen:
=TEIL(A1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;1)+1)+1)+1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;1)+1)+1)+1)+1)+1)-2-FINDEN("/";A1;FINDEN("/";A1;FINDEN("/";A1;1)+1)+1)+1)
  1. Drücke Enter. Der Text Jahr_2016/20Dez/KW51 wird angezeigt.

Diese Formel nutzt die Funktionen FINDEN und TEIL, um die Positionen der Trennzeichen zu ermitteln und den gewünschten Text auszulesen.


Häufige Fehler und Lösungen

  • Fehler: #WERT! erscheint.

    • Lösung: Überprüfe die Anzahl der Trennzeichen. Wenn nicht genügend Trennzeichen vorhanden sind, kann die Formel nicht korrekt arbeiten.
  • Fehler: Falscher Text wird ausgegeben.

    • Lösung: Stelle sicher, dass die Positionen in der Formel korrekt angegeben sind und dass die Trennzeichen richtig gezählt werden.

Alternative Methoden

  1. Verwendung von WECHSELN und TEIL: Du kannst auch die Funktion WECHSELN nutzen, um die 3. und 6. Trennzeichen durch andere Trennzeichen zu ersetzen und dann den Text zwischen diesen zu extrahieren. Zum Beispiel:
=GLÄTTEN(TEIL(WECHSELN(WECHSELN(A1;"/";WIEDERHOLEN(" ";1000);6);"/";WIEDERHOLEN(" ";1000);3);1000;1000))
  1. VBA-Methode: Wenn Du VBA nutzen möchtest, kannst Du den Split Befehl verwenden:
Dim parts() As String
parts = Split(Cells(1, 1).Value, "/")
MsgBox parts(2) & "/" & parts(3) & "/" & parts(4) ' Gibt Jahr_2016/20Dez/KW51 zurück

Praktische Beispiele

  • Beispiel 1: Du möchtest den Text zwischen zwei Kommas auslesen. Wenn in Zelle B1 steht:
Apfel,Orange,Banane,Kirsche

Verwende die Formel:

=TEIL(B1;FINDEN(",";B1;FINDEN(",";B1)+1)+1;FINDEN(",";B1;FINDEN(",";B1;FINDEN(",";B1)+1)+1)-FINDEN(",";B1;FINDEN(",";B1)+1)-1)
  • Beispiel 2: Um den Text in Klammern auszulesen, kannst Du die Formel wie folgt anpassen:
=TEIL(A1;FINDEN("(" ; A1) + 1; FINDEN(")" ; A1) - FINDEN("(" ; A1) - 1)

Tipps für Profis

  • Nutze Namen für Bereiche, um Deine Formeln lesbarer zu machen.
  • Experimentiere mit Array-Formeln, um mehrere Werte gleichzeitig auszulesen.
  • Berücksichtige die Verwendung von VBA für komplexere Aufgaben, insbesondere wenn Du mit mehreren Trennzeichen arbeiten möchtest (z.B. Split mit mehreren Delimitern).

FAQ: Häufige Fragen

1. Wie kann ich den Text zwischen zwei gleichen Zeichen auslesen?
Du kannst die gleiche Formel wie oben verwenden, solange Du die Positionen der Zeichen entsprechend anpasst.

2. Ist es möglich, mehrere Trennzeichen in einer Formel zu verwenden?
Ja, Du kannst die WECHSELN-Funktion verwenden, um mehrere Trennzeichen in einer Zelle zu ersetzen, bevor Du den Text extrahierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige