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

1 waarde opzoeken uit 1 cel met meerdere waardes

Status
Niet open voor verdere reacties.

jjmermen

Gebruiker
Lid geworden
23 okt 2012
Berichten
57
Besturingssysteem
Windows
Office versie
365
Goedendag,

Kan iemand mij helpen met het volgende.
Ik wil 1 van de waardes die tussen de scheidingstekens staan in cel A2 en A3 zoeken op basis van de waarde die in cel B2 staat.
Ik wil de waardes in kolom A niet splitsen omdat ik een bestand heb met wel 80.000 regels.
Daarbij kunnen de aantal waardes in 1 cel wel oplopen tot 30.


[table="width: 500, class: grid, align: left"]
[tr]
[td][/td]
[td]A[/td]
[td]B[/td]
[td]C[/td]
[/tr]
[tr]
[td]1[/td]
[td]Waardes[/td]
[td]Zoekwaarde[/td]
[td]Verwachte uitkomst[/td]
[/tr]
[tr]
[td]2[/td]
[td]123; 456;abc; def; us000; 616-0123456[/td]
[td]456[/td]
[td]456[/td]
[/tr]
[tr]
[td]3[/td]
[td]aaa;bbb; ccc;[/td]
[td]aaa[/td]
[td]aaa[/td]
[/tr]
[/table]

bvd.
 

Bijlagen

zo?
in C2
PHP:
=ALS(ISGETAL(VIND.SPEC(B2;A2));B2; "niet gevonden")
 
Laatst bewerkt:
Een 2e mogelijkheid (evt vertalen)
Code:
=IF(LEN(SUBSTITUTE(A2;B2;""))=LEN(A2);"niet gevonden";B2)
 
Mocht er getal 45670 in de cel staan zal de uitkomst niet kloppen als je zoekt naar 456.

Nog een vb: zoek naar 1 maar in de cel staat ergens 11
 
Als je zoekt naar 1 en de waarde 111 staat in de cel, vindt de formule alsnog een match. Dat lijkt mij niet juist.
Zo voorkom je het

Code:
=IF(ISNUMBER(SEARCH(" "&B2&";";" "&A2));B2;"niet gevonden")
 
Laatst bewerkt:
Volkomen gelijk, maar de formule geeft altijd "niet gevonden"
 
Laatst bewerkt:
Ik heb het even gebaseerd op Popipipo's bestand, daar klopt het wel
 
Ik was er eigenlijk vanuit gegaan dat er gezocht werd op het hele getal en niet op een gedeelte.
Maar je hebt gelijk dat je op alles een check moet hebben misschien daarom onderstaande formule gebruiken.

Code:
=IF(LEN(SUBSTITUTE(" "&A2;" "&B2&";";""))=LEN(A2);"niet gevonden";B2)
 
Er wordt ook gezocht op het hele getal maar als je per ongeluk een getal zoekt welke in een ander getal voor komt...
 
Excel 365:
Code:
=ALS(SOM(--(SPATIES.WISSEN(TEKST.SPLITSEN(B2;";"))=TEKST(C2;"0")));C2;"niet gevonden")
 
Ook nog maar een UDF

Code:
Function jec(c As String, s As Variant) As Variant
 jec = "niet gevonden"
 With CreateObject("vbscript.regexp")
   .Pattern = "\b" & s & "\b"
   If .test(c) Then jec = .Execute(c)(0)
 End With
End Function

Code:
=jec(A2;B2)
 
of

Code:
Function jec(c As String, s As String) As Variant
On Error Resume Next
jec = Replace(Filter(Split("^" & Join(Split(Replace(c, " ", ""), ";"), "^|^") & "^", "|"), "^" & s & "^")(0), "^", "")
If Err Then jec = "niet gevonden"
End Function
 
Of:
Code:
=ALS.FOUT(LET(x;TEKST.SPLITSEN(SPATIES.WISSEN(A2);{";";" "});INDEX(x;VERGELIJKEN(T(B2);x;0)));"niet gevonden")
 
Laatst bewerkt:
Nog eentje voor versies eerder dan 365:
Code:
=ALS(SOMPRODUCT(ALS.FOUT(--(XML.FILTEREN("<t><s>"&SUBSTITUEREN(B2;";";"</s><s>")&"</s></t>";"//s")=C2);0));C2;"niet gevonden")
 
@Alex

Niet in Excel 2010

Code:
Function F_snb(c00, c01)
   F_snb = IIf(UBound(Filter(Split(Replace(" " & c00 & " ", ";", " ; "), ";"), " " & c01 & " ")) = -1, "niet ", "") & "gevonden"
End Function
 
Laatst bewerkt:
@snb: ok, vanaf versie 2013...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan