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

Verticaal zoeken als tekst voorkomt in een specifieke cel

Status
Niet open voor verdere reacties.

Pedi2020

Gebruiker
Lid geworden
7 mei 2020
Berichten
21
Goedemiddag,

Ik ben de hele dag al bezig met een formule waar ik de oplossing maar niet op kan vinden. De uitdaging is als volgt:

Op het blad 'Data' wil ik dat de waarden in de kolom A automatisch gevuld worden met de juiste categorie. Om de categorie te bepalen moet de naastgelegen cel uit kolom B worden uitgelezen. Als in kolom B2 bijvoorbeeld het woord 'appel' voorkomt moet in kolom A2 automatisch het woord 'Fruit' worden ingevuld. Zie hieronder het voorbeeld:

foto1.PNG

Om te bepalen aan welke categorie de cel gekoppeld wordt heb ik een tweede tabblad gemaakt, waarin ik alle indicatoren koppel aan de juiste categorie:

foto2.PNG

Ik heb allerlei combinaties geprobeerd met verticaal zoeken, tekst, zoeken etc. Het lukt me echter niet om dit ogenschijnlijk simpele vraagstuk met de juiste formule op te lossen.

Is er iemand die mij wil helpen de juiste formule te vinden? Mijn eeuwige dankbaarheid ligt voor het grijpen. Alvast bedankt voor jullie hulp!
 

Bijlagen

In A2 en doortrekken. Bananen wel even goed spellen;):
Code:
=ALS.FOUT(ZOEKEN(100;VIND.SPEC(Soorten!$B$2:$B$10;B2);Soorten!$A$2:$A$10);"nvt")

Matrix formule(afsluiten met control shift enter):
Code:
=ALS.FOUT(INDEX(Soorten!$A$2:$A$10;MIN(ALS(ISGETAL(VIND.SPEC(Soorten!$B$2:$B$10;B2));RIJ($1:$9);999)));"nvt")

Office 365 optie:
Code:
=FILTER(Soorten!$A$2:$A$10;ISGETAL(VIND.SPEC(Soorten!$B$2:$B$10;B2));"nvt")

En zo zijn er nog wel wat opties:

Code:
=ALS.FOUT(INDEX(Soorten!$A$2:$A$10;MIN(ALS(AANTAL.ALS(B2;"*"&Soorten!$B$2:$B$10&"*")>0;RIJ($1:$9);999)));"nvt")
 
Laatst bewerkt:
Mocht het voorkomen dat er 2 categorieën in 1 zin zitten kun je deze UDF gebruiken. Alt+F11 en achter een module zetten.

Code:
Function jvr(rng As Range, cell As String, rng2 As Range)
 With Application
   jv = .Transpose(rng)
     For Each it In jv
       If InStr(1, cell, it, vbTextCompare) Then a = a & ", " & .Index(rng2, .Match(it, jv, 0))
     Next
   jvr = Mid(a, 3, Len(a))
 End With
End Function

Daarna invoeren als:
=jvr(Soorten!$B$2:$B$10;B2;Soorten!$A$2:$A$10)


Of als je office 365 hebt met een formule
Code:
=TEKST.COMBINEREN(",";WAAR;FILTER(Soorten!$A$2:$A$10;ISGETAL(VIND.SPEC(Soorten!$B$2:$B$10;B2));"nvt"))
 
De functie Mid in Vba is anders dan Mid als functie in een formule.
Code:
jvr = Mid(a, 3)

Bovenstaande is genoeg.
 
Ahh thanks!:thumb:
 
In A2 en doortrekken. Bananen wel even goed spellen;):
Code:
=ALS.FOUT(ZOEKEN(100;VIND.SPEC(Soorten!$B$2:$B$10;B2);Soorten!$A$2:$A$10);"nvt")

Matrix formule(afsluiten met control shift enter):
Code:
=ALS.FOUT(INDEX(Soorten!$A$2:$A$10;MIN(ALS(ISGETAL(VIND.SPEC(Soorten!$B$2:$B$10;B2));RIJ($1:$9);999)));"nvt")

Office 365 optie:
Code:
=FILTER(Soorten!$A$2:$A$10;ISGETAL(VIND.SPEC(Soorten!$B$2:$B$10;B2));"nvt")

En zo zijn er nog wel wat opties:

Code:
=ALS.FOUT(INDEX(Soorten!$A$2:$A$10;MIN(ALS(AANTAL.ALS(B2;"*"&Soorten!$B$2:$B$10&"*")>0;RIJ($1:$9);999)));"nvt")

Dit werkt super! Hartelijk dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan