[MSexcel2003] twee sheets combineren middels bijna-sleutel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • wankel
  • Registratie: September 2000
  • Laatst online: 01-07 23:08
Er zijn veel topics met vergelijkbare onderwerpen, bijvoorbeeld [excel] guru hulp gezocht bij vergelijking
Ik open toch een nieuw topic, omdat ik een "fuzzy" vergelijking op de sleutel nodig heb (of eigenlijk: een exacte op een dynamisch bepaald deel van de sleutel)

De situatie: ik heb een sheet (B) met brongegevens en een sheet (A) die aanvulling met brongegevens nodig heeft.

Het zijn lijsten met werknemersgegevens, en het enige overeenkomstige element is de naam. De kolom met namen is dus mijn kolom met sleutels.

Het leuke: in geen van beide sheets (of zelfs de bronsystemen waar de sheets uitkomen) zijn die genormaliseerd naar achternaam en voornaam of initialen.

In B zijn de namen opgebouwd als "V.N. Naam", in A zijn ze als "Voornaam Naam", "Voor N. Naam" of "Voor Naam" opgebouwd. Rechtstreeks (vertikaal) zoeken lukt dus niet.

Mijn eerste idee was om het aantal spaties (x) te tellen, dan te zoeken naar de x-te spatie (y) en vervolgens een substring op y-tot-totale-lengte te nemen. De versie van Excel die ik ter beschikking heb (MS Excel 2003), ondersteund zoeken naar (bv) de 3e spatie niet in een functie.

Is er een functie of methode die ik over het hoofd zie waarmee ik mijn doel kan bereiken? Ik ben niet onderlegd genoeg in VB om er een macro voor te schrijven en hoop eerlijk gezegd dermate weinig met MS Office te werken, dat het ook niet loont die kennis te vergaren (met het risico voor ongemotiveerd uitgemaakt te worden).

Alvast bedankt voor een tip!

Acties:
  • 0 Henk 'm!

  • wankel
  • Registratie: September 2000
  • Laatst online: 01-07 23:08
------ SOLVED --------

Sorry, ik weet niet hoe ik de titel aanpassen kan, en als ik een edit doe van m'n originele bericht blijft de antwoord-counter op 0 staan.

Met dank aan Withaar op Helpmij, de volgende formule kunnen gebruiken:

=RECHTS(A1;LENGTE(A1)-VIND.ALLES("*";SUBSTITUEREN(A1;" ";"*";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;" ";"")))))

Daarmee krijg ik het laatste woord terug als het bestaat; in het geval van enkel een achternaam gaat het fout, maar met een "als ( isfout())" eromheen gaat het goed.

Bedankt voor iedereen die een kijkje nam en meegedacht heeft :-)