• 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.

tekst scheiden

Status
Niet open voor verdere reacties.

ronsom

Gebruiker
Lid geworden
6 mrt 2012
Berichten
232
goedemorgen,

met welke formule kan ik de voornaam van de achternaam scheiden.
Dus JanJansen naar Jan Jansen of PietKeizer naar Piet Keizer
 
Niet; als alle namen aan elkaar geplakt zijn zonder spatie, kun je het beste een functie maken die de inhoud van de cel controleert op hoofdletters, en op basis van een hoofdletter spaties toevoegt. Hoe dat gaat uitpakken met tussenvoegsels is dan weer een heel ander verhaal natuurlijk.
 
Laatst bewerkt:
Kan heel simpel met PowerQuery
 
Formule
Met in A2 de naam

Voor in B2:
Code:
=LINKS(A2;MIN(ALS(ISFOUT(VIND.ALLES(TEKEN(RIJ(INDIRECT("65:90")));DEEL(A2;2;30)));"";VIND.ALLES(TEKEN(RIJ(INDIRECT("65:90")));DEEL(A2;2;30)))))

Voor in C2:
Code:
=RECHTS(A2;LENGTE(A2)-LENGTE(B2))
 
Laatst bewerkt:
Indirect in de eerste formule niet nodig

Code:
=LINKS(A2;MIN(ALS(ISFOUT(VIND.ALLES(TEKEN(RIJ($65:$90));DEEL(A2;2;30)));"";VIND.ALLES(TEKEN(RIJ($65:$90));DEEL(A2;2;30)))))

Wel matrix formule trouwens (contr. shift. enter afsluiten)
 
Volgens mij is dat niet de bedoeling. Het moet toch in één cel?
 
Code:
=LINKS(A1;MIN(ALS(ISFOUT(VIND.ALLES(TEKEN(RIJ($65:$90));DEEL(A1;2;30)));"";VIND.ALLES(TEKEN(RIJ($65:$90));DEEL(A1;2;30)))))&" "&RECHTS(A1;LENGTE(A1)-LENGTE(LINKS(A1;MIN(ALS(ISFOUT(VIND.ALLES(TEKEN(RIJ($65:$90));DEEL(A1;2;30)));"";VIND.ALLES(TEKEN(RIJ($65:$90));DEEL(A1;2;30)))))))

Alstu
 
Code:
Function Hoofdlettersplit(ByVal S As String) As String
  Dim X As Long
  For X = Len(S) To 2 Step -1
    If Mid(S, X, 1) Like "[A-Z]" Then S = Application.Replace(S, X, 0, " ")
  Next
  Hoofdlettersplit = S
End Function

Of zet deze in een module en gebruik die functie
 
Nou dat zijn een hoop oplossingen, de laatste is wel erg handig.
Ik ga ermee aan de slag. Hartelijke dank JVeer
 
Beiden zonder elke letter bij langs te gaan.
Een function van @snb.
Code:
Function F_snb(c00)
Dim sn() As Byte
  sn = Mid(c00, 2)
  c01 = Chr(Application.Small(sn, UBound(sn) \ 2 + 2))
  F_snb = Replace(c00, c01, " " & c01)
End Function

En een van mij.
Code:
Function hsv(s0) As String
With CreateObject("VBscript.Regexp")
  .Global = True
  .Pattern = "(?=[A-ZÄÖÜ])"
  hsv = Trim(.Replace(Replace(s0, " ", ""), " "))
End With
End Function
 
En geen enkele functie of formule lost het probleem “PietdeVisser”. Op :).
 
Inderdaad haha, dat is vrijwel niet te doen
 
Ik heb daar geen probleem mee. ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan