Bedingtes Ersetzen von Zeichen in Tabellen

Hallo Freunde

Ich bin wieder mal aufgelaufen weil ich einfach keine Formal hinkriege, welche folgendes macht

Kolonne A Kolonne B
Ausgangswert gewünschtes Resultat

BRSET BRSET unverändert
ZBL-11 ZBL11 Bindestrich weg
ZBL-11-G ZBL11-G Bindestrich weg, aber -G muss bleiben
ZBL-11-T ZBL11-T Bindestrich weg, aber -T muss bleiben
ZEYEBRT ZEYEBRT unverändert
ZEYEBRT-T ZEYEBRT-T unverändert

Ich habe die verschiedensten Varianten von Search/ Find /Replace in Excel (engl.) versucht, aber ich kriege es nicht hin, das alles in eine Formel für die Kolonne B zu packen. Habe 2016 also auch Iserror etc. ist möglich

herzlichen Dank für jede Hilfe!

Gruss aus Prag

Heinz

hi,

also das 4. Zeichen löschen, wenn es ein Bindestrich ist?
oder gibt es noch Variationen die davon nicht abgedeckt werden?

grüße
lipi

Der erste Bindestrich muss nicht an vierter Stelle stehen, sorry daruaf hatte ich nicht geachtet, es gibt verschiedene Kombinationen:
ZEYSH-50
ZEYSH-50-G
ZEYSH-50-T
ZLPSSL-1061
ZLPSSL-1061-T
ZMASC-BR
ZMASC-BR-T
ZLPSSL-1053
ZLPSSL-1053-T

Grundsätzlich soll der 1. raus, aber -G oder -T muss immer bleiben. Ich hoffe so ist es korrekt formuliert.

hi,

=WENN(LÄNGE(A1)-LÄNGE(WECHSELN(A1;"-";""))=2;WECHSELN(A1;"-";"";1);WENN(ODER(RECHTS(A1;2)<>"-T";RECHTS(A1;2)<>"-G");WECHSELN(A1;"-";"");A1))

prüfe aber ob du noch weitere Vatianten übersehen hast.

grüße
lipi

Ganz herzlichen Dank, habe es transponiert:

=IF(LEN(A2)-LEN(SUBSTITUE(A2;"-";""))=2;SUBSTITUE(A2;"-";"";1);IF(OR(RIGHT(A2;2)<>"-T";RIGHT(A2;2)<>"-G");SUBSTITUE(A2;"-";"");A2))

kommt aber auf alle Kombinationen #NAME

… und liebe Grüsse

Heinz

Hallo,

Du hast einen Tippfehler in der englischen Formel: richtig wäre SUBSTITUTE statt SUBSTITUE.

PS: hier beim Excel-Translator http://de.excel-translator.de/translator/ kannst Du Excel-Formeln von einer Sprache in die andere übersetzen lassen inkl. diverser Optionen, wie z.B. Trennzeichen.

Gruß

Vielen Dank, den Translator habe ich, das war ein Tipfehler von mir.

Ok, habe das korrigiert, funktioniert jetzt bei fast allen:

=IF(LEN(A2)-LEN(SUBSTITUTE(A2;"-";""))=2;SUBSTITUTE(A2;"-";"";1);IF(OR(RIGHT(A2;2)<>"-T";RIGHT(A2;2)<>"-G");SUBSTITUTE(A2;"-";"");A2))

komischerweise aber bei ZEYSHDCO-T funktioniert das nicht es kommt ZEYSHDCOT. Sorry ich habe dieses Beipiel explizt nicht aufgeführt, aber ich hatte ja geschrieben :„Grundsätzlich soll der 1. raus, aber -G oder -T muss immer bleiben…“

Hab’s glaube ich gelöst, danke für die Inspiration:

=IF(OR(RIGHT(A2;2)="-T";RIGHT(A2;2)="-G");IF(LEN(A2)-LEN(SUBSTITUTE(A2;"-";""))<=1;A2;SUBSTITUTE(A2;"-";"";1));SUBSTITUTE(A2;"-";"";1))

Gruss aus dem sonnigen Prag!

hi,

hast recht.
Es hätte UND() statt ODER() heißen müssen. (oder und 2 mal ungleich ist irgendwie sinnfrei, schieben wirs mal auf den Glühwein.)
Hatte ein derartiges Beispiel beim Test übersehen.

grüße
lipi

Hauptsache es läuft und danke an alle!