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

Gedeeltelijke namen opzoeken met vlookup

Status
Niet open voor verdere reacties.

Vedet

Nieuwe gebruiker
Lid geworden
10 jan 2012
Berichten
4
Hi all,

Vraagje van een minder experienced exceller :)

Ik heb twee tabellen die ik met vlookup wil koppelen, echter de achternamen zijn anders geformuleerd. Fictief gesteld gebruik ik even de naam Jan Jansen.

In de ene tabel wordt deze weergegeven als: Jansen, J. (Jan)
In de tweede tabel wordt deze weergegeven als: Jansen, Jan

Het zal vast mogelijk zijn om deze te koppelen, omdat in beiden Jansen en Jan voorkomt, maar ik kom er niet uit en krijg alleen maar N/A uit mijn vlookup.

Iemand een idee of voorbeeld?

Alvast bedankt!

* de naam Jan Jansen is uiteraard fictief
 
Maar in Janssen komt ook Jan voor... dus 100% nauwkeurig zal het waarschijnlijk niet worden.

Plaats s.v.p. een representatief Excel voorbeeldje.

En gebruik je Excel 365?
 
Je loopt tegen dezelfde problemen als ik af en toe zie ik uit het voorbeeld. Laat iedereen altijd personeelsnummers gebruiken, anders krijg je altijd gedoe met lijstjes namen.

In bijlage een optie, zoekt de achternaam op. Maar als er dus meer mensen dezelfde achternaam hebben krijg je dus meer resultaten en een #OVERLOOP fout. Die zul je dan handmatig even moeten controleren.
 

Bijlagen

Deze zoekt op voor en achternaam.
In E6 en doortrekken naar beneden

Code:
=LET(r;Leidinggevende!$C$4:$D$7;FILTER(INDEX(r;;2);PRODUCTMAT(POS.NEG(ALS.FOUT(VIND.SPEC(" "&TRANSPONEREN(XML.FILTEREN("<x><y>"&SUBSTITUEREN(C6;", ";"</y><y>")&"</y></x>";"//y"))&" ";" "&SUBSTITUEREN(SUBSTITUEREN(SUBSTITUEREN(INDEX(r;;1);"(";"");")";"");", ";" ")&" ");0));{1;1})=2;""))
 
Met een UDF kan ook

Code:
Function jec(cell As String, rng As Range) As String
 Dim ar, sp, i As Long
 ar = rng
 sp = Split(cell, ", ")
 For i = 1 To UBound(ar)
   ar(i, 1) = Replace(Replace(ar(i, 1), sp(0), ""), sp(1), "")
   If Len(ar(i, 1)) < 8 Then jec = ar(i, 2): Exit Function
 Next
End Function


Te gebruiken als (In E6)

Code:
=jec(C6;Leidinggevende!$C$4:$D$7)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan