Documentatie/Calc-functies/ZOEKEN

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Documentation/Calc Functions/LOOKUP and the translation is 100% complete.
Other languages:
English • ‎Nederlands



Functienaam:

ZOEKEN

Categorie:

Werkblad

Samenvatting:

Voert een zoekopdracht uit op een ééndimensionaal celbereik (ook wel vector genoemd). Vergelijkt een gegeven waarde met de items in de geordende zoekvector en retourneert, wanneer een overeenkomst is gevonden, de inhoud van de corresponderende cel in een resultaatvector.

Het zoekproces kan gebruikmaken van jokertekens of reguliere expressies. Standaard is de overeenkomst niet hoofdlettergevoelig, maar een hoofdlettergevoelige overeenkomst kan worden uitgevoerd bij gebruik van een reguliere expressie.

Syntaxis:

ZOEKEN(Zoekcriterium; Zoekvector[; Resultaatvector])

Retourneert:

Retourneert de inhoud van een cel binnen de resultaatvector (indien opgegeven) of een waarde uit de zoekvector (geen resultaatvector opgegeven). De geretourneerde gegevens kunnen numeriek of niet-numeriek zijn, afhankelijk van de context.

Argumenten:

Zoekcriterium is een tekenreeks (tussen aanhalingstekens), een getal, een Boolean of een verwijzing naar een cel die één van die typen bevat. Zoekcriterium wordt vergeleken met de inhoud van cellen in Zoekvector.

Zoekvector specificeert een celbereik, meestal gedefinieerd door de celverwijzing voor de cel linksboven in te voeren, gevolgd door een dubbele punt (:) en vervolgens de celverwijzing rechtsonder (bijvoorbeeld A1:E10). Het kan ook worden opgegeven met de naam van een benoemd bereik of een databasebereik of het kan worden doorgegeven als een inline matrix. Als Zoekvector een multidimensionaal celbereik is, onderzoekt ZOEKEN de afmetingen en gaat als volgt te werk:

  • Als het bereik vierkant is of hoger dan breed, dan vergelijkt ZOEKEN Zoekcriterium met de inhoud van de eerste kolom van Zoekvector. Als in dit geval het argument Resultaatvector wordt weggelaten, wordt een waarde uit de laatste kolom van Zoekvector geretourneerd.
  • Als het bereik breder is dan hoog, dan vergelijkt ZOEKEN Zoekcriterium met de inhoud van de eerste rij van Zoekvector. Als in dit geval het argument Resultaatvector wordt weggelaten, wordt een waarde uit de laatste rij van Zoekvector geretourneerd.

De te doorzoeken vector moet worden gesorteerd, zoals beschreven in de sectie #Aanvullende details: hieronder en hierdoor kan ZOEKEN zowel exacte als onnauwkeurige (best passende) overeenkomsten produceren.

Resultaatvector specificeert het ééndimensionale bereik van cellen met waarden die moeten worden geretourneerd. Dit bereik wordt meestal gedefinieerd door de celverwijzing voor de eerste cel in te voeren, gevolgd door een dubbele punt (:), en vervolgens de laatste celverwijzing (bijvoorbeeld A1:A10). Het kan ook worden gespecificeerd door de naam van een benoemd bereik of een databasebereik te gebruiken of het kan worden doorgegeven als een inline matrix.

  • Als de zoekvector niet is geordend zoals verwacht, is het resultaat dat wordt geretourneerd door ZOEKEN onvoorspelbaar. In dergelijke gevallen is het mogelijk dat er geen fout wordt geretourneerd en is het misschien niet duidelijk dat het geretourneerde resultaat zinloos is.
  • Als het argument Zoekcriterium vooraf zou gaan aan de inhoud van de eerste cel van de zoekvector, dan rapporteert ZOEKEN als fout #N/B (waarde niet beschikbaar).
  • Als Resultaatvector een multidimensionaal celbereik is, retourneert ZOEKEN fout in de lijst met parameters (Fout:504).
  • De lengtes van de zoekvector en de resultaatvector hoeven niet hetzelfde te zijn en de ene kan een kolomvector zijn en de andere een rijvector.
  • Als Resultaatvector een inline matrix is en de matchpositie valt buiten de lengte, dan retourneert ZOEKEN als fout waarde niet beschikbaar fout (#N/B).
  • Als Resultaatvector een celbereik is en de matchpositie buiten de lengte valt, wordt deze automatisch uitgebreid tot de lengte van Zoekvector, maar in de richting van Resultaat vector. Als Resultaatvector slechts een enkele celverwijzing is (en dus geen impliciete richting heeft), breidt ZOEKEN deze uit als een kolomvector.

Aanvullende details:

Details specifiek voor de functie ZOEKEN

  • Als de te doorzoeken vector meerdere cellen met dezelfde inhoud bevat, zal ZOEKEN alleen overeenkomen met één van de cellen die gemeenschappelijke inhoud delen en dit kan voor verwarring zorgen.
  • De te doorzoeken vector moet worden geordend met getallen in oplopende volgorde die vóór tekstwaarden in alfabetische volgorde verschijnen. Booleaanse waarden ONWAAR en WAAR worden behandeld als respectievelijk de getallen 0 en 1. ZOEKEN berekent waar Zoekcriterium zou verschijnen in de gesorteerde volgorde.
    • Als er een exacte overeenkomst is tussen Zoekcriterium en één van de items in de zoekvector, wordt die positie gebruikt om de retourwaarde te bepalen.
    • Als er geen exacte overeenkomst is tussen Zoekcriterium en één van de items in de zoekvector, komt ZOEKEN overeen met de grootste waarde in de zoekvector die kleiner is dan Zoekcriterium.
  • Als u van plan bent een multidimensionaal celbereik door te geven voor het argument Zoek vector, overweeg dan om in plaats daarvan een van de flexibelere functies HORIZ.ZOEKEN en VERT.ZOEKEN te gebruiken.
  • Als Reguliere expressies in formules toestaan is ingeschakeld in het gedeelte Formules-jokertekens van het venster Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (of LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Berekenen op macOS), dan zal ZOEKEN exacte overeenkomsten vinden die Zoekcriterium behandelen als een reguliere expressie.
  • Als Jokertekens in formules inschakelen is ingeschakeld in het gedeelte Formule-jokertekens van het venster Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (of LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Berekenen op macOS) , dan zal ZOEKEN exacte overeenkomsten vinden die Zoekcriterium als een jokertekenuitdrukking behandelen.
  • Als de optie Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn is aangevinkt in het gedeelte Algemene berekeningen van het venster Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (of LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Berekenen in macOS), dan moet Zoekcriterium overeenkomen met de hele tekst in een cel; zo niet, dan kan deze overeenkomen met slechts een deel van de tekst.
  • De optie Hoofdlettergevoelig in het gedeelte Algemene berekeningen van het venster Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (of LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Berekenen op macOS) heeft geen effect op de werking van ZOEKEN.


Algemene informatie over de reguliere expressies van Calc

Note pin.svg

Note:
Voor het gemak wordt de informatie in dit subgedeelte herhaald op alle pagina's die functies beschrijven die reguliere expressies beschrijven.

  • Een reguliere expressie is een reeks tekens die een tekstpatroon definieert dat moet worden vergeleken. Meer gedetailleerde, algemene achtergrondinformatie is te vinden op Wikipedia's Reguliere expressies pagina.
  • Reguliere expressies worden veel gebruikt in veel domeinen en er zijn meerdere reguliere expressieprocessors beschikbaar. Calc gebruikt het open source Regular Expressions-pakket van de International Components for Unicode (ICU), zie hun Regular Expressions documentatie voor meer details, inclusief een volledige definitie van de syntaxis voor ICU Reguliere Expressies.
  • De reguliere expressie-engine van Calc ondersteunt genummerde capturegroepen, waarmee subbereiken binnen een overeenkomst kunnen worden geïdentificeerd en gebruikt in vervangende tekst. Haakjes worden gebruikt om componenten van een reguliere expressie te groeperen en een genummerde capture-groep te maken. Om een capture-groep in een vervangende tekst in te voegen, gebruikt u het formulier "$n", waarbij n het nummer van de capture-groep is.


Algemene informatie over de jokertekens van Calc

Jokertekens zijn speciale tekens die kunnen worden gebruikt in zoekreeksen die als argumenten aan sommige Calc-functies worden doorgegeven; ze kunnen ook worden gebruikt om zoekcriteria te definiëren in het dialoogvenster Zoeken en vervangen. Het gebruik van jokertekens maakt het mogelijk om meer geavanceerde zoekparameters te definiëren met een enkele zoekreeks.

Calc ondersteunt ofwel jokertekens of reguliere expressies als argumenten, afhankelijk van de huidige toepassingsinstellingen. Standaard worden jokertekens ondersteund in plaats van reguliere expressies.

Om er zeker van te zijn dat jokertekens worden ondersteund, gaat u naar Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen en controleert u of de optie Jokertekens in formules inschakelen is geselecteerd. Merk op dat u dit dialoogvenster kunt gebruiken om over te schakelen naar reguliere expressies door Reguliere expressies in formules inschakelen te kiezen of ervoor te kiezen om geen jokertekens of reguliere expressies te ondersteunen.

De volgende tabel identificeert de jokertekens die Calc ondersteunt.

Calc wildcards
Jokerteken Beschrijving
? (vraagteken) Komt overeen met elk afzonderlijk teken. De zoekreeks "b?g" komt bijvoorbeeld overeen met "bag" en "beg" maar komt niet overeen met "boog" of "mug".

Houd er rekening mee dat deze ook niet overeenkomt met "bg" , sinds "?" moet exact overeenkomen met één karakter. De "?" jokerteken komt niet overeen met een nul-tekenovereenkomst.
* (sterretje) Komt overeen met elke reeks tekens, inclusief een lege tekenreeks. De zoekreeks "*cast" komt bijvoorbeeld overeen met "cast", "forecast" en "outcast", maar komt niet overeen met "forecaster" met de standaardinstellingen van Calc.

Als de optie 'Zoekcriteria = en <> moeten van toepassing zijn op hele cellen' is uitgeschakeld in Extra > Opties > LibreOffice Calc > Berekenen, dan zal 'forecaster' een overeenkomst zijn met de zoekreeks '*cast'.
~ (tilde) Ontvangt de speciale betekenis van een vraagteken, asterisk of tilde-teken dat direct volgt op het tilde-teken.

Bijvoorbeeld de zoekreeks "why~?" komt overeen met "why?" maar komt niet overeen met "whys" of "why~s".
Vergelijkingen met jokertekens zijn niet hoofdlettergevoelig, vandaar komt "A?" overeen met zowel "A1" als "a1".

Deze jokertekens worden ondersteund in zowel Calc als Microsoft Excel. Kies daarom, als interoperabiliteit tussen de twee toepassingen nodig is, om met jokertekens te werken in plaats van reguliere expressies. Omgekeerd, als interoperabiliteit niet nodig is, overweeg dan om reguliere expressies te gebruiken voor krachtigere zoekmogelijkheden.


Voorbeelden:

De volgende tabel toont de naam, het identificatienummer en de examenscore voor tien studenten. De tabel is alfabetisch geordend op de naam van de leerling, zodat de gegevens in cellen A2:A11 kunnen worden gebruikt als zoekvector bij oproepen naar de functie ZOEKEN. Deze eenvoudige tabel kan worden gebruikt om veel van de gedragingen van ZOEKEN te demonstreren.

A B C
1 Naam Student ID Examencijfer
2 Andrew 1257 32
3 Bethany 1470 80
4 Charles 1367 42
5 David 1497 65
6 Emily 1730 50
7 Ferdinand 1414 41
8 Georgia 1364 17
9 Haley 1778 46
10 Ian 1769 90
11 Jennifer 1530 35
Formule Beschrijving Retourneert
=ZOEKEN("Haley"; A2:C11) Hier is het Zoekvector-argument een multidimensionaal celbereik (met een hoogte groter dan de breedte) en wordt het Resultaatvector-argument weggelaten. De functie vindt de tekenreeks "Haley" in de eerste kolom van Zoek vector en retourneert de examenscore van die student vanaf de corresponderende positie in de laatste kolom. De formule =ZOEKEN("Haley"; A2:A11; C2:C11) zou hetzelfde resultaat geven. 46
=ZOEKEN(G2; A2:C11) waarbij cel G2 de tekenreeks "Ailsa" bevat (ingevoerd zonder aanhalingstekens). Hier is het Zoekvector-argument weer een multidimensionaal celbereik (met hoogte groter dan de breedte) en wordt het Resultaatvector-argument weggelaten. De functie zoekt naar de string "Ailsa" in de eerste kolom van Zoek vector maar aangezien "Ailsa" alfabetisch voor de voornaam in de lijst staat ("Andrew"), wordt er als fout geretourneerd #N/B. De formule =LOOKUP(G2; A2:A11) zou hetzelfde resultaat geven. #N/B
=ZOEKEN("Ken"; A2:C11) Hier is het Zoekvector-argument weer een multidimensionaal celbereik (met hoogte groter dan de breedte) en wordt het Resultaatvector-argument weggelaten. De functie zoekt naar de tekenreeks "Ken" in de eerste kolom van Zoek vector en vindt dat "Ken" alfabetisch achter de achternaam in de lijst staat ("Jennifer"). Het examencijfer van de laatste persoon in de lijst wordt geretourneerd. De formule =LOOKUP("Ken"; A2:A11; C2:C11) zou hetzelfde resultaat geven. 35
=ZOEKEN("Evan"; A2:A11) Hier is het argument Zoekvector een ééndimensionaal celbereik en wordt het argument Resultaatvector weggelaten. De functie zoekt naar de string "Evan" in de eerste kolom van Zoek vector en vindt dat "Evan" verschijnt na "Emily" maar voor "Ferdinand" in de gesorteerde lijst. Het retourneert daarom de tekenreeks "Emily". Emily
=ZOEKEN("David"; A2:A11; B2:B11) Hier is het argument Zoekvector een ééndimensionaal celbereik en wordt het argument Resultaatvector gespecificeerd. De functie vindt de tekenreeks "David" in Zoekvector en retourneert het identificatienummer van die student vanaf de corresponderende positie in de Resultaatvector. De formules =ZOEKEN("David"; A2:B11) en =ZOEKEN("David"; A2:A11; B2:B3) geven hetzelfde resultaat. 1497

De volgende tabel en gerelateerde voorbeelden gebruiken een zoekvector die getallen, Booleans en tekstreeksen bevat.

A B C D E F G H
1 -1 ONWAAR WAAR 3 Bewolkt Regen Regenachtig Zon
2
3 Pos 1 Pos 2 Pos 3 Pos 4 Pos 5 Pos 6 Pos 7 Pos 8
Formule Beschrijving Retourneert
=ZOEKEN(-0,5; A1:H1; A3:H3) Hier bepaalt de functie dat het gegeven Zoekcriterium tussen de waarden -1 en ONWAAR (0) in Zoekvector ligt. ZOEKEN komt overeen met de lagere waarde en retourneert de overeenkomstige invoer in de resultaatvector. Pos 1
=ZOEKEN(WAAR; A1:H1; A3:H3) Hier bepaalt de functie dat het gegeven Zoekcriterium overeenkomt met de waarde in cel C1 binnen Zoekvector. ZOEKEN retourneert de corresponderende invoer in de resultaatvector. Pos 3
=ZOEKEN("Algemeen"; A1:H1; A3:H3) Hier bepaalt de functie dat het gegeven Zoekcriterium alfabetisch voor de eerste tekstreeks binnen Zoekvector ligt en geeft de fout #N/B terug. #N/B
=ZOEKEN("^b.*"; A1:H1; A3:H3) met reguliere expressies ingeschakeld. De functie komt overeen met de reguliere expressie "^b.*" in de zoekvector ("Bewolkt") en retourneert het corresponderende item in de resultaatvector. Pos 5
=ZOEKEN("^sn.*"; A1:H1; A3:H3) met reguliere expressies ingeschakeld. De functie komt overeen met de reguliere expressie "^re.*" in de zoekvector ("Regenachtig") en retourneert de corresponderende invoer in de resultaatvector. Dit is echter misschien niet zo handig als er meerdere items zijn die overeenkomen met de reguliere expressie (zoals in dit geval). Pos 7
=ZOEKEN("z*"; A1:H1; A3:H3) met jokertekens ingeschakeld. De functie komt overeen met de jokertekenuitdrukking "z*" in de zoekvector ("Zon") en retourneert de overeenkomstige invoer in de resultaatvector. Pos 8
=ZOEKEN("re*"; A1:H1; A3:H3) met jokertekens ingeschakeld. De functie komt overeen met de jokertekenuitdrukking "re*" in de zoekvector ("Regenachtig") en retourneert de overeenkomstige invoer in de resultaatvector. Dit is echter mogelijk niet bijzonder handig als er meerdere vermeldingen zijn die overeenkomen met de jokertekenuitdrukking (zoals in dit geval). Pos 7

Het laatste voorbeeld toont het gebruik van inline matrix voor de argumenten Zoekvector en Resultaatvector.

Formule Beschrijving Retourneert
=ZOEKEN(5; {1. 2. 3. 4. 5. 6. 7. 8. 9. 10}; {"Waterstof". "Helium". "Lithium". "Beryllium". "Borium". "Koolstof ". "Stikstof". "Zuurstof". "Fluor". "Neon"}) Hier retourneert de functie de naam van het element met atoomgetal 5. Borium

Gerelateerde LibreOffice-functies:

HORIZ.ZOEKEN

INDEX

VERGELIJKEN

VERSCHUIVING

VERT.ZOEKEN

ODF standaard:

Section 6.14.8, part 2

Gelijkwaardige Excel-functies:

ZOEKEN