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

TEKST.VOOR

TEXTBEFORE in Engelstalige Excel

Geeft het deel van een tekst dat voor een gekozen scheidingsteken staat, geteld vanaf het begin of vanaf het einde, zonder LINKS en VIND.ALLES.

Moeilijkheidsgraad 2 van 5. De basisaanroep is kort, maar scheidingstekens vanaf het einde tellen, het einde van de tekst als scheidingsteken behandelen en bepalen wat er bij een ontbrekend scheidingsteken komt, vragen elk een eigen argument.

Laatst bijgewerkt: 13 oktober 2026

Bekijk de uitgewerkte voorbeelden

Fragment van het werkblad: in C2 staat de formule
RijABC
1Relatie (export)
2D1001 - Kaya Design BVD1001=TEKST.VOOR(A2, " - ")=TEKST.VOOR(A2; " - ")
3D1002 - Molenaar Bouw BV
4C2001 - Bakker-Smit Installatie BV
5C2002 - Hendriks Metaal BV
Formulecel (C2)

Resultaat: D1001

=TEKST.VOOR(A2, " - ")
=TEKST.VOOR(A2; " - ")

Wat TEKST.VOOR doet en wanneer je het gebruikt

Wat het doet: het geeft het deel van een tekst vóór een scheidingsteken, bijvoorbeeld de relatiecode voor het scheidingsteken in een geëxporteerde naam.

Wanneer je het gebruikt: als een code, een map of een naam voor een vast scheidingsteken staat, zoals de map in een bestandspad of het factuurnummer in een bankomschrijving. Het vervangt LINKS met VIND.ALLES en min één. Een negatieve instance_num past bij teksten van wisselende lengte waarvan het laatste deel vaststaat. Heb je alle delen tegelijk nodig, dan is TEKST.SPLITSEN beter.

De twee grootste voordelen:

  • Geen positie uitrekenen: je noemt het scheidingsteken, dus VIND.ALLES en min één zijn niet nodig.
  • Eigen resultaat als niets gevonden is: met if_not_found toon je je eigen melding in plaats van #N/B, en match_end behandelt het einde van de tekst als scheidingsteken.

Hoe Excel de functie berekent

Excel zoekt eerst het scheidingsteken in tekst, met de hoofdletterinstelling die je opgeeft. Bij een positief volgnummer telt Excel scheidingstekens van links, bij een negatief van rechts. Excel knipt bij het gekozen scheidingsteken en geeft alles links ervan terug, zonder het scheidingsteken zelf.

Heeft de tekst minder scheidingstekens dan gevraagd, dan is het resultaat de tekst die je voor die situatie opgaf, of #N/B als je dat hebt weggelaten. Staat het vijfde argument op 1, dan telt het einde van de tekst eerst als extra scheidingsteken, zodat de hele tekst terugkomt in plaats van een foutwaarde. Is tekst een bereik, dan gebeurt dit voor elke cel en lopen de resultaten over.

Let op: TEKST.VOOR is standaard hoofdlettergevoelig: zet het vierde argument op 1 als de hoofdletters wisselen, anders worden cellen met Factuur of FACTUUR overgeslagen als je zoekt op factuur.

Denkmodel

Een schaar die je bij het n-de scheidingsteken zet, geteld vanaf het begin of het einde, waarna je het linkerstuk houdt.

Begrippen op deze pagina: foutwaarde, overloop, argument, bereik, cel

TEKST.VOOR(tekst, scheidingsteken, [instance_num], [match_mode], [match_end], [if_not_found])
TEKST.VOOR(tekst; scheidingsteken; [instance_num]; [match_mode]; [match_end]; [if_not_found])
Argumenten
ArgumentSoortBetekenisStandaard
tekstVerplichtDe tekst die wordt geknipt: een cel, een tekst of een bereik van cellen.
scheidingstekenVerplichtHet teken of de tekst waar wordt geknipt.
instance_numOptioneelBij welk voorkomen van het scheidingsteken wordt geknipt; negatief telt vanaf het einde.1
match_modeOptioneel0 let op hoofdletters (standaard), 1 negeert ze.0
match_endOptioneel1 behandelt het einde van de tekst als scheidingsteken.0
if_not_foundOptioneelWat je terugkrijgt als er geen scheidingsteken is; standaard #N/B.#N/B

Geeft terug:De tekst vóór het gekozen voorkomen van het scheidingsteken

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

De relatiecode van een geëxporteerde naam afsplitsen

Sanne de Vries controleert de relatielijst van Veldhuis Installatie BV. In de export staan relatiecode en naam in één cel, gescheiden door een spatie, een koppelteken en een spatie. Zij heeft alleen de code nodig, om die te kunnen vergelijken met de lijsten van debiteuren en crediteuren.

Fragment van het werkblad: in C2 staat de formule
RijABCD
1Relatie (export)
2D1001 - Kaya Design BVD1001=TEKST.VOOR(A2, " - ")=TEKST.VOOR(A2; " - ")
3D1002 - Molenaar Bouw BV
4C2001 - Bakker-Smit Installatie BV
5C2002 - Hendriks Metaal BV
6
Formulecel (C2)

Formule in C2

=TEKST.VOOR(A2, " - ")
=TEKST.VOOR(A2; " - ")

Resultaat: D1001

Stap voor stap
  1. Excel leest tekst, de cel A2, en vindt D1001 - Kaya Design BV. Het scheidingsteken bestaat uit drie tekens: spatie, koppelteken, spatie.
  2. Het volgnummer is niet opgegeven en dus 1: het eerste voorkomen. D1001 telt 5 tekens, dus de eerste combinatie spatie-koppelteken-spatie begint op positie 6.
  3. Excel houdt alles vóór positie 6 over, de 5 tekens D1001, en laat het scheidingsteken en de naam weg. C2 toont D1001.
  4. Kopieer je de formule omlaag, dan toont C3 D1002, C4 C2001 en C5 C2002. In A4 staat in de naam een koppelteken (Bakker-Smit), maar dat staat niet tussen spaties en is dus niet het scheidingsteken.

Let op: Een cel zonder spatie-koppelteken-spatie, bijvoorbeeld een relatie die als D1005 Smits is getypt, toont #N/B. Zoek de cellen met een foutwaarde: dat zijn de rijen waar de export afwijkt van de rest.

Meer over dit voorbeeld: waarom het werkt, 1 variant

Waarom het werkt

Het scheidingsteken bestaat uit meer dan één teken, en daarom blijven koppeltekens in namen met rust. TEKST.VOOR werkt vanuit het scheidingsteken dat je opgeeft, dus er is geen positie om te tellen en geen min één om af te trekken.

Varianten

=LINKS(A2, VIND.ALLES(" - ", A2) - 1)
=LINKS(A2; VIND.ALLES(" - "; A2) - 1)

De oudere opbouw die in elke versie werkt: zoek de positie, trek 1 af en neem zoveel tekens.

Halfgevorderd

De map van elk dossierbestand vinden, hoe diep ook

In het gedeelde controledossier van Veldhuis Installatie BV staat een lijst met bestandspaden. Sommige bestanden staan drie niveaus diep, andere vijf. Je wilt de map van elk bestand, dus het pad zonder bestandsnaam, om te controleren of bevestigingen en bankafschriften op de juiste plek staan.

Omdat de diepte wisselt, is alleen de laatste schuine streep een betrouwbare snede.

Fragment van het werkblad: in C2 staat de formule
RijABCD
1Bestandspad
2Veldhuis/2025/Debiteuren/Confirmaties/conf-Smits.pdfVeldhuis/2025/Debiteuren/Confirmaties=TEKST.VOOR(A2, "/", -1)=TEKST.VOOR(A2; "/"; -1)
3Veldhuis/2025/Bank/afschrift-dec.pdf
4Veldhuis/2025/Loon/loonjournaal.xlsx
5Veldhuis/2025/Voorraad/Telling/Lijst/voorraad.xlsx
6
Formulecel (C2)

Formule in C2

=TEKST.VOOR(A2, "/", -1)
=TEKST.VOOR(A2; "/"; -1)

Resultaat: Veldhuis/2025/Debiteuren/Confirmaties

Stap voor stap
  1. In A2 staat Veldhuis/2025/Debiteuren/Confirmaties/conf-Smits.pdf. Het scheidingsteken is een schuine streep.
  2. Het pad bevat 4 schuine strepen: na Veldhuis, na 2025, na Debiteuren en na Confirmaties.
  3. Het volgnummer is -1, dus Excel telt van rechts en kiest de laatste schuine streep, de vierde, direct voor conf-Smits.pdf. Alles links daarvan komt terug: Veldhuis/2025/Debiteuren/Confirmaties.
  4. Omlaag gekopieerd geeft C3 Veldhuis/2025/Bank (3 schuine strepen, de laatste voor afschrift-dec.pdf), C4 Veldhuis/2025/Loon en C5 Veldhuis/2025/Voorraad/Telling/Lijst (5 schuine strepen). Dezelfde formule werkt bij elke diepte.
  5. Zonder de -1 zou het volgnummer 1 zijn en A2 alleen Veldhuis geven. Met 3 zou A2 Veldhuis/2025/Debiteuren geven, en dat is niet de map van het bestand.

Let op: Een pad met backslashes, zoals Windows het toont, bevat helemaal geen schuine streep en toont #N/B. Kijk welke streep de export gebruikt voordat je de formule kopieert.

Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant

Waarom het werkt

Van rechts tellen draait de vraag om: je vraagt niet hoe diep het bestand staat, maar om de laatste schuine streep, en die staat in elk pad vóór de bestandsnaam. De bestandsnaam is het deel dat verschilt, dus daar hoort de snede.

Meer om op te letten

  • Een pad dat op een schuine streep eindigt, zoals een mapnaam zonder bestand, komt terug als het pad zonder de slotstreep, dus het bevat nog steeds de laatste map en niet de bovenliggende map. Controleer dat elke rij op een bestandsnaam eindigt.

Varianten

=TEKST.NA(A2, "/", -1)
=TEKST.NA(A2; "/"; -1)

De omgekeerde keuze: alleen de bestandsnaam, alles na de laatste schuine streep.

Gevorderd

De relatiecode uit het midden van een boekingsomschrijving halen

Het omschrijvingsveld van de XAF-auditfile van Veldhuis Installatie BV bevat vier delen gescheiden door een verticale streep (|):

  • dagboek
  • boekstuknummer
  • relatiecode
  • relatienaam

Bankregels hebben geen naam, dus daar eindigt de omschrijving na de code. Je wilt de relatiecode van alle regels in één formule, om ze te vergelijken met de lijsten van debiteuren en crediteuren.

Fragment van het werkblad: in C2 staat de formule
RijABCD
1Omschrijving
2INK|25-0412|C2001|Bakker-Smit Installatie BVC2001=TEKST.VOOR(TEKST.NA(A2:A6, "|", 2), "|", 1, 0, 1)=TEKST.VOOR(TEKST.NA(A2:A6; "|"; 2); "|"; 1; 0; 1)
3VRK|25-0413|D1001|Kaya Design BVD1001
4BNK|25-0414|D1002D1002
5MEM|25-0415|C2002|Hendriks Metaal BVC2002
6BNK|25-0416|D1003D1003
7
Formulecel (C2)Overloopresultaat

Formule in C2

=TEKST.VOOR(TEKST.NA(A2:A6, "|", 2), "|", 1, 0, 1)
=TEKST.VOOR(TEKST.NA(A2:A6; "|"; 2); "|"; 1; 0; 1)

Resultaat: C2001 / D1001 / D1002 / C2002 / D1003C2001 / D1001 / D1002 / C2002 / D1003

Stap voor stap
  1. De binnenste functie gaat eerst: TEKST.NA(A2:A6; "|"; 2) neemt in elk van de 5 cellen alles na de 2e verticale streep.
  2. Dat levert vijf teksten op: C2001|Bakker-Smit Installatie BV, D1001|Kaya Design BV, D1002, C2002|Hendriks Metaal BV en D1003. De twee bankregels hebben maar 2 verticale strepen, dus na de 2e blijft alleen de code over.
  3. De buitenste TEKST.VOOR knipt elk van deze teksten bij de 1e verticale streep (volgnummer 1, hoofdlettergevoelig). In de eerste tekst staat die streep na C2001, dus C2001 komt terug; de andere geven op dezelfde manier D1001 en C2002.
  4. Voor D1002 en D1003 is geen verticale streep meer over. Het vijfde argument is 1, dus het einde van de tekst telt als scheidingsteken en de hele tekst komt terug: D1002 en D1003.
  5. De vijf resultaten lopen over van C2 tot C6: C2001, D1001, D1002, C2002, D1003. Zonder de laatste twee argumenten zouden C4 en C6 #N/B tonen.

Let op: De formule neemt het 3e veld op positie. Heeft één regel een extra veld vooraan, bijvoorbeeld een tweede boekstuknummer, dan komt er een naam of een nummer uit en verschijnt er geen foutmelding. Sorteer de resultaten en zoek waarden die geen C of D met vier cijfers zijn.

Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant

Waarom het werkt

TEKST.NA haalt het begin van de tekst weg en TEKST.VOOR het eind, dus samen halen ze een middendeel eruit. De twee functies zijn elkaars spiegelbeeld, en daarom staat in beide hetzelfde scheidingsteken. Dankzij het vijfde argument kan ook het laatste veld van een regel een middendeel zijn.

Meer om op te letten

  • Een regel met minder dan 2 verticale strepen, zoals MEM|26-0003, laat de binnenste TEKST.NA #N/B tonen, en de buitenste functie geeft die fout door.

Varianten

=INDEX(TEKST.SPLITSEN(A2, "|"), 3)
=INDEX(TEKST.SPLITSEN(A2; "|"); 3)

Splitst één regel in zijn delen en neemt het 3e. Langer, maar een betere keuze als je twee of drie van de delen nodig hebt. Het werkt per cel.

Expert

Het genoemde factuurnummer in bankomschrijvingen vinden

Je legt het bankafschrift van Veldhuis Installatie BV naast de debiteurenadministratie. De betaler heeft de omschrijving zelf getypt, dus:

  • het woord factuur staat in elke hoofdlettervariant
  • het nummer wordt soms gevolgd door een naam en soms staat het aan het eind
  • sommige regels noemen geen factuur

Je wilt per regel het factuurnummer of een duidelijke melding, in één leesbare formule die de volgende beoordelaar kan volgen.

Fragment van het werkblad: in C2 staat de formule
RijABCD
1Bankomschrijving
2Betaling Factuur 25-1101 Kaya Design BV25-1101=LET( omschrijving, A2:A7, na_label, TEKST.NA(omschrijving, "factuur ", 1, 1, 0, ""), ALS(na_label = "", "Geen factuur genoemd", TEKST.VOOR(na_label, " ", 1, 0, 1)) )=LET( omschrijving; A2:A7; na_label; TEKST.NA(omschrijving; "factuur "; 1; 1; 0; ""); ALS(na_label = ""; "Geen factuur genoemd"; TEKST.VOOR(na_label; " "; 1; 0; 1)) )
3Ontvangst factuur 25-110425-1104
4Salaris decemberGeen factuur genoemd
5Creditnota FACTUUR 25-1077 retour25-1077
6Incasso factuur 25-1108 Mulder Horeca BV25-1108
7Factuurnummer onbekend, navragenGeen factuur genoemd
8
Formulecel (C2)Overloopresultaat

Formule in C2

=LET(
  omschrijving, A2:A7,
  na_label, TEKST.NA(omschrijving, "factuur ", 1, 1, 0, ""),
  ALS(na_label = "", "Geen factuur genoemd", TEKST.VOOR(na_label, " ", 1, 0, 1))
)
=LET(
  omschrijving; A2:A7;
  na_label; TEKST.NA(omschrijving; "factuur "; 1; 1; 0; "");
  ALS(na_label = ""; "Geen factuur genoemd"; TEKST.VOOR(na_label; " "; 1; 0; 1))
)

Resultaat: 25-1101 / 25-1104 / Geen factuur genoemd / 25-1077 / 25-1108 / Geen factuur genoemd25-1101 / 25-1104 / Geen factuur genoemd / 25-1077 / 25-1108 / Geen factuur genoemd

Stap voor stap
  1. LET slaat omschrijving op als A2:A7, de zes bankregels. Er wordt nog niets berekend.
  2. na_label knipt elke regel na het eerste "factuur " (het woord en een spatie) en negeert hoofdletters omdat het vierde argument 1 is. Resultaten: 25-1101 Kaya Design BV; 25-1104; leeg; 25-1077 retour; 25-1108 Mulder Horeca BV; leeg.

    Regel 3 heeft geen label. Regel 6 bevat Factuurnummer, maar na factuur komt een n en geen spatie, dus ook die past niet. Beide geven de lege tekst die je als laatste argument hebt opgegeven.

  3. ALS test eerst elke na_label. Waar die leeg is, regel 3 en 6, is het resultaat Geen factuur genoemd, en voor die regels geeft ALS het label terug in plaats van het resultaat van TEKST.VOOR.
  4. Elders houdt TEKST.VOOR(na_label; " "; 1; 0; 1) het deel vóór de eerste spatie over, en de laatste 1 laat een tekst zonder spatie als compleet gelden: 25-1101; 25-1104 (helemaal geen spatie, het einde werkt als scheidingsteken); 25-1077; 25-1108.
  5. De zes resultaten lopen over van C2 tot C7: 25-1101, 25-1104, Geen factuur genoemd, 25-1077, 25-1108, Geen factuur genoemd. Om te debuggen vervang je de laatste regel van de LET door na_label, zodat je het eerste tussenresultaat ziet.

Let op: De omgekeerde fout is het vierde argument op 0 laten staan. Regel 1 en 4 bevatten Factuur en FACTUUR, passen dan niet meer en tonen Geen factuur genoemd. Het resultaat lijkt een lijst omschrijvingen zonder verwijzing, dus niemand verdenkt de formule.

Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 1 variant

Waarom het werkt

Elke naam is een stap die je los kunt lezen en testen, en beide functies werken op alle zes regels tegelijk.

Gebruik deze opbouw niet als het bestand moet openen in Excel 2021 of ouder, want TEKST.NA en TEKST.VOOR bestaan daar niet, of voor een eenmalige opschoning: Flash Fill of Power Query (Extraheren, Tekst na scheidingsteken) doet hetzelfde zonder formule, met als nadeel dat je het opnieuw moet uitvoeren zodra de gegevens veranderen.

Meer om op te letten

  • Laat je het vijfde argument weg in TEKST.VOOR, dan is het effect bij regel 2, waar het nummer aan het eind staat, anders: de snede vindt geen spatie, dus TEKST.VOOR geeft voor die regel #N/B in plaats van 25-1104, en ALS geeft die fout door in plaats van een label te tonen.
  • Omschrijvingen als factuur 25-1101 en 25-1102 leveren alleen het eerste nummer op. De formule geeft één verwijzing per regel.

Varianten

=TEKST.VOOR(TEKST.NA(A2, "factuur ", 1, 1), " ", 1, 0, 1)
=TEKST.VOOR(TEKST.NA(A2; "factuur "; 1; 1); " "; 1; 0; 1)

Een kortere vorm voor één regel, zonder melding. Ontbreekt het label, dan toont TEKST.NA #N/B en het resultaat ook, en dat is duidelijker dan een lege cel als je één regel controleert.

Veelgemaakte fouten

Veelgemaakte fouten
SymptoomOorzaakOplossing
#N/B in cellen zonder het scheidingstekenSommige cellen tonen #N/B, meestal die waarin de tekst korter is of het scheidingsteken helemaal niet voorkomt.Bepaal wat zo'n cel moet opleveren. Een 1 als vijfde argument geeft de hele tekst als alleen het laatste scheidingsteken ontbreekt; het zesde argument geeft een melding die je zelf kiest. Zet er geen ALS.FOUT omheen, want dat verbergt ook echte fouten.
De map is te kort, zonder foutmeldingJe knipt bij de derde schuine streep om de map te krijgen, en bestanden in diepere mappen geven een te korte map terug, zonder foutmelding.Is het deel dat je wilt weglaten altijd het laatste, tel dan vanaf het einde met volgnummer -1. Een positief getal werkt alleen als elke tekst dezelfde opbouw heeft.
Cellen met andere hoofdletters worden overgeslagenHet scheidingsteken is een woord, zoals factuur, en cellen met Factuur of FACTUUR worden overgeslagen.In geëxporteerde omschrijvingen wisselen de hoofdletters bijna altijd, dus zet het vierde argument op 1.
#WAARDE! of #N/B terwijl het scheidingsteken er staatHet resultaat is #WAARDE! of #N/B, terwijl het scheidingsteken wel in de tekst staat.Het volgnummer is 0, wat #WAARDE! geeft, of groter dan het aantal scheidingstekens in de tekst, wat #N/B geeft (of je eigen waarde voor niet gevonden, als je die hebt opgegeven). Gebruik 1 of -1 voor het eerste en het laatste scheidingsteken.

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)