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

cel met meerdere tekst

Status
Niet open voor verdere reacties.

CoolRunnings

Gebruiker
Lid geworden
11 mrt 2006
Berichten
29
Hoi

ik heb het volgende probleem
ik heb een cel met meerdere tekst gescheiden door een ; ( punt,komma)
zie voorbeeld
Cage; Nicolas als Tom Welles; Gandolfini; James als Eddie Poole; Heald; Anthony als Daniel Longdale

nu wil ik met een formule alleen de 1ste 2 woorden filteren zodat alleen die eerste 2 woorden blijven staan.
in het voorbeeld moet ie met een formule alleen Cage; Nicolas laten zien, en dan zonder de ;
bovendien wil ik de voor en achernaam ook nog omdraaien maar is niet per sé noodzakelijk

mijn vraag is nu, met welke formule kan ik dit bewerkstelligen

ik heb nu de functie Links gebruikt maar aangezien de tekst variabel is, is dat niet voldoende.
 
oke je gaat als volgt te werk:
in dit voorbeeld is D9 de cel met de hele inhoud.

1: je wilt weten hoeveel karakters de hele cel is.
E12=LENGTE(D9)
2: je wilt weten op welke positie de eerste ; zit.(-1 anders heb je de ; erbij dalijk)
D12=VIND.ALLES(";";D9)-1
3: je wilt het aantal karakters tot de eerste ; in ieder geval hebben.
F12=LINKS(D9;D12)
4: vervolgens wil je Cage; weghebben want die hebben we al.dus we doen het totaal aantal karakters-(Cage+;+"spatie")
G12=RECHTS(D9;E12-(D12+2))
5: We gaan op zoek naar de volgende spatie.
=VIND.ALLES(" ";G12) {die zit op positie 8}
6: we pakken Nicolas.
=LINKS(G12;D13)

het kan een beetje verwarrend overkomen, en ja het zijn allemaal losse formules maar met een beetje creativiteit kom je al een heel eind. het is mogelijk om dit allemaal in 1 formule te zetten.

nu snap je in ieder geval een beetje welke richting je op moet.
 
Ik ben ervan uitgegaan dat je voorbeeld verdeeld was over drie cellen, dus dat een cel (bijvoorbeeld A2) is die als waarde heeft:
Cage; Nicolas als Tom Welles

Om de achternaam eruit te halen:
Code:
=LINKS(A2;VIND.SPEC(";";A2)-1)
--> pakt alle tekens, beginnend links, tot aan de positie van de punt-komma min één (anders neem je die mee)

Om de voornaam er uit te halen:
Code:
=DEEL(A2;VIND.SPEC(";";A2)+2;VIND.SPEC(" ";A2;VIND.SPEC(";";A2)+2)-(VIND.SPEC(";";A2)+2))

Om deze formule uit te leggen hak ik 'm in delen:
Code:
VIND.SPEC(";";A2)
geeft de positie van de puntkomma in de tekst

Code:
VIND.SPEC(";";A2)+2
geeft daarmee de beginpositie van het eerste woord ná de puntkomma

Code:
VIND.SPEC(" ";A2;VIND.SPEC(";";A2)+2)
geeft de eerste spatie in A2, waarbij begonnen wordt met zoeken op de tweede positie ná de eerste puntkomma

in zijn geheel:
Code:
=DEEL(A2;VIND.SPEC(";";A2)+2;(...)
- een deel van cel A2
- begingetal is de tweede positie ná de eerste puntkomma
Code:
(...);VIND.SPEC(" ";A2;VIND.SPEC(";";A2)+2)-(VIND.SPEC(";";A2)+2))
- het aantal tekens is de positie van de eerste spatie na de puntkomma, minus de beginpositie van dat woord (dat is de positie van de puntkomma + 2)
 

Bijlagen

cel splitsen

Hoi

bedankt voor je antwoord
mijn voorbeeeld is één cel die uit de deze voledige tekst bestaat

Cage; Nicolas als Tom Welles; Gandolfini; James als Eddie Poole; Heald; Anthony als Daniel Longdale het vette gedeelte staat in één cel

ik wil die cel dus splitsen zodat ik alleen de voor en achternaam van de eerste acteur over houden die in één cel zet ( niet in meerdere cellen want dan moet
ik die daarna weer gaan samenvoegen ). dit veld wordt automatisch gegenereerd uit een movie database
 
Laatst bewerkt:
Dat zou dus betekenen dat je
- uit mijn vorige post de tweede formule pakt (die haalt de voornaam eruit);
- er &" "& tussen zet (een spatie);
- en dan de eerste formule (zonder de =), die haalt de achternaam eruit.

Red je het daarmee?
Groeten, Marcel
 
cel splitsen

Hoi

ik denk dat ik daar een heel eind mee kom. ik ben nooit zo veel
met excel bezig maar dit keer had ik zoiets nodig

bedankt voor je hulp
 
mocht het niet lukken, post dan gerust nog eens in deze thread.

Succes, Marce
 
Wellicht mosterd na de maaltijd maar met onderstaande formule lukt het ook.:p

Code:
=DEEL(A1;VIND.SPEC(" ";A1)+1;VIND.SPEC(" ";A1;VIND.SPEC(";";A1)+2)-VIND.SPEC(" ";A1)) & LINKS(A1;VIND.SPEC(";";A1)-1)

Met vriendelijke groet,


Roncancio
 
aanvulling splitsen

Hoi

tot zover werkt het goed, maar zag dat het formaat van de gegenereerde cel soms afwijkt
dan staat er meteen na de voornaam een ;

hoe kan ik die 2de ; altijd afvangen want in dit geval geeft hij een keer nicolas; Cage en een andere keer nicolas Cage ( dus zonder ; er tussen )

voobeeld 1
Cage; Nicolas als Tom Welles; Gandolfini; James als Eddie Poole; Heald; Anthony als Daniel Longdale

voobeeld 2 (afwijkend op voobeeld 1 )
Cage; Nicolas; Beaver; Jim als Ranger Tony; Cooper; Chris als John Laroche

ik wil dus in beide gevallen altijd voornaam achternaam in de cel hebben zonder ; er tussen

alvast bedankt
 
Zo zou het kunnen.

Code:
=DEEL(A1;VIND.SPEC(" ";A1)+1;MIN(VIND.SPEC(" ";A1;VIND.SPEC(";";A1)+2)-VIND.SPEC(" ";A1);VIND.SPEC(";";A1;VIND.SPEC(";";A1)+2)-VIND.SPEC(" ";A1))-1)&" " &LINKS(A1;VIND.SPEC(";";A1)-1)

Met vriendelijke groet,


Roncancio
 
We doen even alsof de tekst in cel A8 staat:

Code:
=ALS(VIND.SPEC(";";A8;VIND.SPEC(";";A8)+2)<VIND.SPEC(" ";A8;VIND.SPEC(";";A8)+2);DEEL(A8;VIND.SPEC(";";A8)+2;VIND.SPEC(";";A8;VIND.SPEC(";";A8)+2)-(VIND.SPEC(";";A8)+2));DEEL(A8;VIND.SPEC(";";A8)+2;VIND.SPEC(" ";A8;VIND.SPEC(";";A8)+2)-(VIND.SPEC(";";A8)+2)))&" "&LINKS(A8;VIND.SPEC(";";A8)-1)

De ALS-test die uitgevoerd wordt controleert of de twééde puntkomma eerder voorkomt dan de tweede spatie. Zoja, dan bevindt zich een puntkomma na het tweede woord.
Als er maar één puntkomma in de tekst voorkomt zal dit problemen opleveren vrees ik. Mocht dat zo zijn, laat het even weten, kijken we morgen verder.

Succes, Marcel

PS: ik zie nu pas de formule van Roncancio. Die is korter, dat is meestal beter ;-)
 
Laatst bewerkt:
Code:
DEEL(LINKS(A1;VIND.SPEC(" als";A1));VIND.SPEC(";";A1)+2;100)&LINKS(A1;VIND.SPEC(";";A1)-1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan