Abschneiden von Zeichen in Zelle

Hallo,

ich habe in einer Spalte folgende Werte

/12345/QWERT/ASDF.xls
/1234/QWERT/ASDG.xls
/12345/QWE/ASDFGHJ.xls

Weiß jemand eine Möglichkeit wie ich nur die letzten Zeichen von rechts nach links bis zum ersten „/“ separieren kann.
Entweder alles davor löschen oder aber diesen String in eine andere Spalte kopieren.

Gruß

Hallo,

ich habe in einer Spalte folgende Werte

/12345/QWERT/ASDF.xls
/1234/QWERT/ASDG.xls
/12345/QWE/ASDFGHJ.xls

Weiß jemand eine Möglichkeit wie ich nur die letzten Zeichen
von rechts nach links bis zum ersten „/“ separieren kann.
Entweder alles davor löschen oder aber diesen String in eine
andere Spalte kopieren.

so gehts:

RECHTS(A3;LÄNGE(A3)-FINDEN("/";A3;FINDEN("/";A3;FINDEN("/";A3)+1)+1))

HTH, Jerry

Danke, aber wie mache ich es bei dem Fall hier:

/1/123/1234/QWERT/ASDG.xls

Kann ich nicht irgendwie von rechts kommend nach links zählen bis zum 1ten „/“?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Mahlzeit,

Danke, aber wie mache ich es bei dem Fall hier:

/1/123/1234/QWERT/ASDG.xls

Kann ich nicht irgendwie von rechts kommend nach links zählen
bis zum 1ten „/“?

Nein. Leider nicht, zumindest wäre mir das nicht bekannt. Man muss immer von Links kommend alle Sonderzeichen zurchzählen und die Restlänge der Zeichen bestimmen und so die Zeichen, die angezeigt werden sollen, herausrechnen.

Wenn jetzt diese Sonderzeichen nicht immer gleich in der Zahl sind, kann man so vorgehen:

Bsp:
Spalte A enthält den gesamten Text, in der ersten Zeile A1 zb „/1/123/1234/QWERT/ASDG.xls“

Formel

in B1: =WENN(ISTFEHLER(FINDEN("/";$A$1;1));"";FINDEN("/";$A$1;1)) 
in C1: =WENN(ISTFEHLER(FINDEN("/";$A$1;B1+1));"";FINDEN("/";$A$1;B1+1))
in D1: =WENN(ISTFEHLER(FINDEN("/";$A$1;C1+1));"";FINDEN("/";$A$1;C1+1))
in E1: =WENN(ISTFEHLER(FINDEN("/";$A$1;D1+1));"";FINDEN("/";$A$1;D1+1))
in F1: =WENN(ISTFEHLER(FINDEN("/";$A$1;E1+1));"";FINDEN("/";$A$1;E1+1))
in G1: =WENN(ISTFEHLER(FINDEN("/";$A$1;F1+1));"";FINDEN("/";$A$1;F1+1))

(jeweils mind. soviele Formeln wie max. Anzahl von „/“ in einem String vorkommend)
diese Formeln (sind problemlos verschiebar) zeigen jeweils die Stelle des nächsten „/“ an und die nachfolgende Formel nimmt jeweils das Ergebnis der vorgehenden Formel als erstes Zeichen im Suchtext an, sodass nacheinander alle „/“ gefunden werden.
Wenn keine „/“ mehr in einem String vorhanden sind, wird durch ISTFEHLER eine leere Zelle als Ergebnis ausgegeben, in diesem Bsp in G1. Das ist für unsere letzte Formel wichtig:

in H1: =RECHTS(A1;LÄNGE(A1)-MAX(B1:G1)) 

die Istfehler in den anderen Formeln sind nötig, weil sonst die Formel MAX ins Leere greift und einen Fehler produziert.

So funktioniert es, ist zwar etwas mühsam, aber lässt sich trotzdem automatisieren. Wer das einfacher hinbekommt, bitte vortreten, würd mich auch interessieren :smile:

Freundliche Grüße

Jerry

Hallo Carsten,

folgende kleine benutzerdefinierte Funktion leistet dies:

Function RechtsAbschneiden(Text As String, Zeichen As String)
' Gibt den Text rechts von Zeichen als Wert aus
On Error GoTo Zeichennichtgefunden
 RechtsAbschneiden = ""
 Do
 RechtsAbschneiden = Right(Text, 1) & RechtsAbschneiden
 Text = Left(Text, Len(Text) - 1)
 Loop Until Right(Text, 1) = Zeichen
 Exit Function
Zeichennichtgefunden:
 RechtsAbschneiden = "Zeichen nicht gefunden"
End Function

Code unter VBA in ein Modul der Datei kopieren.

in den Zellen folgende Formel eintragen
=RechtAbschneiden(A2;"/")

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

RECHTS(A3;LÄNGE(A3)-FINDEN("/";A3;FINDEN("/";A3;FINDEN("/";A3)+1)+1))
HTH, Jerry

Danke, aber wie mache ich es bei dem Fall hier:
/1/123/1234/QWERT/ASDG.xls
Kann ich nicht irgendwie von rechts kommend nach links zählen
bis zum 1ten „/“?

Hi Carsten,
in VBA geht das easy mit InstrRev. Ansonsten, die Formel ist ja Klasse und in Excel direkt so ne Schleife zu basteln geht m.W. nicht.
So kannste es aber lösen:
Die dir gelieferte Formel ist ja auf *glaub* 3 „“ ausgelegt um diese abzuschneiden. Schreib sie in A1, in B1 dieses Formel so anpassen dass sie 4 „“ abschneidet, in C1 so anpassen dass sie 5 „“ abscneidet usw.
Das kannst du ja mit
=WENN(ISTFEHLER(E1);WENN(ISTFEHLER(D1);WENN(ISTFEHLER(C1);…usw…;C1);D1);E1)
auswerten.
Gruß
Reinhard

So funktioniert es, ist zwar etwas mühsam, aber lässt sich
trotzdem automatisieren. Wer das einfacher hinbekommt, bitte
vortreten, würd mich auch interessieren :smile:

hallo jerry,
vortreten kann ich nicht, kriege es auch nur so wie du hin mit Hilfszellen.
Aber es geht einfacher.
Auf so was kommen natürlich nur die Matrix-Götter von http://www.excelformeln.de:
=VERGLEICH("";LINKS(RECHTS(A1;SPALTE(1:1));1);0)
(eingeben mit Strg-Shift-Enter)
Gruß
Reinhard

Hallo Franz,
nur zur Info, geht ab XL2000 (evtl Xl97) einfachermit Insstrrev:

Function RechtsAbschneiden(Text As String, Zeichen As String) as string
On Error GoTo Zeichennichtgefunden
RechtsAbschneiden=instrrev(Text,Zeichen)
Exit function
Zeichennichtgefunden:
 RechtsAbschneiden = "Zeichen nicht gefunden"
End Function



Function RechtsAbschneiden(Text As String, Zeichen


> As String)  
> ' Gibt den Text rechts von Zeichen als Wert aus  
> On Error GoTo Zeichennichtgefunden  
> RechtsAbschneiden = ""  
> Do  
> RechtsAbschneiden = Right(Text, 1) & RechtsAbschneiden  
> Text = Left(Text, Len(Text) - 1)  
> Loop Until Right(Text, 1) = Zeichen  
> Exit Function  
> Zeichennichtgefunden:  
> RechtsAbschneiden = "Zeichen nicht gefunden"  
> End Function

Code unter VBA in ein Modul der Datei
kopieren.

in den Zellen folgende Formel eintragen
=RechtAbschneiden(A2;"/")

Gruß
Franz

Auf so was kommen natürlich nur die Matrix-Götter von
http://www.excelformeln.de:
=VERGLEICH("";LINKS(RECHTS(A1;SPALTE(1:1));1);0)
(eingeben mit Strg-Shift-Enter)

Diese Formel ermittelt die Position des Zeichens von rechts.

Damit das ganze sauber funktioniert und den Text ausgibt muß die Formel so aussehen:

=RECHTS(A1;VERGLEICH("/";LINKS(RECHTS(A1;SPALTE($1:blush:1));1);0)-1)

und mit Strg-Shift-Enter die Eingabe als Matrixformel abgeschlossen werden. Dann kann die Formel auch problemlos kopiert werden.

Gruß
Franz

Hallo Carsten, alter Schwede …

probier´s doch mal mit der eingebauten Funktion „Text in Spalten“.

Also:

1. Spalte markieren, in der der Text steht
2. Menuepunkt "DATEN - TEXT IN SPALTEN" anklicken
3. Dort den Radiobutton "Getrennt" anklicken (weiter)
4. Bei "Trennzeichen" den Haken bei "Andere" setzen und ein "/" eintragen 

und dann auf „Fertigstellen“ klicken …

Das war´s dann.

Viel Spaß noch im neuen Job, wir machen hier einen auf „Erich Honey H.“ (der letzte macht´s Licht aus …)

Andreas Scholz

Kann ich nicht irgendwie von rechts kommend nach links zählen
bis zum 1ten „/“?