Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel 2007] VLOOKUP met een like statement erin

Pagina: 1
Acties:

  • all_by_myself
  • Registratie: September 2003
  • Laatst online: 30-10 14:22

all_by_myself

Per Ardua ad Astra

Topicstarter
Dames en heren,

Ik ben al de hele ochtend aan het zoeken, maar kan niet vinden hoe ik dit moet oplossen.

Probleem:

Ik gebruik data uit twee verschillende systemen. De data bestaat uit namen van medewerkers en hun 'prestaties' in de verschillende systemen.

Het probleem zit hem in het feit dat de namen in beide systemen niet overeenkomen. Bijvoorbeeld heet de persoon in systeem 1 "Alex Wierden van" en in systeem 2 "Alex van Wierden". Omdat ik een rapportage maak waarbij de data uit beide systemen met elkaar vergeleken wordt, wil ik graag dat de data van "Alex Wierden van" en "Alex van Wierden" wordt gezien als data van dezelfde persoon.

Rapportage heeft als basis systeem1 en ziet er ongeveer zo uit

Alex Wierden van 12 24 100 100 23
Pieter Velde van 12 23 85 94 23
enz

Ik wil nu, uit een ander tabblad, data uit systeem2 toevoegen aan deze rapportage waarbij hij zoekt op naam en dan de data achter (in geval van Alex van Wierden) "23".

De statement ziet er nu zo uit:

code:
1
 =VLOOKUP(TRIM($B4);created!$a$2;$F$200;6;FALSE)


Hierin vergelijkt hij de waarde van B4 ("Alex Wierden van") met de namen uit de sheet 'created' (waar de naam "Alex van Wierden" in staat) en geeft dan de waarde van kolom 6 (F1-F200) terug.

Je snapt dat ik nu een fout krijg want Alex van Wierden is niet gelijk aan Alex Wierden van.

Is het mogelijk om hier een "LIKE" in te voegen zodat hij zoekt op iets wat er verdacht veel op lijkt?

AMD Ryzen 9 PRO 3900, 32GB, Win11 x64


Verwijderd

-edit- werkt niet

[ Voor 82% gewijzigd door Verwijderd op 06-02-2009 12:03 ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Eerste hit bij [google=like function excel]: http://www.dailydoseofexc...mulating-a-like-function/ :Y)
Excel doesn’t have a LIKE function, but you can use the COUNTIF function to pretend that it does. If LIKE existed, you might test the pattern of a cell like this

=LIKE(A1,”DD???F*”)

to return True for an entry in A1 like “DD123F6″. The same syntax can be used for COUNTIF

=COUNTIF(A1,”DD???F*”)

to return 1 if the pattern matches and 0 if it doesn’t. By limiting the range argument of COUNTIF to one cell, it acts somewhat like a LIKE function would.

Using COUNTIF, you don’t have the range of patterns that are available to you with the Like operator in VBA. You basically just have the * and ? wildcard characters. But it’s better than nothing.
{....}
And if you don’t mind a little VBA, this function simulates Like exactly:

Function ISLIKE(arg, pattern As String) As Boolean
‘ Returns true if the first argument is like the second
ISLIKE = arg Like pattern
End Function

Example:

=ISLIKE(UPPER(A1),UPPER(”*[aeiou]*”))

Returns TRUE if cell A1 contains a vowel (upper or lower case)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

all_by_myself schreef op vrijdag 06 februari 2009 @ 11:26:
Je snapt dat ik nu een fout krijg want Alex van Wierden is niet gelijk aan Alex Wierden van.
Ja, maar er staan ook nog getallen achter en die lijken helemaal niet op Alex van Wierden.

Kan je nog eens uitleggen wat er EXACT in de te vergelijken cellen staat?

  • all_by_myself
  • Registratie: September 2003
  • Laatst online: 30-10 14:22

all_by_myself

Per Ardua ad Astra

Topicstarter
Verwijderd schreef op vrijdag 06 februari 2009 @ 12:13:
[...]

Ja, maar er staan ook nog getallen achter en die lijken helemaal niet op Alex van Wierden.

Kan je nog eens uitleggen wat er EXACT in de te vergelijken cellen staat?
Jawel hoor, die getallen dat zijn cellen met 'scores'... hieronder even een overzicht.

code:
1
2
3
4
5
6
7
8
Naam    in  uit 261 cr. 103/149 re. RNA Ready   Work    Talking Uitbellen
Elisabeth Seppen                                19  8   13  0       159 77  124 4
Gerben Talsma                                       15  31  9   0   1   220 55  200 2
Gertjan Heerde van                                  28  3   #N/A    0       228 101 172 4
Jedidja Steenbergen                                 17  5   18  0       115 57  221 3
Larno van Loo                                       21  7   18  1       169 73  302 4
Marc Eilander                                       3   0   1   0       88  7   6   0
Martijn Groot                                       11  14  9   0       123 36  131 2


De namen worden realtime met een SQL query uit een CISCO telefoonsysteem gehaald (die namen zijn dus elke dag anders, dus het idee van een array werkt daardoor niet), daarachter staan 2 kolommen met inkomende en uitgaande telefoontjes (ook uit Cisco), daarna komen er 2 kolommen met aantallen requesten aangemaakt in het registratiesysteem (systeem2). Deze data wordt realtime met een webquery opgehaald.

Het idee is dus dat de data van systeem2 in het overzicht van systeem1 wordt geplakt. De webquery wordt in een apart tabblad binnen gehaald.

Is het verhaal nu duidelijk?

AMD Ryzen 9 PRO 3900, 32GB, Win11 x64


Verwijderd

het verhaal is duidelijk, het probleem is echter complexer dan je denkt. ik zie het niet 1 2 3 opgelost met een spreadsheetfunctie, en een ongewijzigde like gaat het probleem ook niet onmiddellijk oplossen.
met vba zou ik het als volgt aanpakken : maak een user defined function (eigen spreadsheetfunctie in vba) die in een bijkomende kolom de naam zodanig opsplitst en sorteert dat deze vergelijkbaar zijn. pas op deze nieuwe kolom de gebruikelijke zoekfuncties toe.

  • all_by_myself
  • Registratie: September 2003
  • Laatst online: 30-10 14:22

all_by_myself

Per Ardua ad Astra

Topicstarter
Ok,.. dat klinkt inderdaad als een plausibele oplossing...

Ja,.. VBA... goed, uitdaging ! 8)

Allemaal bedankt voor jullie hulp!

AMD Ryzen 9 PRO 3900, 32GB, Win11 x64


Verwijderd

Dus de hele regel (incl. de scores) staat in 1 cel? Dan wordt het i.d.d. moeilijk, als alleen de naam in de cel zou staat zou het wel kunnen (zonder VB).

Verwijderd

@grizzlybeer : de naam staat apart in een cel.

Verwijderd

Als beide namen (er moet immers vergeleken worden) apart in een cel staan en als er evenveel hoofdletters en spaties gebruikt worden kan je met de functie =code() een handtekening aan de naam geven.
Pagina: 1