Beschikbaar in:Excel 2021 of nieuwer (Werkt in Excel 2021, elke latere versie, Microsoft 365 en Excel voor het web)Categorie:Zoeken en verwijzen

X.ZOEKEN

XLOOKUP in Engelstalige Excel

Zoek een waarde in de ene lijst en haal het bijbehorende gegeven uit de andere.

Moeilijkheidsgraad 3 van 5. De drie verplichte argumenten zijn snel te leren; de drie optionele bepalen hoe X.ZOEKEN zoekt, en die zet je pas na wat oefening met zekerheid in.

Laatst bijgewerkt: 23 oktober 2026

Bekijk de uitgewerkte voorbeelden

Fragment van het werkblad: in D2 staat de formule
RijABCD
1FactuurKlantTe zoeken factuurGevonden klant
21023110231Visser Bouw1023310233De Wit BV=X.ZOEKEN(C2, A2:A5, B2:B5)=X.ZOEKEN(C2; A2:A5; B2:B5)
31023210232Jansen BV
41023310233De Wit BV
51023410234Bakker Metaal
Formulecel (D2)Invoer

Resultaat: De Wit BV

=X.ZOEKEN(C2, A2:A5, B2:B5)
=X.ZOEKEN(C2; A2:A5; B2:B5)

Wat X.ZOEKEN doet en wanneer je het gebruikt

Wat het doet: het zoekt een waarde op in één kolom of rij en geeft de bijbehorende waarde uit een andere kolom of rij terug, bijvoorbeeld de klant bij een factuurnummer.

Wanneer je het gebruikt: telkens als je iets in een tabel opzoekt. Het vervangt VERT.ZOEKEN, HORIZ.ZOEKEN en de meeste combinaties van INDEX en VERGELIJKEN.

De drie grootste voordelen:

  • Elke richting: de antwoordkolom mag links of rechts van de zoekkolom staan, en je wijst hem aan in plaats van kolommen te tellen.
  • Standaard exact: geen ONWAAR om te vergeten, en een ingevoegde kolom in de tabel breekt de formule niet.
  • Eigen tekst bij niets gevonden: met indien_niet_gevonden toon je je eigen melding in plaats van #N/B, zonder ALS.FOUT.

X.ZOEKEN of VERT.ZOEKEN?

Vergelijk met VERT.ZOEKEN
  • VERT.ZOEKEN: je telt de kolom
    =VERT.ZOEKEN(E2, $A$2:$C$6, 3, ONWAAR)
    =VERT.ZOEKEN(E2; $A$2:$C$6; 3; ONWAAR)
  • X.ZOEKEN: je wijst de kolom aan
    =X.ZOEKEN(E2, $A$2:$A$6, $C$2:$C$6)
    =X.ZOEKEN(E2; $A$2:$A$6; $C$2:$C$6)
Zo worden de argumenten van VERT.ZOEKEN argumenten van X.ZOEKEN
  • kolomindex_getal (de 3) wordt matrix_retourneren: je wijst $C$2:$C$6 aan in plaats van kolommen te tellen.
  • benaderen ONWAAR (exact) wordt overeenkomstmodus 0, de standaardwaarde, dus je kunt het weglaten.
  • benaderen WAAR (bij benadering) wordt overeenkomstmodus -1, en de gegevens hoeven niet gesorteerd te zijn.
  • tabelmatrix krimpt tot zoeken_matrix: alleen de kolom waarin je zoekt.

Collega met Excel 2019 of ouder

Excel 2016 en 2019 hebben geen X.ZOEKEN en tonen #NAAM? zodra het bestand opnieuw rekent. Gaat het bestand naar die versies, houd dan VERT.ZOEKEN of INDEX en VERGELIJKEN aan.

X.ZOEKEN(zoekwaarde, zoeken_matrix, matrix_retourneren, [indien_niet_gevonden], [overeenkomstmodus], [zoekmodus])
X.ZOEKEN(zoekwaarde; zoeken_matrix; matrix_retourneren; [indien_niet_gevonden]; [overeenkomstmodus]; [zoekmodus])
Argumenten
ArgumentSoortBetekenisStandaard
zoekwaardeVerplichtDe waarde waarnaar je zoekt.
zoeken_matrixVerplichtEén kolom of rij waarin je zoekt.
matrix_retournerenVerplichtHet bereik waaruit het antwoord komt.
indien_niet_gevondenOptioneelWat je terugkrijgt als er niets gevonden wordt.#N/B
overeenkomstmodusOptioneelExact, net kleiner, net groter, jokertekens of regex.
  • 0Alleen een exacte treffer telt (standaard)
  • -1Exacte treffer, anders de eerstvolgende kleinere waarde
  • 1Exacte treffer, anders de eerstvolgende grotere waarde
  • 2Jokertekens tellen mee: * is willekeurige tekens, ? is één teken
  • 3De zoekwaarde is een reguliere expressie; hoofdlettergevoelig
0
zoekmodusOptioneelZoekrichting, of binair zoeken (halveren) in gesorteerde gegevens.
  • 1Van boven naar beneden (standaard)
  • -1Van onder naar boven: de laatste treffer
1

Geeft terug:De bijbehorende waarde uit de kolom die je teruggeeft (matrix_retourneren), of je eigen melding als er niets gevonden is.

Formules gebruiken komma's (,) tussen de argumenten, zoals in de Engelse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel; de Engelse Excel gebruikt komma's (,).

Uitgewerkte voorbeelden

Beginner

Een saldo opzoeken in de saldibalans

Je legt je werkpapieren naast de saldibalans van de cliënt en wilt het eindsaldo van de rekeningen 1300, 1800 en 1100 met één formule die je naar drie cellen kopieert.

Fragment van het werkblad: in F2:F4 staat de formule
RijABCDEFG
1RekeningOmschrijvingSaldo 31-12-2025RekeningSaldo
211001100Bank€84,250.50€ 84.250,5013001300€213,400.00€ 213.400,00=X.ZOEKEN(E2, $A$2:$A$6, $C$2:$C$6)=X.ZOEKEN(E2; $A$2:$A$6; $C$2:$C$6)
313001300Debiteuren€213,400.00€ 213.400,0018001800-€28,450.00€ -28.450,00=X.ZOEKEN(E3, $A$2:$A$6, $C$2:$C$6)=X.ZOEKEN(E3; $A$2:$A$6; $C$2:$C$6)
416001600Crediteuren-€156,900.25€ -156.900,2511001100€84,250.50€ 84.250,50=X.ZOEKEN(E4, $A$2:$A$6, $C$2:$C$6)=X.ZOEKEN(E4; $A$2:$A$6; $C$2:$C$6)
518001800Te betalen btw-€28,450.00€ -28.450,00
680008000Omzet-€1,245,000.00€ -1.245.000,00
7
Formulecel (F2:F4)Invoer

Formule in F2

=X.ZOEKEN(E2, $A$2:$A$6, $C$2:$C$6)
=X.ZOEKEN(E2; $A$2:$A$6; $C$2:$C$6)

Resultaat: €213,400.00€ 213.400,00

Stap voor stap
  1. In E2 staat 1300. De $-tekens zetten $A$2:$A$6 en $C$2:$C$6 vast, zodat de bereiken niet meeschuiven als je kopieert.
  2. Excel loopt $A$2:$A$6 van boven af langs: 1100, nee; 1300, ja, in de tweede cel, A3.
  3. Excel geeft de tweede cel van $C$2:$C$6 terug, dat is C3: €213,400.00€ 213.400,00 in F2.
  4. Kopieer F2 naar F4. Alleen de zoekcel schuift mee: 1800 geeft -€28,450.00€ -28.450,00 en 1100 geeft €84,250.50€ 84.250,50.

Let op: Laat je de $-tekens weg, dan schuiven de bereiken mee bij het kopiëren: F4 zoekt in A4:A8 in plaats van A2:A6, waar rekening 1100 niet meer in staat, en geeft dus #N/B.

Halfgevorderd

Ontbrekende factuur in het subgrootboek

Je test of geboekte facturen in het subgrootboek debiteuren staan. Een ontbrekende factuur toont “Geen treffer” in plaats van #N/B, zodat je die kunt nalopen.

Fragment van het werkblad: in F2:F3 staat de formule
RijABCDEFG
1Factuurnr.DebiteurOpenstaandFactuurnr.Openstaand
2F-25-0391Hoekstra Bouw BV€12,100.00€ 12.100,00F-25-0394€8,750.00€ 8.750,00=X.ZOEKEN(E2, $A$2:$A$6, $C$2:$C$6, "Geen treffer")=X.ZOEKEN(E2; $A$2:$A$6; $C$2:$C$6; "Geen treffer")
3F-25-0392Smit Handel BV€4,235.50€ 4.235,50F-25-0398Geen treffer=X.ZOEKEN(E3, $A$2:$A$6, $C$2:$C$6, "Geen treffer")=X.ZOEKEN(E3; $A$2:$A$6; $C$2:$C$6; "Geen treffer")
4F-25-0394Van Dijk BV€8,750.00€ 8.750,00
5F-25-0395Hoekstra Bouw BV€3,025.00€ 3.025,00
6F-25-0397De Boer BV€15,640.25€ 15.640,25
7
Formulecel (F2:F3)Invoer

Formule in F2

=X.ZOEKEN(E2, $A$2:$A$6, $C$2:$C$6, "Geen treffer")
=X.ZOEKEN(E2; $A$2:$A$6; $C$2:$C$6; "Geen treffer")

Resultaat: €8,750.00€ 8.750,00

Stap voor stap
  1. In E2 staat F-25-0394. Excel vindt dat in de derde cel van $A$2:$A$6, A4.
  2. Excel geeft de derde cel van $C$2:$C$6 terug: €8,750.00€ 8.750,00 in F2.
  3. Kopieer F2 naar beneden. In E3 staat F-25-0398, en geen van de vijf factuurnummers komt overeen.
  4. Het vierde argument is ingevuld, dus F3 toont de tekst Geen treffer in plaats van #N/B.

Let op: De melding is tekst: SOM negeert die, maar een berekening met + geeft #WAARDE!. Voedt de kolom een berekening, geef dan 0 terug.

Meer over dit voorbeeld: waarom het werkt, 2 varianten

Waarom het werkt

Een echt probleem zoals #VERW! blijft zichtbaar, want indien_niet_gevonden vangt alleen een ontbrekende waarde op.

Varianten

=X.ZOEKEN(E2, $A$2:$A$6, $B$2:$C$6, "Geen treffer")
=X.ZOEKEN(E2; $A$2:$A$6; $B$2:$C$6; "Geen treffer")

Met een matrix_retourneren van twee kolommen geeft één formule de debiteur en het bedrag terug, in F2:G2.

=X.ZOEKEN(1, (B2:B6="Hoekstra Bouw BV")*(C2:C6=3025), A2:A6)
=X.ZOEKEN(1; (B2:B6="Hoekstra Bouw BV")*(C2:C6=3025); A2:A6)

Twee voorwaarden: door WAAR/ONWAAR te vermenigvuldigen houd je alleen een 1 over waar beide gelden. Het resultaat is F-25-0395.

Gevorderd

Opzoeken in rij en kolom op rekening en periode

Een overzicht uit de XAF-auditfile (het standaard auditbestand uit Nederlandse boekhoudsoftware) zet de rekeningen onder elkaar en periode 10 tot en met 12 naast elkaar, en één cel geeft de mutatie voor de gekozen rekening en periode.

Fragment van het werkblad: in G3 staat de formule
RijABCDEFGH
1RekeningP10P11P12Rekening45004500
211001100€48,100.00€ 48.100,00€61,250.00€ 61.250,00€70,300.00€ 70.300,00PeriodeP12
340004000€38,200.00€ 38.200,00€38,900.00€ 38.900,00€54,600.00€ 54.600,00Mutatie€18,750.00€ 18.750,00=X.ZOEKEN(G1, A2:A5, X.ZOEKEN(G2, B1:D1, B2:D5))=X.ZOEKEN(G1; A2:A5; X.ZOEKEN(G2; B1:D1; B2:D5))
445004500€12,500.00€ 12.500,00€12,500.00€ 12.500,00€18,750.00€ 18.750,00
580008000€91,900.00€ 91.900,00€88,300.00€ 88.300,00€98,800.00€ 98.800,00
6
Formulecel (G3)Invoer

Formule in G3

=X.ZOEKEN(G1, A2:A5, X.ZOEKEN(G2, B1:D1, B2:D5))
=X.ZOEKEN(G1; A2:A5; X.ZOEKEN(G2; B1:D1; B2:D5))

Resultaat: €18,750.00€ 18.750,00

Stap voor stap
  1. De binnenste X.ZOEKEN rekent eerst: die vindt G2 (P12) in de koprij B1:D1, in de derde cel, en geeft de derde kolom van B2:D5 terug: D2:D5.
  2. Die kolom is de matrix_retourneren van de buitenste X.ZOEKEN. Die vindt G1 (4500) in A2:A5, in de derde cel, A4.
  3. X.ZOEKEN geeft de derde cel van D2:D5 terug, dat is D4: €18,750.00€ 18.750,00.
  4. Zet G1 op 1100 en G2 op P10, en dezelfde formule geeft €48,100.00€ 48.100,00.

Let op: De periodekoppen zijn hier tekst (P10 tot en met P12), dus G2 moet de tekst P12 bevatten. Geeft een export de perioden als getallen (12), typ dan ook in G2 het getal 12: een getal vindt nooit dezelfde cijfers die als tekst zijn opgeslagen.

Meer over dit voorbeeld: nog 2 valkuilen, 2 varianten

Meer om op te letten

  • Typen mensen de invoer met de hand, geef de buitenste X.ZOEKEN dan een indien_niet_gevonden mee, anders geeft een typefout #N/B.
  • Overeenkomstmodus 3 (de regex-variant hieronder) werkt alleen in Microsoft 365. In Excel 2021 of 2024 geeft dezelfde formule #WAARDE!, dus houd je in bestanden die naar die versies gaan bij exact zoeken.

Varianten

=X.ZOEKEN(G2, B1:D1, X.ZOEKEN(G1, A2:A5, B2:D5))
=X.ZOEKEN(G2; B1:D1; X.ZOEKEN(G1; A2:A5; B2:D5))

Nest andersom: zoek eerst de rij van de rekening op en kies daar de periode uit.

=X.ZOEKEN("^P1[12]$", B1:D1, X.ZOEKEN(G1, A2:A5, B2:D5), "Geen periode", 3, -1)
=X.ZOEKEN("^P1[12]$"; B1:D1; X.ZOEKEN(G1; A2:A5; B2:D5); "Geen periode"; 3; -1)

Zoek de periode op patroon in plaats van op naam (Microsoft 365). ^P1[12]$ past op P11 en P12 en op niets anders: ^ en $ leggen het patroon vast op de hele kop, en [12] is één cijfer, 1 of 2. Met zoekmodus -1 zoekt X.ZOEKEN van rechts naar links, dus de laatste treffer wint: P12. Bij rekening 4500 geeft de formule €18,750.00€ 18.750,00.

Expert

Laatste ontvangst van een klant op naampatroon (overeenkomstmodus 3)

Op het bankafschrift van Veldhuis Installatie BV staat klant Brouwer Klimaat BV in de vrije tekst in verschillende schrijfwijzen: "SEPA Brouwer Klimaat BV", "BROUWER KLIM. BV" en "brouwer klimaat b.v.". Het afschrift staat op datumvolgorde en je wilt de datum en het bedrag van de laatste ontvangst voor een cut-offcontrole. Een ander bedrijf, Brouwer Klimaatgroep NV, staat op hetzelfde afschrift en mag niet meekomen.

Fragment van het werkblad: in E3 staat de formule
RijABCDEFG
1OmschrijvingDatumBedragNaamdeelBrouwer
2SEPA Brouwer Klimaat BV14-01-2026€4,250.00€ 4.250,00WoordKlimaat
3Kuipers Dakwerken BV21-01-2026€3,300.00€ 3.300,00Laatste09-03-2026=LET( naamdeel, E1, bedrijfswoord, E2, patroon, "(?i)\b" & naamdeel & "[ .]*" & LINKS(bedrijfswoord, 4) & "[a-z.]*[ .]*b\.?v\b", X.ZOEKEN(patroon, $A$2:$A$9, $B$2:$C$9, "Geen ontvangst", 3, -1) )=LET( naamdeel; E1; bedrijfswoord; E2; patroon; "(?i)\b" & naamdeel & "[ .]*" & LINKS(bedrijfswoord; 4) & "[a-z.]*[ .]*b\.?v\b"; X.ZOEKEN(patroon; $A$2:$A$9; $B$2:$C$9; "Geen ontvangst"; 3; -1) )€5,775.00€ 5.775,00
4BROUWER KLIM. BV06-02-2026€6,120.50€ 6.120,50
5Willems Elektra VOF19-02-2026€2,480.00€ 2.480,00
6brouwer klimaat b.v. deelbetaling09-03-2026€5,775.00€ 5.775,00
7Brouwer Klimaatgroep NV24-03-2026€9,200.00€ 9.200,00
8Peters Tegelwerk BV27-03-2026€1,945.25€ 1.945,25
9Scholten Staalbouw BV30-03-2026€7,060.00€ 7.060,00
10
Formulecel (E3)InvoerOverloopresultaat

Formule in E3

=LET(
  naamdeel, E1,
  bedrijfswoord, E2,
  patroon, "(?i)\b" & naamdeel & "[ .]*" & LINKS(bedrijfswoord, 4) & "[a-z.]*[ .]*b\.?v\b",
  X.ZOEKEN(patroon, $A$2:$A$9, $B$2:$C$9, "Geen ontvangst", 3, -1)
)
=LET(
  naamdeel; E1;
  bedrijfswoord; E2;
  patroon; "(?i)\b" & naamdeel & "[ .]*" & LINKS(bedrijfswoord; 4) & "[a-z.]*[ .]*b\.?v\b";
  X.ZOEKEN(patroon; $A$2:$A$9; $B$2:$C$9; "Geen ontvangst"; 3; -1)
)

Resultaat: 09-03-2026 | €5,775.0009-03-2026 | € 5.775,00

Stap voor stap
  1. LET leest paren van een naam en een waarde: naamdeel wordt Brouwer (uit E1) en bedrijfswoord wordt Klimaat (uit E2). Er wordt nog niets gezocht.
  2. patroon wordt samengesteld uit cellen en vaste delen: (?i)\bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b. LINKS(bedrijfswoord; 4) geeft Klim, dat zowel KLIM. als klimaat dekt.
  3. Lees het patroon van links naar rechts. (?i) negeert hoofdletters. \b is een woordgrens, dus Brouwer moet aan het begin van een woord staan. [ .]* is een willekeurig aantal spaties en punten, ook nul. [a-z.]* maakt het woord Klim af. b\.?v zijn de letters b en v met eventueel een punt ertussen. De laatste \b laat de v aan het eind van een woord staan.
  4. Overeenkomstmodus 3 leest de zoekwaarde als regex en toetst elke cel van $A$2:$A$9 op een treffer ergens in de tekst. Hier is geen ^ of $ nodig, omdat de naam in een langere omschrijving staat. Zoekmodus -1 begint onderaan, bij A9, en loopt omhoog.
  5. A9 (Scholten Staalbouw) en A8 (Peters Tegelwerk) bevatten geen Brouwer. A7 is Brouwer Klimaatgroep NV: Brouwer en Klim passen, aatgroep past in [a-z.]*, maar dan eist het patroon een b en staat er NV. Geen treffer, zo blijft het andere bedrijf buiten beeld. A6 is brouwer klimaat b.v. deelbetaling: brouwer, een spatie, klimaat, een spatie en b.v, gevolgd door een punt, en dat is een woordgrens na de v. Eerste treffer van onderaf: A6.
  6. X.ZOEKEN geeft de vijfde rij van $B$2:$C$9 terug, twee kolommen breed: B6 is 9 maart 2026 en C6 is €5,775.00€ 5.775,00. Het resultaat loopt over in E3:F3.
  7. De twee eerdere ontvangsten passen ook (A2, €4,250.00€ 4.250,00 en A4, €6,120.50€ 6.120,50), maar zoekmodus -1 stopt bij de laatste. Zet E1 op Peters en E2 op Tegelwerk en dezelfde formule geeft 27 maart 2026 en €1,945.25€ 1.945,25. Een naam zonder ontvangst toont Geen ontvangst.

Let op: Een te ruim patroon geeft een verkeerd antwoord zonder foutmelding. (?i)Brouwer alleen past ook op A7, dus de formule geeft 24 maart 2026 en €9,200.00€ 9.200,00 van Brouwer Klimaatgroep NV. Modus 3 toetst overal in de cel, dus \b en de rechtsvorm zorgen voor de precisie. Jokerteken-modus 2 met *Brouwer* maakt dezelfde fout en kan de rechtsvorm helemaal niet uitdrukken.

Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 3 varianten

Waarom het werkt

De naam staat niet als exacte waarde op het afschrift, maar in een reeks schrijfwijzen, en een patroon beschrijft die reeks: hoofdletters, optionele punten en spaties, een afgekort tweede woord en de rechtsvorm. Door het patroon in LET uit twee cellen op te bouwen kun je het voor elke klant hergebruiken, en de rechtsvorm in het patroon houden scheidt Brouwer Klimaat BV van Brouwer Klimaatgroep NV. "Laatste" betekent de onderste rij, dus het afschrift moet op datum staan; is dat niet zo, sorteer het dan eerst, anders krijg je de onderste rij en niet de nieuwste datum.

Gebruik overeenkomstmodus 3 niet als het bankbestand een betrouwbare klant- of IBAN-kolom heeft: een exacte X.ZOEKEN op die sleutel kan een schrijfwijze niet verkeerd lezen. Modus 3 toetst bovendien elke cel met de regex-engine en kan niet binair zoeken, dus op een afschrift van 100,000100.000 regels is het trager. Het alternatief is een hulpkolom die de omschrijving eenmalig normaliseert (bijvoorbeeld met REGEXREPLACE) met daarna een exacte zoekopdracht: een kolom extra, maar elke stap is te controleren en het opzoeken blijft snel.

Meer om op te letten

  • Modus 3 is hoofdlettergevoelig, tenzij het patroon met (?i) begint. Zonder dat past het patroon \bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b op geen van de drie ontvangsten (de b van BV en BROUWER zijn hoofdletters) en toont de cel Geen ontvangst, terwijl het geld wel binnen is.
  • Overeenkomstmodus 3 werkt alleen in Microsoft 365. In Excel 2021 of 2024 geeft dezelfde formule #WAARDE!, dus gebruik de VIND.SPEC-variant hieronder in bestanden die naar die versies gaan.

Varianten

=X.ZOEKEN("(?i)\bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b", $A$2:$A$9, $B$2:$C$9, "Geen ontvangst", 3)
=X.ZOEKEN("(?i)\bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b"; $A$2:$A$9; $B$2:$C$9; "Geen ontvangst"; 3)

Laat zoekmodus weg (of gebruik 1) en de eerste ontvangst wint: 14 januari 2026 en €4,250.00€ 4.250,00 uit A2.

=X.ZOEKEN(WAAR, REGEXTEST($A$2:$A$9, "\bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b", 1), $B$2:$C$9, "Geen ontvangst", 0, -1)
=X.ZOEKEN(WAAR; REGEXTEST($A$2:$A$9; "\bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b"; 1); $B$2:$C$9; "Geen ontvangst"; 0; -1)

Hetzelfde resultaat zonder overeenkomstmodus 3: REGEXTEST (ook alleen Microsoft 365) geeft per regel WAAR of ONWAAR, met case_sensitivity 1 in plaats van (?i). Gebruik dit als je een tweede voorwaarde wilt meevermenigvuldigen, bijvoorbeeld (C2:C9>5000).

=X.ZOEKEN(1, --ISGETAL(VIND.SPEC("brouwer*klim*b*v", $A$2:$A$9)), $B$2:$C$9, "Geen ontvangst", 0, -1)
=X.ZOEKEN(1; --ISGETAL(VIND.SPEC("brouwer*klim*b*v"; $A$2:$A$9)); $B$2:$C$9; "Geen ontvangst"; 0; -1)

Terugvaloptie voor Excel 2021 en 2024: VIND.SPEC negeert hoofdletters en kent *, en geeft hier dezelfde rij. Er is geen woordgrens en geen optionele punt, dus Brouwer Klimaat Beheer BV zou ook passen. Neem dat voor lief of voeg een hulpkolom toe.

Modusverkenner

Typ een zoekwaarde, kies waar X.ZOEKEN zoekt en wat het teruggeeft, kies een overeenkomstmodus en een zoekmodus en zie op welke rij het uitkomt.

Fragment van het werkblad: in E2 staat de formule
RijABCDE
1ReferentieBedragDagen openResultaat
2CN-0412-€1,200.00€ -1.200,00120120INV-1003=X.ZOEKEN("x", $B$2:$B$8, $A$2:$A$8, "Geen treffer", 0, 1)=X.ZOEKEN("x"; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 0; 1)
3INV-1001€450.00€ 450,009595
4INV-1002€450.00€ 450,006464
5INV-1003€1,800.00€ 1.800,004141
6INV-1004€3,250.00€ 3.250,002727
7INV-1005€7,500.00€ 7.500,001212
8INV-1006€12,000.00€ 12.000,0055
Formulecel (E2)
  • Formulecel
  • Waar het zoeken uitkomt
  • Wat het teruggeeft

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 0, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 0; 1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 0, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 0; -1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", -1, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; -1; 1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", -1, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; -1; -1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 1, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 1; 1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 1, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 1; -1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 2, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 2; 1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 2, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 2; -1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 3, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 3; 1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $A$2:$A$8, "Geen treffer", 3, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $A$2:$A$8; "Geen treffer"; 3; -1)

Resultaat: INV-1003

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 0, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 0; 1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 0, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 0; -1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", -1, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; -1; 1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", -1, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; -1; -1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 1, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 1; 1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 1, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 1; -1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 2, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 2; 1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 2, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 2; -1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 3, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 3; 1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $B$2:$B$8, "Geen treffer", 3, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $B$2:$B$8; "Geen treffer"; 3; -1)

Resultaat: 18001800

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 0, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 0; 1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 0, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 0; -1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", -1, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; -1; 1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", -1, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; -1; -1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 1, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 1; 1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 1, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 1; -1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 2, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 2; 1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 2, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 2; -1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 3, 1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 3; 1)

Resultaat: 4141

=X.ZOEKEN(1800, $B$2:$B$8, $C$2:$C$8, "Geen treffer", 3, -1)
=X.ZOEKEN(1800; $B$2:$B$8; $C$2:$C$8; "Geen treffer"; 3; -1)

Resultaat: 4141

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 0, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 0; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 0, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 0; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", -1, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; -1; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", -1, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; -1; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 1, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 1; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 1, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 1; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 2, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 2; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 2, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 2; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 3, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 3; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $A$2:$A$8, "Geen treffer", 3, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $A$2:$A$8; "Geen treffer"; 3; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 0, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 0; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 0, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 0; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", -1, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; -1; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", -1, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; -1; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 1, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 1; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 1, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 1; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 2, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 2; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 2, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 2; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 3, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 3; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $B$2:$B$8, "Geen treffer", 3, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $B$2:$B$8; "Geen treffer"; 3; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 0, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 0; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 0, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 0; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", -1, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; -1; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", -1, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; -1; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 1, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 1; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 1, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 1; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 2, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 2; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 2, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 2; -1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 3, 1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 3; 1)

Resultaat: Geen treffer

=X.ZOEKEN(1800, $A$2:$A$8, $C$2:$C$8, "Geen treffer", 3, -1)
=X.ZOEKEN(1800; $A$2:$A$8; $C$2:$C$8; "Geen treffer"; 3; -1)

Resultaat: Geen treffer

Veelgemaakte fouten

Veelgemaakte fouten
SymptoomOorzaakOplossing
#N/B terwijl de waarde in de lijst staatDe zoekwaarde heeft een spatie aan het eind, of is tekst terwijl de lijst getallen bevat (of andersom).Bevat de lijst getallen, gebruik dan WAARDE(SPATIES.WISSEN(E2)): dat haalt de spaties weg en maakt van de tekst een getal. Bevat de lijst tekst, dan is SPATIES.WISSEN(E2) genoeg.
#WAARDE! in het resultaatzoeken_matrix en matrix_retourneren zijn niet even hoog, of zoeken_matrix is meer dan één kolom breed.Selecteer in beide dezelfde rijen, bijvoorbeeld A2:A50 en C2:C50, niet C2:C51. Klik in de formule en druk op F2: Excel omlijnt beide bereiken, zodat je een verschil in hoogte meteen ziet.
#OVERLOPEN! in plaats van het resultaatHet antwoord heeft meerdere kolommen of rijen, en een cel waar het in moet komen is niet leeg.Maak de cellen naast de formule leeg, of kies voor matrix_retourneren één kolom.
Een factuur van 75 dagen krijgt het tarief van 91 dagenovereenkomstmodus is 1, dus de eerstvolgende grotere klasse, in plaats van -1.Gebruik -1 voor klassen die “vanaf deze waarde” gelden, en test met een waarde tussen twee klassen.
Een verkeerde rij of #N/B met zoekmodus 2 of -2Binair zoeken vertrouwt op de sortering (oplopend bij 2, aflopend bij -2), en de lijst is niet meer gesorteerd, bijvoorbeeld omdat er onderaan rijen zijn bijgekomen.Sorteer de lijst opnieuw, of laat zoekmodus weg: de standaardzoektocht vanaf de eerste rij werkt bij elke volgorde.

Gebruikt in combinaties

  • De klant vinden via een bankomschrijvingKnip het factuurnummer uit een bankomschrijving met TEKST.NA en TEKST.VOOR en zoek de klant daarna op in de debiteurenlijst met X.ZOEKEN.Excel 2024 of nieuwer (Deze combinatie vereist Excel 2024 of nieuwer)
  • De klant opzoeken met een regexHaal het factuurnummer met REGEXEXTRACT uit een bankomschrijving, maak er een patroon van en laat X.ZOEKEN dat patroon vergelijken met een factuurlijst waarin nummers op verschillende manieren zijn getypt.Excel voor Microsoft 365 (Deze combinatie vereist Excel voor Microsoft 365)
  • Totaal debiteuren per ouderdomsklasse van 30 dagenJe zet elke vervaldatum met X.ZOEKEN en overeenkomstmodus -1 om in een klasse uit een klassentabel en laat SOM daarna de openstaande bedragen van één klasse optellen.Excel 2021 of nieuwer (Deze combinatie vereist Excel 2021 of nieuwer)
  • Zoeken op rij en kolom met één X.ZOEKEN en NAAR.KOLOMVind de waarde waar een rijlabel en een kolomkop elkaar kruisen: je maakt van beide voorwaarden één raster met nullen en enen en zet dat met NAAR.KOLOM in één kolom.Excel 2024 of nieuwer (Deze combinatie vereist Excel 2024 of nieuwer)