• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Laatste woord in cel verwijderen

Status
Niet open voor verdere reacties.

janpons

Nieuwe gebruiker
Lid geworden
3 aug 2014
Berichten
2
Ik heb hier en daar wat draadjes gevonden maar het antwoord op mijn specifieke vraag niet gevonden en het lukt me niet om het laatste woord uit een cel te verwijderen.

Gaat bijvoorbeeld om cellen met de volgende inhoud:
Pluymaekers Margriet
Van Den Bergh Elke
De Clippel Nina
Sap Liesbet
Kempenaers Marie

Soms bestaat de familienaam uit één woord en soms uit 3.
Ik wens de familienamen in de cel behouden en het laatste woord (de voornaam) moet verwijderd worden.

Deze formule werkt niet goed:
=LINKS(A1;LENGTE(A1)-VIND.ALLES("*";SUBSTITUEREN(A1;" ";"*";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;"

Waar zit de fout of welke formule (voor de Nederlandse versie) gebruikt ik best?

Bedankt voor de hulp,
Jan
 
Probeer deze maar eens.

Als in A1 de naam staat dan in B1 de formule plaatsen.
Code:
=DEEL(A1;1;LENGTE(A1)-LENGTE(RECHTS(A1;LENGTE(A1)-VIND.ALLES("#";SUBSTITUEREN(A1;" ";"#";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;" ";""))))))-1)
 
Code:
Sub tst()
    sn = Cells(1).CurrentRegion
    For i = 1 To UBound(sn)
        sn(i, 1) = Left(sn(i, 1), InStrRev(sn(i, 1), " ", -1))
    Next
    Cells(1).Resize(UBound(sn)) = sn
End Sub
 
Ook mogelijk:
Code:
=LINKS(A1;LENGTE(A1)-LENGTE(SPATIES.WISSEN(RECHTS(SUBSTITUEREN(A1;" ";HERHALING(" ";40));40))))
 
Laatst bewerkt:
Mooie oplossing....
MS geeft deze af.. maar ik vraag me af of die waterdicht is familienamen als "van de" etc.... en bij dubbele namen "Achternaam Jan-Willem" en zo?
Heb dit niet getest (voor simpele voor- & achternamen werkt het wel).
http://office.microsoft.com/nl-nl/e...e-wizard-tekst-naar-kolommen-HA010102340.aspx

Ik vond hier de uitleg van de oplossing (past wel bij de naam die dit forum hoog te houden heeft...)
http://annderaedt.blogspot.nl/2011/01/in-excel-een-kolom-met-volledige-naam.html
 
Laatst bewerkt:
@Andre@home,
nee, mijn formule is niet warterdicht voor wat jij bedoelt.
Maar de vragensteller vroeg om het laatste woord weg te halen, welnu: daarvoor zal de formule in de meeste gevallen wel voldoen. Als het erom gaat om complete voornamen weg te halen, dan wordt bv. Marie-Jeanne wel volledig weggehaald, maar als diezelfde voornaam zonder dwarsstreepje genoteerd staat (Marie Jeanne), dan wordt alleen Jeanne weggehaald. Daar zijn allemaal oplossingen voor hoor, maar dat voert mij nu wat te ver. Ikzelf zou een vba-oplossing kiezen.
 
Laatst bewerkt:
@andre@home,
heb even gekeken naar de website "Office Software" waar jij naar verwees, maar met wat daar wordt toegepast blijft het ook maar behelpen vind ik. Dan kun je nog beter "tekst-naar-kolommen" toepassen en daarna de namen corrigeren waarvoor die methode niet voldoet. Heb je geen enkele formule nodig.
 
Ik vond jullie oplossing ook veel beter..... was gewoon benieuwd waar MS mee kwam, een halfbakken oplossing dus.
De kans op een meervoudige naam als "van de " lijkt me toch heel reëel....
Dus met die help van MS kom je alleen in simpele gevallen verder, relatief veel nacorrectie nodig.
 
Mooie formule @zapatr. :thumb:
 
Dank je HSV, maar technisch is bovenstaande formule van mij toch niet zo heel erg fraai.
Een voornaam zal doorgaans niet (veel) meer dan 40 tekens omvatten. Het is dan voldoende en technisch fraaier om in de formule alleen dáár naar te kijken en niet naar de volledige tekst. Mijn formule van hierboven zou dan vervangen moeten worden door:
Code:
=LINKS(A1;LENGTE(A1)-LENGTE(SPATIES.WISSEN(RECHTS(SUBSTITUEREN(RECHTS(A1;40);" ";HERHALING(" ";40));40))))
Daarmee wordt ze langer en nauwelijks korter dan die van jou.
Beter dan die van jou is ze niet hoor.

@janpons, markeer de vraag als opgelost a.u.b.
 
Laatst bewerkt:
Je kunt altijd nog de lengte van A1 nemen.
Code:
=LINKS(A1;LENGTE(A1)-LENGTE(SPATIES.WISSEN(RECHTS(SUBSTITUEREN(A1;" ";HERHALING(" ";LENGTE(A1)));LENGTE(A1))))-1)
 
en als je de sub van Rudi ombouwt naar een function krijg je deze:
Code:
Function VerwijderLaatsteWoord(Tekst As String)
    VerwijderLaatsteWoord = Left(Tekst, InStrRev(Tekst, " "))
End Function
 
Code:
=links(a1;vind.alles("~";substitueren(a1;" ";"~";lengte(a1)-lengte(substitueren(a1;" ";"")))))
 
@snb,
de lengte moet 1 teken minder zijn, anders blijft er nog een spatie staan; dus:
Code:
=LINKS(A1;VIND.ALLES("~";SUBSTITUEREN(A1;" ";"~";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;" ";""))))-1)
Welke oplossing men ook kiest, het probleem OP WELKE PLAATS de tekst in voor- en achternaam gesplitst moet worden (als er meervoudige voornamen zijn, hierboven al geduid), blijft bestaan als daar geen kenmerk voor is. Als bv. een komma het kenmerk zou zijn, zou de splitsing eenvoudig zijn.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan