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

Zoeken van een lijst met woorden in een cel

Status
Niet open voor verdere reacties.

Arito

Gebruiker
Lid geworden
31 mei 2006
Berichten
140
Beste helpers,

Ik heb een sheet met 3 relevante kolommen (A, B en D).

In kolom A staan allemaal cellen met tekst
In kolom D staat codes

Ik wil dat in kolom B het volgende wordt gedaan: De codes uit kolom D moeten gezocht worden in kolom A. Als een of meer van die codes in de tekst van kolom A voorkomen, moet er in kolom B het liefst die code die gematched wordt komen te staan, maar een "1" is ook prima.

Zie voorbeeld.

bvd!
 

Bijlagen

Met een User defined function kan het zo:

Code:
Function GeefCodes(sTekst As String, sCodes As Range) As String
    
    For Each r In sCodes
    
        If InStr(sTekst, r.Text) Then GeefCodes = GeefCodes & " " & r.Text
    
    Next
    
    GeefCodes = Trim(GeefCodes)

End Function

Plak dit in een module in VBA.

Zet dan in cel B1:

=GeefCodes(A1;$D$1:$D$6)

Plak die in de cellen eronder.

Wigi
 
Kan ook zonder udf.
Typ in B1 en kopieer naar beneden:
Code:
=ZOEKEN(200;VIND.SPEC($D$1:$D$6;$A1);$D$1:$D$6)
Hierbij is ervan uitggegaan dat de teksten in kolom A per cel niet langer zijn dan 200 tekens.
Zijn ze dat wel, dan kies je in plaats van 200 een groter getal (desnoods het grootste in Excel 2003: 9,99999999999999E+307).
 
Kan ook zonder udf.
Typ in B1 en kopieer naar beneden:
Code:
=ZOEKEN(200;VIND.SPEC($D$1:$D$6;$A1);$D$1:$D$6)
Hierbij is ervan uitggegaan dat de teksten in kolom A per cel niet langer zijn dan 200 tekens.
Zijn ze dat wel, dan kies je in plaats van 200 een groter getal (desnoods het grootste in Excel 2003: 9,99999999999999E+307).

zapatr

Dit kan inderdaad, maar aangezien er in de vraag staat dat het om meerdere codes kan gaan:

Als een of meer van die codes in de tekst van kolom A voorkomen, moet er in kolom B het liefst die code die gematched wordt komen te staan

stelde ik een UDF op.

Wigi
 
Dit kan inderdaad, maar aangezien er in de vraag staat dat het om meerdere codes kan gaan stelde ik een UDF op.
In de vraag staat dat het gaat om meerdere codes in kolom A, niet om meerdere codes in 1 cel in kolom A.
En in het voorbeeld van de vragensteller staat in beide cellen in kolom A ook slechts 1 code.
Het lag dan ook voor de hand dat ik in mijn antwoord daar vanuit ging.
 
Het is een beetje ongelukkig geformuleerd door mij denk ik. Het geval dat er meerdere codes in een cel in kolom A staat (wat wel kan) komt niet zo vaak voor, en is voor mijzelf ook niet zo van belang. Idealiter is het dan het mooist als beide codes worden weergegeven in kolom B (zoals de oplossing van Wigi deed) maar dat is een heel klein punt.

De mogelijkheid om in kolom A de codes uit kolom D te matchen en vervolgens een daarvan in kolom B weer te geven is meer dan genoeg voor wat ik wilde. In de werkelijke sheet is kolom A een 'web query' en het leek erop alsof de sheet het herberekenen van de function niet aankon (hij gaf #VALUE's in de sheet, totdat ik de formule opnieuw intikte in de bovenste cel en naar beneden trok). Ik heb het dus uiteindelijk met de formule van zapatr gedaan.

:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan