Documentatie/Calc-functies/VERT.ZOEKEN
TDF LibreOffice Document Liberation Project Blogs gemeenschap Weblate Nextcloud Redmine Ask LibreOffice Doneren
Functienaam:
VERT.ZOEKEN
Categorie:
Werkblad
Samenvatting:
Voert een verticale zoekopdracht uit op een opgegeven gegevenstabel. Vergelijkt een bepaalde zoekwaarde met de items in de eerste kolom van de gegevenstabel en retourneert, wanneer een overeenkomst is gevonden, de inhoud van de cel die in dezelfde rij ligt als de overeenkomende waarde, maar in een andere kolom.
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.
Als uw gegevens verticaal zijn opgesteld, met vergelijkingswaarden in de eerste kolom van de gegevenstabel, gebruikt u HORIZ.ZOEKEN in plaats van VERT.ZOEKEN.
Syntaxis:
VERT.ZOEKEN(Zoekcriterium; Matrix; Index[; Gesorteerd bereik zoeken])
Retourneert:
Retourneert de inhoud van de cel die zich in dezelfde rij bevindt als de overeenkomende cel, maar in een andere kolom. De geretourneerde gegevens kunnen numeriek of niet-numeriek zijn.
Argumenten:
Zoekcriterium is een tekenreeks (tussen aanhalingstekens), een getal of een verwijzing naar een cel die één van die typen bevat. Zoekcriterium wordt vergeleken met de inhoud van de cellen in de eerste kolom van Matrix om de rij van belang te bepalen.
Matrix specificeert het celbereik dat wordt ingenomen door de gegevenstabel. Dit bereik kan worden gedefinieerd door de celverwijzing voor de cel linksboven in te voeren, gevolgd door een dubbele punt (:) en vervolgens de celverwijzing rechtsonder (bijvoorbeeld A1:E10). Matrix kan ook worden gespecificeerd door de naam van een benoemd bereik of databasebereik door te geven. Het is ook mogelijk om een inline matrix door te geven als het Matrix argument.
Index is een positief geheel getal of een verwijzing naar een cel die dat getal bevat, die de kolom aangeeft die de gegevens bevat die moeten worden geretourneerd. De eerste kolom heeft het nummer 1. Index mag niet groter zijn dan het aantal kolommen in Matrix.
Gesorteerd bereik zoeken is een Booleaanse / logische waarde (WAAR of ONWAAR) of een verwijzing naar een cel die die waarde bevat, die aangeeft of gegevens in de eerste kolom van Matrix waarvan wordt aangenomen dat die correct zijn gesorteerd (zoals beschreven in het gedeelte #Aanvullende details: hieronder).
- Als Gesorteerd bereik zoeken is ingesteld op 0 of ONWAAR, dan wordt aangenomen dat de gegevens in de eerste kolom van Matrix ongeordend zijn en zoekt VERT.ZOEKEN naar een exacte overeenkomst.
- Als Gesorteerd bereik zoeken wordt of weggelaten, gezet op WAAR of ingesteld op een andere waarde dan 0, dan wordt aangenomen dat de gegevens in de eerste kolom van Matrix zijn geordend en kan VERT.ZOEKEN de best passende overeenkomst geven (of exact of inexact).
De volgende voorwaarden kunnen zich voordoen:
- Als Index niet-numeriek is, dan retourneert VERT.ZOEKEN als fout #WAARDE!
- Als Index een niet-gehele waarde is, wordt deze door VERT.ZOEKEN afgekapt tot een geheel getal.
- Als, na afkapping, Index kleiner is dan 1 of groter is dan het aantal kolommen in Matrix, retourneert VERT.ZOEKEN als fout Ongeldig argument (Fout:502).
- Als Gesorteerd bereik zoeken WAAR is, maar de cellen in de eerste kolom van de gegevenstabel niet zijn geordend zoals verwacht, dan is het resultaat dat wordt geretourneerd door VERT.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 Gesorteerd bereik zoeken ONWAAR is en er geen exacte overeenkomst met Zoekcriterium kan worden gevonden in de gegevenstabel, dan retourneert VERT.ZOEKEN als fout #N/B (waarde niet beschikbaar).
- Als Gesorteerd bereik zoeken WAAR is en het argument Zoekcriterium voorafgaat aan de eerste cel in de eerste kolom van de gegevenstabel, dan retourneert VERT.ZOEKEN als fout #N/B (waarde niet beschikbaar).
Aanvullende details:
Details specifiek voor de functie VERT.ZOEKEN
- Als Gesorteerd bereik zoeken ONWAAR is en de eerste kolom van de tabel meerdere cellen met dezelfde inhoud bevat, komt VERT.ZOEKEN alleen overeen met de bovenste cel van de cellen die gemeenschappelijke inhoud delen.
- Als Gesorteerd bereik opzoeken WAAR, wordt verwacht dat de eerste kolom van de gegevenstabel is gesorteerd, waarbij getallen in oplopende volgorde in alfabetische volgorde vóór tekstwaarden worden weergegeven. Als de eerste kolom van de gegevenstabel niet echt is gesorteerd zoals verwacht, is het resultaat onvoorspelbaar. VERT.ZOEKEN berekent waar in de eerste kolom Zoekcriterium zou verschijnen in de (verwachte) gesorteerde volgorde.
- Als er een exacte overeenkomst is tussen Zoekcriterium en één van de items in de eerste kolom, wordt die rij gebruikt om de retourwaarde te bepalen.
- Als er geen exacte overeenkomst is tussen Zoekcriterium en één van de items in de eerste kolom, wordt de rij er direct voor gebruikt waar Zoekcriterium in de eerste kolom zou verschijnen.
- Als Reguliere expressies in formules toestaan is ingeschakeld in het gedeelteFormules-jokertekens van het venster ▸ ▸ ▸ (of ▸ ▸ ▸ op macOS), dan zal VERT.ZOEKEN exacte overeenkomsten vinden die Zoekcriterium behandelen als een reguliere expressie. Dit heeft alleen zin als Gesorteerd bereik zoeken ONWAAR is.
- Als Jokertekens in formules inschakelen is ingeschakeld in het gedeelte Formules-jokertekens van het venster ▸ ▸ ▸ (of ▸ ▸ ▸ op macOS) , dan zal VERT.ZOEKEN exacte overeenkomsten vinden die Zoekcriterium als een jokertekenuitdrukking behandelen. Dit heeft alleen zin als Gesorteerd bereik zoeken ONWAAR is.
- Als de optie Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn is aangevinkt in het gedeelte Algemene berekeningen van het venster ▸ ▸ ▸ (of ▸ ▸ ▸ 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 ▸ ▸ ▸ (of ▸ ▸ ▸ op macOS) heeft geen effect op de werking van VERT.ZOEKEN. Standaard is VERT.ZOEKEN niet hoofdlettergevoelig, tenzij een hoofdlettergevoelige zoekopdracht wordt opgelegd door een specifieke reguliere expressie.
Algemene informatie over de reguliere expressies van Calc
- 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.
- Bovendien biedt het LibreOffice Help-systeem een lijst met reguliere expressies op hoog niveau.
- 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
▸ ▸ ▸ 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.
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 is een realistisch voorbeeld van een ongesorteerde tabel, met gegevens uit het periodiek systeem van de chemische elementen.
A | B | C | D | |
---|---|---|---|---|
1 | Element | Symbool | Atoomgetal | Relatieve atoommassa |
2 | Waterstof | H | 1 | 1,008 |
3 | Helium | He | 2 | 4,003 |
4 | Lithium | Li | 3 | 6,94 |
5 | Beryllium | Be | 4 | 9,012 |
6 | Borium | B | 5 | 10,81 |
7 | Koolstof | C | 6 | 12,011 |
8 | Stikstof | N | 7 | 14,007 |
9 | Zuurstof | O | 8 | 15,999 |
10 | Fluor | F | 9 | 18,998 |
11 | Neon | Ne | 10 | 20,18 |
De volgende voorbeelden gebruiken de bovenstaande gegevenstabel. In de meeste gevallen is het argument Gesorteerd bereik zoeken ingesteld op 0 (ONWAAR), zodat VERT.ZOEKEN naar een exacte overeenkomst zoekt in de ongesorteerde tabel.
Formule | Beschrijving | Retourneert |
---|---|---|
=VERT.ZOEKEN("Helium"; $A$2:$D$11; 2; 0) |
De functie komt overeen met de tekenreeks "Helium" in de eerste kolom van de gegevenstabel (cel A3) en retourneert de gegevens van de cel op de kruising van deze rij en de tweede kolom van de tabel (cel B3). Het symbool voor helium wordt geretourneerd. |
He |
=VERT.ZOEKEN("KOOLSTOF"; $A$2:$D$11; 3; 0) |
De functie komt overeen met de tekenreeks "Koolstof" in de eerste kolom van de gegevenstabel (cel A7) en retourneert de gegevens van de cel op het snijpunt van deze rij en de derde kolom van de tabel (cel C7). Het atoomgetal voor koolstof wordt teruggegeven. |
6 |
=VERT.ZOEKEN("zuurstof"; $A$2:$D$11; 4,6; 0) |
De functie komt overeen met de tekenreeks "Zuurstof" in de eerste kolom van de gegevenstabel (cel A9) en retourneert de gegevens van de cel op de kruising van deze rij en de vierde kolom van de tabel (cel D9) - de Index waarde van 4,6 wordt afgekapt tot 4. De relatieve atoommassa van zuurstof wordt teruggegeven. |
15,999 |
=VERT.ZOEKEN("Neon"; $A$2:$D$11; 2; WAAR()) |
Dit voorbeeld toont de verwarring die kan ontstaan als het argument Gesorteerd bereik zoeken is ingesteld of standaard is ingesteld op WAAR, wanneer de gegevenstabel niet in de verwachte volgorde is gesorteerd. Deze formule retourneert de (onvoorspelbare) tekst "C", terwijl "Ne" zou worden verwacht. |
C |
=VERT.ZOEKEN("^bo.*"; $A$2:$D$11; 4; 0)
|
De functie komt overeen met de reguliere expressie "^bo.*" in de eerste kolom van de gegevenstabel (cel A6) en retourneert de gegevens van de cel op het snijpunt van deze rij en de vierde kolom van de tabel (cel D6). De relatieve atoommassa van borium wordt teruggegeven. |
10,81 |
=VERT.ZOEKEN("sti*"; $A$2:$D$11; 4; 0)
|
De functie komt overeen met de jokertekenuitdrukking "sti*" in de eerste kolom van de gegevenstabel (cel A8) en retourneert de gegevens van de cel op het snijpunt van deze rij en de vierde kolom van de tabel (cel D8). De relatieve atoommassa van stikstof wordt teruggegeven. |
14,007 |
De volgende tabel toont verkoopgegevens voor een klein bedrijf. Vier kolommen (kop 1 t/m 4) tonen de totale omzet in elk kwartaal van het jaar en de naam van de best presterende verkoper in dat kwartaal. Vier kolommen (met de kop E_reg, N_reg, S_reg en W_reg) tonen de totale verkoop in elke regio voor het jaar en de naam van de best presterende verkoper in die regio in dat jaar. De gegevens in de eerste kolom zijn in de voorgeschreven volgorde gesorteerd en daarom specificeren de volgende voorbeelden geen waarde voor het argument Gesorteerd bereik zoeken, waarbij VERT.ZOEKEN de standaardwaarde WAAR toepast.
A | B | C | |
---|---|---|---|
1 | Categorie | Totaal verkopen | Topverkoper |
2 | 1 | $27.094 | Samuel |
3 | 2 | $96.516 | Aaron |
4 | 3 | $82.485 | Pippa |
5 | 4 | $48.487 | Ollie |
6 | E_reg | $99.908 | Lillian |
7 | N_reg | $83.535 | George |
8 | S_reg | $46.553 | Zara |
9 | W_reg | $24.586 | Kristina |
Formule | Beschrijving | Retourneert |
---|---|---|
=VERT.ZOEKEN(0; $A$2:$C$9; 2) |
De functie probeert het getal 0 in de eerste kolom van de gegevenstabel te vergelijken, maar aangezien 0 kleiner is dan het eerste getal (1) in de kolom, retourneert de formule de fout #N/B. |
#N/B |
=VERT.ZOEKEN(2,5; $A$2:$C$9; 2) |
De functie probeert het getal 2,5 in de eerste kolom van de gegevenstabel te vergelijken. Aangezien 2,5 groter is dan 2 en kleiner dan 3, gebruikt VERT.ZOEKEN rij 3. De formule retourneert de gegevens van de cel op het snijpunt van deze rij en de tweede kolom van de tabel (cel B3). De totale omzet voor het tweede kwartaal wordt teruggegeven. |
96516 |
=VERT.ZOEKEN(3; $A$2:$C$9; 2) |
De functie komt overeen met het getal 3 in de eerste kolom van de gegevenstabel (cel A4) en retourneert de gegevens van de cel op het snijpunt van deze rij en de tweede kolom van de tabel (cel B4).
De totale omzet voor het derde kwartaal wordt teruggegeven.
Merk op dat de formule |
82485 |
=VERT.ZOEKEN(123; $A$2:$C$9; 2) |
De functie probeert het getal 123 in de eerste kolom van de gegevenstabel te matchen. Aangezien 123 groter is dan de (andere) aanwezige getallen, gebruikt VERT.ZOEKEN rij 5. De formule retourneert de gegevens van de cel op het snijpunt van deze rij en de tweede kolom van de tabel (cel B5). De totale omzet voor het vierde kwartaal wordt teruggegeven. |
48487 |
=VERT.ZOEKEN("C_reg"; $A$2:$C$9; 3) |
De functie probeert de tekenreeks "C_reg" in de eerste kolom van de gegevenstabel te matchen, maar aangezien "C_reg" alfabetisch voor de eerste tekst ("E_reg") in de kolom staat, rapporteert de formule de fout #N/B. |
#N/B |
=VERT.ZOEKEN("F_reg"; $A$2:$C$9; 3) |
De functie probeert de tekenreeks "F_reg" in de eerste kolom van de gegevenstabel te matchen. Aangezien "F_reg" alfabetisch achter "E_reg" staat maar vóór "N_reg", gebruikt VERT.ZOEKEN rij 6. De formule retourneert de gegevens van de cel op het snijpunt van deze rij en de derde kolom van de tabel (cel C6). De topverkoper voor de regio "E_reg" wordt geretourneerd. |
Lillian |
=VERT.ZOEKEN("S_reg"; $A$2:$C$9; 3) |
De functie komt overeen met de tekenreeks "S_reg" in de eerste kolom van de gegevenstabel (cel A8) en retourneert de gegevens van de cel op de kruising van deze rij en de derde kolom van de tabel (cel C8). De topverkoper voor de regio "S_reg" wordt geretourneerd. |
Zara |
=VERT.ZOEKEN("Zundert"; $A$2:$C$9; 3) |
De functie probeert de string "Zundert" in de eerste kolom van de gegevenstabel te matchen. Aangezien "Zundert" alfabetisch achter de andere aanwezige tekenreeksen staat, gebruikt VERT.ZOEKEN de waarde die het laatste in de lijst staat (rij 9). De formule retourneert de gegevens van de cel op het snijpunt van deze rij en de derde kolom van de tabel (cel C9). De topverkoper voor de regio "W_reg" wordt geretourneerd. |
Kristina |
Het laatste voorbeeld is opgenomen om aan te tonen dat het argument Matrix de vorm kan aannemen van een inline matrix. In dit geval wordt een punt gebruikt als het matrix-kolomscheidingsteken, terwijl een puntkomma wordt gebruikt als het array-rijscheidingsteken. Deze matrix-scheidingstekens kunnen worden gewijzigd via het gedeelte Scheidingstekens in het venster
▸ ▸ ▸ (of ▸ ▸ ▸ op macOS ).Formule | Beschrijving | Retourneert |
---|---|---|
=VERT.ZOEKEN(5; {1, "Maandag"; 2, "Dinsdag"; 3, "Woensdag"; 4, "Donderdag"; 5, "Vrijdag"; 6, "Zaterdag"; 7, "Zondag"}; 2) |
De functie komt overeen met het getal 5 in de eerste kolom van de array en retourneert de gegevens van de cel op de kruising van deze rij en de tweede kolom van de array. |
Vrijdag |
Gerelateerde LibreOffice-functies:
ODF standaard:
Gerelateerde (of gelijkwaardige) Excel-functies:
VLOOKUP