Seite 1 von 1

String beim letzten Vorkommen eines Zeichens abschneiden

Verfasst: Mi 26. Jul 2017, 15:57
von KriegerA
Hallo miteinander,

ich habe einen Eintrag, der im Normalfall folgendes Format hat: 0173-002
Der Part ab dem Bindestrich ist aber nicht notwendig. Ich bräuchte in diesem Beispiel nur den Wert: 0173

Das habe ich via LINKS-Formel gemacht:

Code: Alles auswählen

=LINKS(Y2;SUCHEN("-";Y2)-1)
Das klappt einwandfrei.

Aber es wäre ja alles so einfach, wenn nicht Einträge dabei wären, die mir diese simple Lösung kaputt machen. Beispiel: UK-SB-01-001
Hier bräuchte ich alles bis vor den letzten Bindestrich (UK-SB-01).

Da nicht immer klar ist, wie viele Bindestriche im String sind, bräuchte ich eine Formel, die mir erlaubt, alles bis zum letzten Vorkommen eines Bindestriches mitnimmt. Gibt es sowas in Calc?

Re: String beim letzten Vorkommen eines Zeichens abschneiden

Verfasst: Mi 26. Jul 2017, 17:36
von HeritzP
Hallo,

teste diese Formel.

Code: Alles auswählen

=TEIL(Y2;1;SUCHEN("@";WECHSELN(Y2;"-";"@";LÄNGE(Y2)-LÄNGE(WECHSELN(Y2;"-";"")));1) -1)

Gruß HeritzP

Re: String beim letzten Vorkommen eines Zeichens abschneiden

Verfasst: Mi 26. Jul 2017, 22:31
von miesepeter
SUCHEN & ERSETZEN (reguläre Ausdrücke aktiviert):

Code: Alles auswählen

-\w*$

Re: String beim letzten Vorkommen eines Zeichens abschneiden

Verfasst: So 25. Mär 2018, 12:22
von Lupo
B1: {=LINKS(A1;LÄNGE(A1)-SUCHEN("-";VERBINDEN(;;TEIL(A1;99-ZEILE($1:$98);1))))} mit Nr. 5

Das Fettgeschriebene fungiert als eine hiermit selbst erstellte Funktion StrReverse. Interessant: Keine Fehlerbehandlung nötig bei var. Länge.

Re: String beim letzten Vorkommen eines Zeichens abschneiden

Verfasst: So 25. Mär 2018, 12:39
von mikele
Hallo,
mit in Formeln aktivierten regulären Ausdrücken funktioniert auch:

Code: Alles auswählen

=LINKS(Y2;SUCHEN("-[^-]*$";Y2)-1)

Re: String beim letzten Vorkommen eines Zeichens abschneiden

Verfasst: So 25. Mär 2018, 13:05
von Lupo
Das ist schick - ein echter Vorteil ggü Excel. Jedoch dann nicht cross-kompatibel.