Onderwerp


Vertikaal zoeken met twee zoekwaarden




Informatie


Een veelgestelde vraag is of je in een database ook kunt zoeken op basis van twee voorwaarden. Vaak wordt gedacht aan de functie Vert.Zoeken, maar met deze functie kun je slechts één zoekwaarde opgeven. Er is echter wel een andere mogelijkheid. Door handig gebruik te maken van een of meerdere benoemde bereiken, de functies Index en Vergelijken kun je een Matrix formule maken waarmee je kunt zoeken op basis van twee voorwaarden.



Voorbeeld.

Stel dat je een overzicht hebt van medewerkers en de datum waarop deze in dienst zijn getreden. Kun je nu een functie maken die aangeeft wanneer een medewerker in dienst is gekomen. Op achternaam zoeken is niet voldoende, want er zijn medewerkers met dezelfde achternaam. Je zult naast de achternaam dus ook de voornaam van een medewerker moeten gebruiken om een unieke naam te verkrijgen.


Download een
voorbeeldbestand en volg de volgende stappen.
- Maak een tabel met drie kolommen
- Definieer benoemde bereiken
- Maak de formule

A) Maak de tabel
Een tabel met 3 kolommen en 5 records is voldoende. Gebruik hiervoor de kolommen B, C en D en start op rij 9.
Vul voor de veldnamen bij B9, "Achternaam", bij C9, "Voornaam" en bij D4, "In dienst per" in. De 5 rijen, of records, daaronder kun je naar eigen inzicht invullen.

B) Definieer de benoemde bereiken
Om een te kunnen zoeken op basis van twee voorwaarden heb je benoemde bereiken nodig. Een benoemd bereik is als volgt te maken.

- Kies via het menu voor:
Formules > Naam Definiëren
- In de dialoog "Nieuwe Naam" voer je een naam in en geef je de verwijzing naar het bereik aan

Maak de volgende benoemde bereiken aan:

- Crit1
Bij "verwijst naar" voer je in:
=Data!$C$5
Dit is de Achternaam die je gebruikt om te zoeken

- Crit2
Bij "verwijst naar" voer je in:
=Data!$C$6
Dit is de Voornaam die je gebruikt om te zoeken

- A_Naam
Bij "verwijst naar" voer je in:
=Data!$B$10:$B:$14
Dit is de kolom met Achternamen

- V_Naam
Bij "verwijst naar" voer je in:
=Data!$C$10:$C:$14
Dit is de kolom met Voornamen

- Datum
Bij "verwijst naar" voer je in:
=Data!$D$10:$D:$14
Dit is de kolom waarin de Datum van Indiensttreding van iedere medewerker staat

C) Maak de formule
Om te kunnen zoeken op basis van twee voorwaarden voer je in C7 de volgende matrix formule in:
=INDEX(Datum; VERGELIJKEN(Crit1&Crit2;A_Naam&V_Naam;0))

!! Belangrijk. De matrixformule voer je in door gelijktijdig op CTRL+SHIFT+ENTER te drukken nadat je de formule in de cel hebt ingevoerd. Doe je dat niet, dan levert de formule een foutwaarde op.



Hoe het werkt.

De matrix formule is de kern van het verhaal. Deze formule gebruikt twee functies.

De functie Index gebruikt twee argumenten om te bepalen op welke datum de medewerker in dienst kwam.

Het eerste argument is de reeks waarin gezocht moet worden. Dit is de reeks Datum.
Het tweede argument is de rij die je moet gebruiken en wordt bepaald door de functie Vergelijken.

De functie Vergelijken gebruikt drie argumenten om de relatieve positie te bepalen van de te zoeken tekst.

Het eerste argument is de zoekwaarde. Deze bestaat uit de samenvoeging van Crit1 & Crit2.
Het tweede argument is het opzoekbereik. Dit bestaat uit de samenvoeging van A_Naam & V_Naam.
Het derde argument wordt gevormd door functietype 0. Er moet een exact overeenkomende tekst gevonden worden.