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

Formule voor ophalen deel gegevens

Status
Niet open voor verdere reacties.

Stone52

Gebruiker
Lid geworden
11 dec 2004
Berichten
299
Hallo,

Ik experimenteer al een tijdje met onderstaande uitdaging maar kom er niet uit.

In een cel heb ik een string staan waarbij de relevante stukken binnen de string binnen
de cel komma-gescheiden zijn (de lengte van de string tussen de kommas is niet gelijk).

Ik zoek een mogelijkheid om met een formule steeds de waarde na de eerste
komma en vóór de 2e komma op te halen (zonder voorloop-spatie).

voorbeeld:
cel A1 = tekst1, tekstaaaaaa2, tekstbb3, tekstccc4 moet resulteren in: =tekstaaaaaa2
cel A2 = tekstaaa5, , tekstbb6, tekstcccccccccc7 moet resulteren in: ="x" ("niet gevonden")
cel A3 = teksta8, tekstb9,, tekstc10 moet resulteren in: =teskstb9

De sterke voorkeur ligt bij het gebruik van een formule.
Ik zou VBA alleen willen gebruiken als dit echt niet anders kan.

Wie kan mij hiermee op weg helpen.
 
Als je eens een standaard mogelijkheid van excel gebruikt:
'Tekst naar kolommen' en dan gescheiden door komma's.
In kolom B krijg je dan het gewenste resultaat.
 
HalloStone52

Kijk eens bij de functie vind.spec() in combinatie met de functie deel()

Kees
 
Code:
=ALS(DEEL(A1;VIND.SPEC(",";A1;1)+2;VIND.SPEC(",";A1;VIND.SPEC(",";A1;1)+1)-VIND.SPEC(",";A1;1)-2)="";"X";DEEL(A1;VIND.SPEC(",";A1;1)+2;VIND.SPEC(",";A1;VIND.SPEC(",";A1;1)+1)-VIND.SPEC(",";A1;1)-2))

Joske
 
Willem, Kees en Joske

Dank voor jullie reactie.

de formule werkt al redelijk. In dit (grote) worksheet blijkt ook de
situatie ,, (dus zonder spatie ertussen) voor te komen: dit geeft een fout ("#waarde").

Ook als er spatie(s) in de string tussen de kommas staan geeft dit een fout.

Is er een manier om dat te voorkomen ?
 
Laatst bewerkt:
Ik heb ook nog wat in elkaar gedraaid, kijk eens of dit voldoet.

Kees
 

Bijlagen

  • proef.xlsx
    28,8 KB · Weergaven: 37
Hallo Kees,

zou je een toelichting bij de gebruikte formule kunnen geven ?

Mvg,
 
Hallo Stone 52

Ik heb de formule deel() en vind.spec() gecombineerd.
Kijk eens in de bijlage of je mijn werkwijze kunt volgen.

Kees
 

Bijlagen

  • proef1.xlsx
    30,3 KB · Weergaven: 32
Hallo Kees,

dank je voor de snelle reactie en de uitleg !! helemaal duidelijk.

mvg,
 
Misschien voldoet dit nog beter. Kijk eens in b2, b3,

Kees
 

Bijlagen

  • proef1.xlsx
    37 KB · Weergaven: 34
Hallo,

Toch nog een klein foutje gevonden bij mijn uitwerking. Het blijkt dat, als er
2 velden aanwezig zijn (niet afgesloten met een komma) dan wordt een fout
egeven (#Waarde).

cel A1 = tekst1, tekstaaaaaa2, tekstbb3, tekstccc4 moet resulteren in: =tekstaaaaaa2
cel A2 = tekstaaa5, , tekstbb6, tekstcccccccccc7 moet resulteren in: ="x" ("niet gevonden")
cel A3 = teksta8, tekstb9,, tekstc10 moet resulteren in: =teskstb9
cel A4 = tekst10, tekst11 moet resulteren in: =tekst11 geeft echter #waarde

Hoe kan ik dit voorkomen via de formule?
 
Laatst bewerkt:
Code:
=ALS.FOUT(ALS(LINKS(LINKS(DEEL(A1;VIND.SPEC(",";A1)+2;99);VIND.SPEC(",";A1&",";2)-1);1)=",";"x";LINKS(DEEL(A1;VIND.SPEC(",";A1)+2;99);VIND.SPEC(",";A1&",";2)-1));"")
 
Kees,


de formule geeft nog een probleem: mogelijk heeft het iest te maken met Excel 2002 (mijn versie) en 2010.
De formule wordt vertaald naar: =_xlfn.IFERROR(ALS(VIND.SPEC(",";A2;(VIND.SPEC(",";A2;1))+1)-1=VIND.SPEC(",";A2;1);"x";DEEL(A2;VIND.SPEC(",";A2;1)+1;VIND.SPEC(",";A2;(VIND.SPEC(",";A2;1))+1)-VIND.SPEC(",";A2;1)-1));DEEL(A2;VIND.SPEC(",";A2;1)+1;100))

ik vermoed dat de excel-functie het probleem is.
Als alternatief heb ik ge-experimenteerd met IsFout, maar dat lijkt niet de oplossing.

Mag ik nog een keer een suggestie van jou ?
 
Ik werk met Excel 2007, nederlandse versie, hoe de vertaalslag verloopt naar 2002 of 2010 weet ik niet.
Overigens, het getal 100 aan het eind van de formule geeft aan dat de laatste 100 karakters weergegeven worden in geval van maar 1 komma in A1, A2, enz.
 
Met de toevoegingen van Kees en Koster1984 lukt het helaas nog niet.
In de bijlage heb ik mijn "vertaling" naar Excel 2002 geplaatst met -in tekst- de formule E2010 en de formule E2002.

Graag nog een suggestie.
 

Bijlagen

  • Proef1C.xlsx
    10,7 KB · Weergaven: 29
Laatst bewerkt:
Als ik je bijlage (Proef1C.xlsx) opsla als excel 97-excel 2003 blijft de formule gewoon werken en krijg ik geen foutmeldingen. Wel krijg ik de vraag bij het openen of ik macro's wil inschakelen.
Op je probleem heb ik dus even geen antwoord, misschien Koster1984??

Kees
 

Bijlagen

  • Proef1C.xls
    25,5 KB · Weergaven: 27
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan