Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1600to1604
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

Nachnamen bearbeiten

Nachnamen bearbeiten
15.01.2018 18:07:25
Martin
Hallo zusammen,
ich habe eine Spalte mit Nachnamen, die ich trunkieren möchte. Viele, aber nicht alle Namen enden auf -is, -cze oder -ate, was ich abschneiden möchte.
Das habe ich zum Teil mit der Formel
=LINKS(C2;FINDEN("is";C2)-1)
erreicht, aber eben nur bei Namen auf -is, die anderen bleiben davon unberührt, so dass dort anstelle des nicht-trunkierten Namens nur #WERT! erscheint. Ich bräuchte also eine verschachtelte Formel, die diese Endungen prüft, im Wahrheitsfall den trunkierten, im Fehlerfalle den normalen nicht-trunkierten Namen ausgibt.
Vielen Dank für Hilfestellungen,
Martin

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit WECHSELN() ...
15.01.2018 18:34:11
...
Hallo Martin,
... so: =LINKS(C2;LÄNGE(C2)-3)&WECHSELN(WECHSELN(WECHSELN(RECHTS(C2;3);"is";"");"ate";"");"cze";"")
Gruß Werner
.. , - ...
AW: mit WECHSELN() ...
15.01.2018 20:21:34
Martin
Vielen Dank, Werner. Hat geklappt :)
aus Mist wird Mt
15.01.2018 20:30:15
WF
.
Pflichte bei, Walter!
16.01.2018 02:06:25
Luc:-?
Da es hier ums Trunkieren geht, sollte keine WECHSELN-Fml benutzt wdn, Werner,
sondern tatsächlich eine kürzende, auch wenn sie länger ist:
=WENN(ODER(RECHTS(C4;3)={"ate"."cze"});LINKS(C4;LÄNGE(C4)-3);WENN(RECHTS(C4;2)="is";LINKS(C4; LÄNGE(C4)-2);C4))
Aber sicher könnt ihr diese Fml noch sinnvoll kürzen… ;-)
Morrn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: warum WECHSELN() nicht benutzen? ...
16.01.2018 17:58:19
...
Hallo Luc,
... auch wenn Martin mit meiner Formel schon zufrieden war bevor der Einwand von WF kam, könnte man für die Aufgabenstellung trotzdem mit WECHSELN() arbeiten.
Dann z.B. so: =WENN(RECHTS(C2;2)="is";LINKS(C2;LÄNGE(C2)-2);LINKS(C2;LÄNGE(C2)-3)&WECHSELN(WECHSELN(RECHTS(C2;3);"ate";"");"cze";"")) auch wenn sie länger als andere Lösungsformeln ist.
Gruß Werner
.. , - ...
Natürlich kannst Du das, müsstest aber ggf ...
16.01.2018 20:17:27
Luc:-?
…sowohl dem Urtext als auch den Endungen ein Leerzeichen hinzufügen, damit auch nur das Ende entfernt wird (anderenfalls müsste man das letzte Auftreten - als Endung - ermitteln). Allerdings halte ich dieses mehrfache WECHSELN für außerordentlich unschön, zumal man mit anderen Fmln platzsparend auch MatrixKonstanten verwenden könnte.
Dass dem Fragesteller Deine ursprgl Lösung ausreichte, hat nichts zu bedeuten. Das kann sich sofort ändern, wenn er die zB auf einen MA-Namen wie Haatemann anwendet… ;-)
Im Übrigen halte ich das Ganze ohnehin für eine Schnapsidee, die ich mir als MA verbitten würde. Dem reduzierten Namen sollte wenigstens noch ein Zeichen folgen, das aussagt, worauf der Name eigentlich endet!
Gruß, Luc :-?
PS: Nachdem sich nun Fennek in meinem Thread gemeldet hat, werde ich bald inhaltlich fortsetzen → Lösungsschritte!
Anzeige
AW: möglicherweise hast Du nur übersehen ...
17.01.2018 11:04:54
...
Hallo Luc,
... dass meine Formel nur am Ende der Namen die Suchzeichenkette kürzt.
Gruß Werner
.. , - ...
Von der neuen hatte ich so etwas erwartet, ...
17.01.2018 12:18:36
Luc:-?
…Werner, ;-)
ich schrieb aber über die ursprgl Lösung und ihre Bedeutung für den Fragesteller. Die neue Lösung hat er wahrscheinlich gar nicht mehr mitbekommen…
Luc :-?
AW: dies war auch schon in meiner 1. Formel so owT
17.01.2018 15:59:36
...
Gruß Werner
.. , - ...
Warum wurde dann Mist zu Mt? Ich hatte's ...
17.01.2018 18:57:32
Luc:-?
…ebenfalls getestet, Werner! ;-]
Luc :-?
AW: ganz einfach ...
17.01.2018 19:01:25
...
Hallo Luc,
... weil ich in meiner ersten Formel noch generell die letzten drei Zeichen gewechselt hatte und von "...ist " bleibt dann eben "t" übrig, wenn man "is" gegen "" wechselt.
Gruß Werner
.. , - ...
Anzeige
Ach so, na dann... ;-) owT
17.01.2018 23:18:28
Luc:-?
:-?
AW: Nachnamen bearbeiten
16.01.2018 09:32:00
Daniel
Hi
eine Möglichkeit für mehrere Endungen, auch mit unterschiedlicher Länge:

=LINKS(C2;LÄNGE(C2)-AGGREGAT(14;6;LÄNGE({"is";"ate";"cze"})*ZÄHLENWENN(C2;"*"&{"is";"ate";"cze"});1)) 
Gruß Daniel
einfacher als Arrayformel
16.01.2018 10:38:01
WF
Hi,
{=LINKS(C4;LÄNGE(C4)-MAX((RECHTS(C4;ZEILE(1:9))={"is"."cze"."ate"})*ZEILE(1:9)))}
9 Endbuchstaben sollten langen.
WF
AW: Nachnamen bearbeiten
17.01.2018 18:06:29
Martin
Hallo zusammen,
vielen Dank für das umfangreiche Feedback. Ich hatte noch keine Möglichkeit, alle Lösungsansätze durchzutesten, denn Werner's Lösung direkt zu Anfang hat eigentlich erfolgreich funktioniert. Ich betone dies, weil das initiale Problem komplexer geworden ist...
Ich indexiere ein Kirchenbuch aus dem 18. Jahrhundert, wo die Nachnamen mit Endungen versehen wurden. Der Index soll nur die Grundformen der Namen enthalten, deshalb meine Anfrage hier für eine Formel.
Bei den weiblichen Endungen auf -in, -cze und der männlichen Endung -is müssten diese Buchstaben komplett entfallen. Das leistet die Formel problemlos.
Wenn jedoch ein Nachname auf -ate endet, muss nur das 'e' trunkiert werden. Vielleicht ist trunkieren hier das falsche Wort, denn -ate ist die weibliche Endung eines Nachnamens auf -at, also müsste, um es korrekt auszudrücken, das -ate in ein -at umgewandelt werden, was einer Trunkierung um das 'e' entspricht, aber in Excel formelmäßig sicher anders aussähe.
Danke nochmals für alle Lösungen, ich werde sie der Reihe nach testen, insbesondere an 'kritischen' Namen.
Viele Grüße,
Martin
Anzeige
AW: dann nur eine kleine Formeländerung ...
17.01.2018 18:33:06
...
Hallo Martin,
... in meiner zweiten Formel. Dann so:
=WENN(RECHTS(C2;2)="is";LINKS(C2;LÄNGE(C2)-2);LINKS(C2;LÄNGE(C2)-3)&WECHSELN(WECHSELN(RECHTS(C2;3); "ate";"at");"cze";""))
Gruß Werner
.. , - ...
AW: Nachnamen bearbeiten
17.01.2018 21:53:38
Daniel
=LINKS(C2;LÄNGE(C2)-AGGREGAT(14;6;LÄNGE({"is";"e";"cze"})*ZÄHLENWENN(C2;"*"&{"is";"ate";"cze"});1))
oder konsequent im ersten Array auf die Anzahl der zu entfernenden Zeichen umstellen, wenn diese anders sein kann als die Länge der dazugehörenden Endungen.
=LINKS(C2;LÄNGE(C2)-AGGREGAT(14;6;{2;1;3}*ZÄHLENWENN(C2;"*"&{"is";"ate";"cze"});1))
AW: geht flexibler, kürzer und auch ohne {} ...
18.01.2018 16:33:44
...
Hallo WF,
... und zwar teils basierend auf der Idee von Daniel:
=LINKS(A1;LÄNGE(A1)-MAX(INDEX(LÄNGE(E$2:E$19)*ZÄHLENWENN(A1;"*"&E$2:E$19);)))
Oder diese als klassische Matrixformel zwar noch kürzer aber nicht schneller; so:
{=LINKS(A1;LÄNGE(A1)-MAX(LÄNGE(E$2:E$19)*ZÄHLENWENN(A1;"*"&E$2:E$19)))}
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige