X.ZOEKEN
XLOOKUP in Engelstalige Excel
Zoek een waarde in de ene lijst en haal het bijbehorende gegeven uit de andere.
Laatst bijgewerkt: 23 oktober 2026
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Factuur | Klant | Te zoeken factuur | Gevonden klant |
| 2 | 1023110231 | Visser Bouw | 1023310233 | De Wit BV=X.ZOEKEN(C2, A2:A5, B2:B5)=X.ZOEKEN(C2; A2:A5; B2:B5) |
| 3 | 1023210232 | Jansen BV | ||
| 4 | 1023310233 | De Wit BV | ||
| 5 | 1023410234 | Bakker Metaal |
Veeg opzij om alle kolommen te zien
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_gevondentoon 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) VERT.ZOEKEN VLOOKUPOudere verticale zoekfunctie; X.ZOEKEN vervangt hem.Lees meer over VERT.ZOEKENDruk op Escape om te sluitenzoekwaardeDe waarde die je in de eerste kolom van de tabel zoekt.Druk op Escape om te sluitentabelmatrixDe tabel; de zoekkolom moet de eerste kolom zijn.Druk op Escape om te sluitenkolomindex_getalWelke kolom van de tabel het antwoord bevat, geteld vanaf 1.Druk op Escape om te sluitenbenaderen (optioneel)ONWAAR voor een exacte overeenkomst; WAAR of weggelaten voor benaderend.Druk op Escape om te sluiten - 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) X.ZOEKEN XLOOKUPZoekt een waarde en geeft het bijbehorende item uit een ander bereik terug.Druk op Escape om te sluitenzoekwaardeDe waarde waarnaar je zoekt.Druk op Escape om te sluitenzoeken_matrixEén kolom of rij waarin je zoekt.Druk op Escape om te sluitenmatrix_retournerenHet bereik waaruit het antwoord komt.Druk op Escape om te sluiten
Zo worden de argumenten van VERT.ZOEKEN argumenten van X.ZOEKEN
kolomindex_getal(de 3) wordtmatrix_retourneren: je wijst$C$2:$C$6aan in plaats van kolommen te tellen.benaderenONWAAR (exact) wordtovereenkomstmodus0, de standaardwaarde, dus je kunt het weglaten.benaderenWAAR (bij benadering) wordtovereenkomstmodus-1, en de gegevens hoeven niet gesorteerd te zijn.tabelmatrixkrimpt totzoeken_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])
| Argument | Soort | Betekenis | Standaard |
|---|---|---|---|
zoekwaarde | Verplicht | De waarde waarnaar je zoekt. | |
zoeken_matrix | Verplicht | Eén kolom of rij waarin je zoekt. | |
matrix_retourneren | Verplicht | Het bereik waaruit het antwoord komt. | |
indien_niet_gevonden | Optioneel | Wat je terugkrijgt als er niets gevonden wordt. | #N/B |
overeenkomstmodus | Optioneel | Exact, net kleiner, net groter, jokertekens of regex. | 0 |
zoekmodus | Optioneel | Zoekrichting, of binair zoeken (halveren) in gesorteerde gegevens. | 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.
| Rij | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Rekening | Omschrijving | Saldo 31-12-2025 | Rekening | Saldo | ||
| 2 | 11001100 | Bank | €84,250.50€ 84.250,50 | 13001300 | €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) | ||
| 3 | 13001300 | Debiteuren | €213,400.00€ 213.400,00 | 18001800 | -€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) | ||
| 4 | 16001600 | Crediteuren | -€156,900.25€ -156.900,25 | 11001100 | €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) | ||
| 5 | 18001800 | Te betalen btw | -€28,450.00€ -28.450,00 | ||||
| 6 | 80008000 | Omzet | -€1,245,000.00€ -1.245.000,00 | ||||
| 7 |
Veeg opzij om alle kolommen te zien
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
- In
E2staat 1300. De$-tekens zetten$A$2:$A$6en$C$2:$C$6vast, zodat de bereiken niet meeschuiven als je kopieert. - Excel loopt
$A$2:$A$6van boven af langs: 1100, nee; 1300, ja, in de tweede cel,A3. - Excel geeft de tweede cel van
$C$2:$C$6terug, dat isC3: €213,400.00€ 213.400,00 inF2. - Kopieer
F2naarF4. 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.
| Rij | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Factuurnr. | Debiteur | Openstaand | Factuurnr. | Openstaand | ||
| 2 | F-25-0391 | Hoekstra Bouw BV | €12,100.00€ 12.100,00 | F-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") | ||
| 3 | F-25-0392 | Smit Handel BV | €4,235.50€ 4.235,50 | F-25-0398 | Geen 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") | ||
| 4 | F-25-0394 | Van Dijk BV | €8,750.00€ 8.750,00 | ||||
| 5 | F-25-0395 | Hoekstra Bouw BV | €3,025.00€ 3.025,00 | ||||
| 6 | F-25-0397 | De Boer BV | €15,640.25€ 15.640,25 | ||||
| 7 |
Veeg opzij om alle kolommen te zien
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
- In
E2staatF-25-0394. Excel vindt dat in de derde cel van$A$2:$A$6,A4. - Excel geeft de derde cel van
$C$2:$C$6terug: €8,750.00€ 8.750,00 inF2. - Kopieer
F2naar beneden. InE3staatF-25-0398, en geen van de vijf factuurnummers komt overeen. - Het vierde argument is ingevuld, dus
F3toont de tekstGeen trefferin 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.
| Rij | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 1 | Rekening | P10 | P11 | P12 | Rekening | 45004500 | ||
| 2 | 11001100 | €48,100.00€ 48.100,00 | €61,250.00€ 61.250,00 | €70,300.00€ 70.300,00 | Periode | P12 | ||
| 3 | 40004000 | €38,200.00€ 38.200,00 | €38,900.00€ 38.900,00 | €54,600.00€ 54.600,00 | Mutatie | €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)) | ||
| 4 | 45004500 | €12,500.00€ 12.500,00 | €12,500.00€ 12.500,00 | €18,750.00€ 18.750,00 | ||||
| 5 | 80008000 | €91,900.00€ 91.900,00 | €88,300.00€ 88.300,00 | €98,800.00€ 98.800,00 | ||||
| 6 |
Veeg opzij om alle kolommen te zien
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
- De binnenste X.ZOEKEN rekent eerst: die vindt
G2(P12) in de koprijB1:D1, in de derde cel, en geeft de derde kolom vanB2:D5terug:D2:D5. - Die kolom is de matrix_retourneren van de buitenste X.ZOEKEN. Die vindt
G1(4500) inA2:A5, in de derde cel,A4. - X.ZOEKEN geeft de derde cel van
D2:D5terug, dat isD4: €18,750.00€ 18.750,00. - Zet
G1op 1100 enG2opP10, 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.
| Rij | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Omschrijving | Datum | Bedrag | Naamdeel | Brouwer | ||
| 2 | SEPA Brouwer Klimaat BV | 14-01-2026 | €4,250.00€ 4.250,00 | Woord | Klimaat | ||
| 3 | Kuipers Dakwerken BV | 21-01-2026 | €3,300.00€ 3.300,00 | Laatste | 09-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 | |
| 4 | BROUWER KLIM. BV | 06-02-2026 | €6,120.50€ 6.120,50 | ||||
| 5 | Willems Elektra VOF | 19-02-2026 | €2,480.00€ 2.480,00 | ||||
| 6 | brouwer klimaat b.v. deelbetaling | 09-03-2026 | €5,775.00€ 5.775,00 | ||||
| 7 | Brouwer Klimaatgroep NV | 24-03-2026 | €9,200.00€ 9.200,00 | ||||
| 8 | Peters Tegelwerk BV | 27-03-2026 | €1,945.25€ 1.945,25 | ||||
| 9 | Scholten Staalbouw BV | 30-03-2026 | €7,060.00€ 7.060,00 | ||||
| 10 |
Veeg opzij om alle kolommen te zien
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
- LET leest paren van een naam en een waarde:
naamdeelwordtBrouwer(uitE1) enbedrijfswoordwordtKlimaat(uitE2). Er wordt nog niets gezocht. patroonwordt samengesteld uit cellen en vaste delen:(?i)\bBrouwer[ .]*Klim[a-z.]*[ .]*b\.?v\b.LINKS(bedrijfswoord; 4)geeftKlim, dat zowelKLIM.alsklimaatdekt.- Lees het patroon van links naar rechts.
(?i)negeert hoofdletters.\bis een woordgrens, dusBrouwermoet aan het begin van een woord staan.[ .]*is een willekeurig aantal spaties en punten, ook nul.[a-z.]*maakt het woordKlimaf.b\.?vzijn de letters b en v met eventueel een punt ertussen. De laatste\blaat de v aan het eind van een woord staan. - Overeenkomstmodus 3 leest de zoekwaarde als regex en toetst elke cel van
$A$2:$A$9op een treffer ergens in de tekst. Hier is geen^of$nodig, omdat de naam in een langere omschrijving staat. Zoekmodus -1 begint onderaan, bijA9, en loopt omhoog. A9(Scholten Staalbouw) enA8(Peters Tegelwerk) bevatten geen Brouwer.A7isBrouwer Klimaatgroep NV: Brouwer enKlimpassen,aatgroeppast in[a-z.]*, maar dan eist het patroon een b en staat erNV. Geen treffer, zo blijft het andere bedrijf buiten beeld.A6isbrouwer klimaat b.v. deelbetaling:brouwer, een spatie,klimaat, een spatie enb.v, gevolgd door een punt, en dat is een woordgrens na de v. Eerste treffer van onderaf:A6.- X.ZOEKEN geeft de vijfde rij van
$B$2:$C$9terug, twee kolommen breed:B6is 9 maart 2026 enC6is €5,775.00€ 5.775,00. Het resultaat loopt over inE3:F3. - De twee eerdere ontvangsten passen ook (
A2, €4,250.00€ 4.250,00 enA4, €6,120.50€ 6.120,50), maar zoekmodus -1 stopt bij de laatste. ZetE1opPetersenE2opTegelwerken dezelfde formule geeft 27 maart 2026 en €1,945.25€ 1.945,25. Een naam zonder ontvangst toontGeen 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\bop geen van de drie ontvangsten (de b vanBVenBROUWERzijn hoofdletters) en toont de celGeen 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.
Zoeken in
Teruggeven uit
Overeenkomstmodus
Alleen een exacte treffer telt (standaard)
Exacte treffer, anders de eerstvolgende kleinere waarde
Exacte treffer, anders de eerstvolgende grotere waarde
Jokertekens tellen mee: * is willekeurige tekens, ? is één teken
De zoekwaarde is een reguliere expressie; hoofdlettergevoelig
Zoekmodus
Van boven naar beneden (standaard)
Van onder naar boven: de laatste treffer
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Referentie | Bedrag | Dagen open | Resultaat | |
| 2 | CN-0412 | -€1,200.00€ -1.200,00 | 120120 | INV-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) | |
| 3 | INV-1001 | €450.00€ 450,00 | 9595 | ||
| 4 | INV-1002 | €450.00€ 450,00 | 6464 | ||
| 5 | INV-1003 | €1,800.00€ 1.800,00 | 4141 | ||
| 6 | INV-1004 | €3,250.00€ 3.250,00 | 2727 | ||
| 7 | INV-1005 | €7,500.00€ 7.500,00 | 1212 | ||
| 8 | INV-1006 | €12,000.00€ 12.000,00 | 55 |
Veeg opzij om alle kolommen te zien
- 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
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| #N/B terwijl de waarde in de lijst staat | De 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 resultaat | zoeken_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 resultaat | Het 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 dagen | overeenkomstmodus 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 -2 | Binair 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)