Verticaal zoeken gebruik je als je in een tabel een waarde wilt opzoeken. Denk bijvoorbeeld aan het aantal artikelen op voorraad aan de hand van een artikelcode. Of de prijs van het artikel. En omdat een voorbeeld nog altijd meer zegt dan 10.000 woorden, geef ik je hieronder… een paar voorbeelden!

Verticaal zoeken naar de voorraad

Ik heb onderstaande tabel. Aan de hand van het artikelnummer wil ik de voorraad opzoeken. Het artikelnummer staat in kolom A, de voorraad in kolom D. Dit is de vierde kolom uit de tabel, belangrijk!!  
   
De formule in cel H3 luidt dan: NL: “=Vert.Zoeken(H2, A2:E31, 4)” EN: “=Vlookup(H2, A2:E31, 4,)” Ik neem jullie mee door de formule. De formule bestaat uit 4 parameters: 1. H2: hier staat het artikelnummer (als verwijzing in een cel) 2. A2:E31: de tabel waarin gezocht moet worden 3. 4: geef de vierde kolom van de tabel terug

Verticaal zoeken naar korting

 
Aan het model heb ik een extra tabel toegevoegd met kortingen in kolom G en H. Deze lees je als tussen 0 en 4 bestellingen krijg je geen korting. Tussen 5 en 9 bestellingen 2%, et cetera. Om in cel K5 het kortingspercentage op te halen gebruik je ook verticaal zoeken: “=Vert.Zoeken(K4, G2:H7, 2)” Op zich is het merkwaardig dat er in de tweede situatie gezocht wordt naar een waarde die niet in de tabel staat. In het geval van de kortingen heel mooi, in het geval van het artikelnummer gevaarlijk! Want als ik artikelnummer 170000 invul, dan geeft hij als voorraad 85 stuks. Het aantal dat hoort bij artikelnummer 1600015. Dat komt omdat verticaal zoeken de tabel als reeks beschouwt en dus de waarde teruggeeft die past in de reeks. Dit wil je niet! en daarom heeft verticaal zoeken nog een vierde parameter, ‘range-lookup’. Als deze ontbreekt, dan gebruikt Excel als standaardwaarde WAAR of TRUE. Ofwel, je krijgt een waarde retour ook als de exacte zoekwaarde niet bestaat. Als je wilt dat dit niet gebeurt, dan moet je de formule worden NL: “=Vert.Zoeken(H2, A2:E31, 4, ONWAAR)”. Kijk, dan levert de formule een #N/A of #N/B op.

Andere zoekmanier, via Match en Index

Ik werk al jaren met Excel, maar ik gebruik de laatste jaren eigenlijk pas een andere zoekfunctie, match (vergelijken in het Nederlands). De matchfunctie geeft geen waarde uit een opgegeven kolom (zoals vlookup), maar retourneert het rijnummer waar de zoekwaarde staat. Zie onderstaand plaatje. De matchformule kent 3 parameters: 1. De zoekwaarde 2. De zoeklijst 3. Vergelijktype = 0, dit betekent een exacte match.  
 
Als je dit weet, dan kan je met de indexformule de waarde ophalen. Met de indexfunctie kan je uit een tabel de waarde laten teruggeven die staat in een rij en een kolom. Dus:  
De parameters: 1. Tabel 2. Rijnummer 3. Kolomnummer In de praktijk kom ik modellen tegen waar de vlookup op dezelfde regel vaker wordt gebruikt, bijvoorbeeld voor iedere kolom die nodig is. Vlookup is een trage functie. Door in combinatie met de match te werken gaat dit sneller. Met de match haal je het rijnummer op en vervolgens met de indexfunctie de verschillende kolommen. Dit scheelt echt rekentijd.

Zoeken via match op een combinatie van velden (Array-functie)

In het vorige voorbeeld hadden de artikelen met een verschillende kleur een verschillend artikelnummer. Deze ondernemer heeft de artikelen hetzelfde nummer gegeven. Dus als je de voorraad wilt weten, dan moet je ook de kleur gebruiken om te zoeken. Dit lukt met de match-functie, zie het voorbeeld hieronder:  
De eerste parameter bestaat uit een combinatie van zoekvelden, namelijk de waarde in H2 en H3. Deze combineer je tot 1 parameter door ze met & aan elkaar te plakken. De zoektabel bestaat dus ook uit twee onderdelen, ook deze plak je met & aan elkaar. Alleen… In H4 staat #value!, niet goed. Dit komt, omdat dit nu een Array-functie is geworden. Ik had na het intypen van de formule niet op enter moeten drukkken, maar op ALT-CTRL+ENTER. De formule wordt dan voorzien van accolades en, zie: het werkt nu.

Resume: