VIND.ALLES
FIND in Engelstalige Excel
Vertelt op welke positie een tekst voor het eerst in een andere tekst staat, waarbij hoofdletters en kleine letters precies moeten kloppen.
Laatst bijgewerkt: 13 oktober 2026
| Rij | A | B | C |
|---|---|---|---|
| 1 | Dagboek | Omschrijving | Dubbele punt op |
| 2 | VRK | FACT 25-0412: Bakker Installatie BV | 1313=VIND.ALLES(":", B2)=VIND.ALLES(":"; B2) |
| 3 | VRK | CRN 25-0430: De Vries Bouw BV | |
| 4 | BNK | BET 25-0412: Bakker Installatie BV | |
| 5 | MEM | MEMO 25-0501: Hofstra Transport BV |
Veeg opzij om alle kolommen te zien
Resultaat: 13
=VIND.ALLES(":",B2)
=VIND.ALLES(":";B2)
Wat VIND.ALLES doet en wanneer je het gebruikt
Wat het doet: het geeft de positie van het eerste teken van de eerste treffer van een tekst binnen een andere tekst, bijvoorbeeld waar de dubbele punt in een boekingsomschrijving staat.
Wanneer je het gebruikt: als je een positie nodig hebt om op te knippen met LINKS, DEEL of RECHTS, of als hoofdletters ertoe doen (de code X tegenover de maat x). Gebruik VIND.SPEC als hoofdlettergebruik niet uitmaakt of als je jokertekens wilt.
Hoe Excel de functie berekent
Excel leest in_tekst en begin_getal (1 als je dat weglaat) en controleert of begin_getal binnen de tekst valt. Vanaf die positie legt het zoeken_tekst teken voor teken langs in_tekst, waarbij een hoofdletter iets anders is dan een kleine letter.
Bij het eerste stuk dat helemaal overeenkomt, stopt Excel en levert de positie van het eerste teken daarvan, geteld vanaf het begin van in_tekst en niet vanaf begin_getal. Komt Excel aan het eind zonder treffer, dan is de uitkomst #WAARDE!.
Let op: Zonder treffer geeft VIND.ALLES #WAARDE! en niet 0. Wil je alleen weten of een tekst iets bevat, zet VIND.ALLES dan in ISGETAL.
Denkmodel
Een corrector die met zijn vinger bij een bepaalde letter begint, naar rechts schuift en het kolomnummer noemt waar precies dat woord voor het eerst staat; staat het niet op de regel, dan krijg je geen getal maar een foutmelding.
Begrippen op deze pagina: jokerteken
VIND.ALLES(zoeken_tekst,in_tekst, [begin_getal])
VIND.ALLES(zoeken_tekst;in_tekst; [begin_getal])
| Argument | Soort | Betekenis | Standaard |
|---|---|---|---|
zoeken_tekst | Verplicht | De tekst waarnaar je zoekt. Hoofdletters tellen; * en ? zijn gewone tekens. | |
in_tekst | Verplicht | De tekst waarin je zoekt; meestal een celverwijzing. | |
begin_getal | Optioneel | Positie waar het zoeken begint, standaard 1. Hiermee sla je een eerdere treffer over. | 1 |
Geeft terug:Een getal: de positie van zoeken_tekst in in_tekst, of #WAARDE!
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 dubbele punt in een boekingsomschrijving vinden
In de XAF-auditfile-export begint de omschrijving van elke boekingsregel met een documentcode en boekstuknummer, gevolgd door een dubbele punt en de relatie: FACT 25-0412: Bakker Installatie BV. Je wilt het boekstuknummer van de relatie scheiden, en daarvoor moet je eerst weten waar de dubbele punt staat. De voorvoegsels zijn niet even lang, dus de positie verschilt per rij.
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Dagboek | Omschrijving | Dubbele punt op | |
| 2 | VRK | FACT 25-0412: Bakker Installatie BV | 1313=VIND.ALLES(":", B2)=VIND.ALLES(":"; B2) | |
| 3 | VRK | CRN 25-0430: De Vries Bouw BV | ||
| 4 | BNK | BET 25-0412: Bakker Installatie BV | ||
| 5 | MEM | MEMO 25-0501: Hofstra Transport BV | ||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in C2
=VIND.ALLES(":",B2)
=VIND.ALLES(":";B2)
Resultaat: 1313
Stap voor stap
- zoeken_tekst is een dubbele punt (
:), in_tekst isB2: FACT 25-0412: Bakker Installatie BV. begin_getal ontbreekt, dus Excel begint te zoeken op positie 1. - Excel loopt teken voor teken langs: F op 1, A op 2, C op 3, T op 4, de spatie op 5, 2 op 6, 5 op 7, het streepje op 8, 0 op 9, 4 op 10, 1 op 11, 2 op 12, steeds nee; de dubbele punt op 13, ja.
- Bij die eerste treffer stopt het zoeken en VIND.ALLES levert 13. Dat zie je in
C2: FACT 25-0412 beslaat positie 1 tot en met 12, de dubbele punt is het dertiende teken. - Kopieer
C2omlaag: CRN 25-0430 geeft 12, BET 25-0412 geeft 12, MEMO 25-0501 geeft 13. Het voorvoegsel CRN is een teken korter dan FACT, dus de dubbele punt schuift een plaats naar links. - Met dat getal ga je verder: LINKS(B2; C2 - 1), dus LINKS(B2; 12), levert document en boekstuknummer FACT 25-0412.
Let op: Een omschrijving zonder dubbele punt, bijvoorbeeld een met de hand getypte regel op een MEM-boeking, geeft #WAARDE!. De formule is dan niet kapot: VIND.ALLES meldt dat de regel het patroon niet volgt, en dat is op zich al een controle waard.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 2 varianten
Waarom het werkt
VIND.ALLES vertaalt een vraag over de inhoud (waar staat de dubbele punt?) in een getal, en met getallen kunnen de knipfuncties voor tekst aan de slag. Omdat het zoeken bij de eerste treffer stopt, krijg je het eind van het boekstuknummer, ook als de naam van de relatie zelf een dubbele punt bevat.
Meer om op te letten
- Staat er een spatie vooraan de omschrijving, dan schuift elke positie een plaats op. Haal de export eerst door SPATIES.WISSEN en zoek daarna pas.
Varianten
=LINKS(B2,VIND.ALLES(":", B2) - 1)
=LINKS(B2;VIND.ALLES(":"; B2) - 1)
VIND.ALLES rechtstreeks in LINKS, zonder hulpkolom: levert FACT 25-0412.
=DEEL(B2,VIND.ALLES(":", B2) + 2, 50)
=DEEL(B2;VIND.ALLES(":"; B2) + 2; 50)
Alles na de dubbele punt en de spatie, de relatie: Bakker Installatie BV.
Halfgevorderd
Handmatige boekingen herkennen aan MAN
Bij de journaalpostentest typen de boekhouders van de cliënt een hoofdletter-code MAN in de omschrijving van handmatige correcties. Gewone woorden als Managementvergoeding bevatten ook de letters m, a, n, maar dan in kleine letters. Je wilt een kolom met WAAR of ONWAAR voor handmatige boekingen, en een woord als Managementvergoeding mag niet meetellen.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Boekstuk | Omschrijving | Debet | Handmatig? | |
| 2 | 25-0518 | Managementvergoeding Q3 Bakker | €4,500.00€ 4.500,00 | ONWAARONWAAR=ISGETAL(VIND.ALLES("MAN", B2))=ISGETAL(VIND.ALLES("MAN"; B2)) | |
| 3 | 25-0527 | MAN correctie verkoopfactuur 25-0412 | €1,210.00€ 1.210,00 | ||
| 4 | 25-0611 | Loonkosten maart MAN boeking | €18,750.00€ 18.750,00 | ||
| 5 | 25-0702 | Huur kantoor oktober | €6,300.00€ 6.300,00 | ||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in D2
=ISGETAL(VIND.ALLES("MAN",B2))
=ISGETAL(VIND.ALLES("MAN";B2))
Resultaat: ONWAAR
Stap voor stap
- Excel rekent eerst VIND.ALLES("MAN"; B2) uit.
B2is Managementvergoeding Q3 Bakker. De tekst begint met M, a, n, maar de a en n zijn kleine letters. - VIND.ALLES let op hoofdletters. Managementvergoeding is niet MAN, en nergens anders in de omschrijving staat MAN in hoofdletters, dus VIND.ALLES geeft #WAARDE!.
- ISGETAL krijgt #WAARDE! binnen, en dat is geen getal: de uitkomst is ONWAAR.
D2toont ONWAAR, dus geen handmatige boeking. - In
D3heeft MAN correctie verkoopfactuur 25-0412 de codeMANop positie 1: VIND.ALLES levert 1 en ISGETAL(1) is WAAR. InD4staatMANin Loonkosten maart MAN boeking op 18 (Loonkosten 1 tot en met 10, spatie 11, maart 12 tot en met 16, spatie 17), WAAR.D5, Huur kantoor oktober, bevat geenMAN: ONWAAR. - Zet VIND.SPEC op de plaats van VIND.ALLES en
D2wordt WAAR: VIND.SPEC trekt zich niets aan van hoofdletters, vindtManop positie 1 en maakt van een managementvergoeding een handmatige boeking. Op dat verschil drijft dit voorbeeld.
Let op: Een woord dat toevallig MAN in hoofdletters bevat, zoals een leverancier met de naam ROMANO, telt als handmatige boeking. VIND.ALLES ziet alleen de letters en kan een markering niet van toeval onderscheiden. Loop de rijen met WAAR daarom één keer zelf na.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant
Waarom het werkt
Wat VIND.ALLES onderscheidt van VIND.SPEC is de hoofdlettergevoeligheid, en hier zit de controleregel precies daarin: hoofdletter-code MAN betekent een handmatige correctie, de kleine letters in Managementvergoeding betekenen niets. ISGETAL maakt van de twee mogelijke uitkomsten van VIND.ALLES, een positie of een foutwaarde, WAAR en ONWAAR, zodat je in je journaalpostentest op de kolom kunt filteren en tellen.
Meer om op te letten
- Zonder ISGETAL staan er in de kolom posities en #WAARDE!-fouten, en een AANTAL.ALS die op WAAR telt, vindt niets.
Varianten
=ISGETAL(VIND.ALLES("MAN ",B2))
=ISGETAL(VIND.ALLES("MAN ";B2))
Staat MAN altijd als los woord in de omschrijving, zoek dan op MAN met een spatie erachter; MAN in een langer woord in hoofdletters telt dan ook niet mee.
Gevorderd
Een boekstuknummer afknippen bij het tweede streepje
Boekstuknummers in de export van het subgrootboek bestaan uit dagboek, jaar en volgnummer: VRK-25-0412. Voor een draaitabel per dagboek en jaar wil je alles vóór het tweede streepje. Dagboekcodes zijn niet even lang, en een paar openingsbalansboekingen bevatten helemaal geen streepjes; die moeten ongewijzigd blijven.
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Boekstuk | Bedrag | Dagboek en jaar | |
| 2 | VRK-25-0412 | €12,100.00€ 12.100,00 | ||
| 3 | BNK12-25-0003 | €3,025.00€ 3.025,00 | BNK12-25=ALS.FOUT(LINKS(A3, VIND.ALLES("-", A3, VIND.ALLES("-", A3) + 1) - 1), A3)=ALS.FOUT(LINKS(A3; VIND.ALLES("-"; A3; VIND.ALLES("-"; A3) + 1) - 1); A3) | |
| 4 | MEM-24-0019 | -€8,450.00€ -8.450,00 | ||
| 5 | OPENING | €18,250.75€ 18.250,75 | ||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in C3
=ALS.FOUT(LINKS(A3,VIND.ALLES("-", A3, VIND.ALLES("-", A3) + 1) - 1), A3)
=ALS.FOUT(LINKS(A3;VIND.ALLES("-"; A3; VIND.ALLES("-"; A3) + 1) - 1); A3)
Resultaat: BNK12-25
Stap voor stap
- Excel begint bij de binnenste VIND.ALLES("-"; A3).
A3is BNK12-25-0003: BNK12 beslaat positie 1 tot en met 5, het eerste streepje staat op 6. Uitkomst: 6. - 6 + 1 = 7 wordt begin_getal van de buitenste VIND.ALLES. Die begint dus te zoeken op positie 7, bij de 2 van 25; het streepje op 6 ligt al achter het startpunt en kan niet nog eens gevonden worden.
- Vanaf 7 komt Excel langs 2 (7) en 5 (8) en vindt het tweede streepje op 9. De uitkomst is 9, geteld vanaf het begin van de tekst en niet vanaf 7.
- LINKS(A3; 9 - 1) wordt LINKS(A3; 8), en dat levert BNK12-25. Er is geen foutwaarde, dus ALS.FOUT laat de uitkomst door, en
C3toont BNK12-25. - In
C2staan de streepjes van VRK-25-0412 op 4 en 7, met als uitkomst VRK-25. InC4staan ze bij MEM-24-0019 ook op 4 en 7: MEM-24. - In
C5bevat OPENING geen streepje. De binnenste VIND.ALLES geeft #WAARDE!, en die foutwaarde loopt door de buitenste VIND.ALLES en LINKS heen. ALS.FOUT vangt hem op en geeftA5zelf terug: OPENING.
Let op: Vergeet je de + 1, dan begint de buitenste VIND.ALLES op het eerste streepje zelf, vindt dat opnieuw op 6, en levert LINKS BNK12. Dat lijkt een geldige dagboekcode, en niets wijst je op de fout.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 1 variant
Waarom het werkt
VIND.ALLES geeft altijd de eerste treffer vanaf het startpunt. Het tweede streepje is dus het eerste streepje dat na het eerste komt. Door de eerste positie plus één als begin_getal mee te geven, leg je het startpunt voorbij het eerste streepje.
De uitkomst telt nog steeds vanaf het begin van de tekst, en daardoor kan hij rechtstreeks in LINKS.
Meer om op te letten
- Zit er een streepje in de dagboekcode, zoals in BNK-EUR-25-0003, dan krijg je zonder foutwaarde BNK-EUR. De formule rekent op precies twee streepjes.
- ALS.FOUT geeft het hele boekstuknummer terug zodra er minder dan twee streepjes in staan, dus ook bij een verminkt nummer als VRK-250412. Zo'n rij komt in de draaitabel terecht alsof het een geldige groep is.
Varianten
=LINKS(A3,VIND.ALLES("#", SUBSTITUEREN(A3, "-", "#", 2)) - 1)
=LINKS(A3;VIND.ALLES("#"; SUBSTITUEREN(A3; "-"; "#"; 2)) - 1)
SUBSTITUEREN met rang_getal 2 vervangt alleen het tweede streepje door een #, en VIND.ALLES zoekt die # op. Voor het derde of vierde streepje verander je alleen het getal; dieper nesten is niet nodig.
ExpertExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)
Bankontvangsten afletteren op factuurnummer, zonder valse treffers
Je stemt het bankafschrift per jaareinde af op de debiteurenadministratie. Klanten betalen met een vrij in te vullen omschrijving, en de factuurnummers hebben de vorm INV26-0417. Een kleine inv negeert VIND.ALLES vanzelf, want het is hoofdlettergevoelig, maar de naam van één klant begint zelf met de hoofdletters INV, en in sommige omschrijvingen staat helemaal geen factuurnummer.
| Rij | A | B | C | D |
|---|---|---|---|---|
| 1 | Bankomschrijving | Ontvangen | Factuur | |
| 2 | Kavelmoor BV INV26-0417 | €1,210.00€ 1.210,00 | ||
| 3 | Tellinga inv INV26-0388 Q3 | €486.50€ 486,50 | ||
| 4 | INVESTA Holding INV26-0421 | €3,025.00€ 3.025,00 | INV26-0421=LET( omschrijving, A4, eerste, VIND.ALLES("INV", omschrijving), positie, ALS(ISGETAL(--DEEL(omschrijving, eerste + 3, 2)), eerste, VIND.ALLES("INV", omschrijving, eerste + 1)), ALS.FOUT(DEEL(omschrijving, positie, 10), "Geen factuurnr.") )=LET( omschrijving; A4; eerste; VIND.ALLES("INV"; omschrijving); positie; ALS(ISGETAL(--DEEL(omschrijving; eerste + 3; 2)); eerste; VIND.ALLES("INV"; omschrijving; eerste + 1)); ALS.FOUT(DEEL(omschrijving; positie; 10); "Geen factuurnr.") ) | |
| 5 | Visser Bouw 2026-0402 | €750.00€ 750,00 | ||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in C4
=LET( omschrijving,A4, eerste, VIND.ALLES("INV", omschrijving), positie, ALS(ISGETAL(--DEEL(omschrijving, eerste + 3, 2)), eerste, VIND.ALLES("INV", omschrijving, eerste + 1)), ALS.FOUT(DEEL(omschrijving, positie, 10), "Geen factuurnr.") )
=LET( omschrijving;A4; eerste; VIND.ALLES("INV"; omschrijving); positie; ALS(ISGETAL(--DEEL(omschrijving; eerste + 3; 2)); eerste; VIND.ALLES("INV"; omschrijving; eerste + 1)); ALS.FOUT(DEEL(omschrijving; positie; 10); "Geen factuurnr.") )
Resultaat: INV26-0421
Stap voor stap
- omschrijving is
A4: INVESTA Holding INV26-0421, 26 tekens. eerste is VIND.ALLES("INV"; omschrijving); de hoofdletters helemaal vooraan komen overeen, dus eerste is 1. - Bij positie controleert de formule of dit een echt factuurnummer is: direct na INV horen de twee cijfers van het jaar te staan. DEEL(omschrijving; 1 + 3; 2) wordt DEEL(omschrijving; 4; 2), en dat is ES. --"ES" geeft #WAARDE!, dus ISGETAL levert ONWAAR.
- ALS kiest daarom het derde argument: VIND.ALLES("INV"; omschrijving; 1 + 1). Het zoeken begint op positie 2 en slaat de INV van INVESTA over. INVESTA beslaat 1 tot en met 7, de spatie 8, Holding 9 tot en met 15, de spatie 16, en op 17 begint INV. positie is 17.
- DEEL(omschrijving; 17; 10) pakt de 10 tekens die een factuurnummer lang is: INV26-0421. Er is geen foutwaarde, dus ALS.FOUT laat de uitkomst door en
C4toont INV26-0421. - In
C3gaat het om Tellinga inv INV26-0388 Q3. VIND.ALLES slaat de kleineinvop 10 over, want het let op hoofdletters, en levert 14. DEEL(omschrijving; 17; 2) is 26, een getal, dus positie blijft 14 en de uitkomst is INV26-0388. VIND.SPEC zou al bij de kleineinvzijn gestopt. - In
C5staat Visser Bouw 2026-0402, zonderINV. eerste wordt #WAARDE!, de tweede VIND.ALLES neemt die foutwaarde via eerste + 1 over, positie wordt een foutwaarde, DEEL ook, en ALS.FOUT zet er Geen factuurnr. voor in de plaats. Die rij letter je met de hand af.
Let op: De omgekeerde fout is eerste als begin_getal in plaats van eerste + 1. De tweede VIND.ALLES begint dan op de I van INVESTA, vindt die nog eens op 1, en DEEL levert INVESTA Ho. Dat zijn 10 tekens die met INV beginnen, dus bij een snelle blik lijkt het een factuurnummer.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 1 variant
Waarom het werkt
Doordat VIND.ALLES op hoofdletters let, valt één soort valse treffers al weg: woorden in kleine letters waar inv in zit. begin_getal ruimt een tweede soort op: doorstaat de eerste INV de controle niet, dan zoekt de formule één teken verder opnieuw en vindt de volgende. VIND.ALLES telt posities vanaf het begin van de tekst, dus positie kan zo DEEL in. LET geeft eerste en positie een naam, en die ene ALS.FOUT aan het eind vangt alle manieren op waarop het mis kan gaan.
Dit lost één valse treffer per omschrijving op. Zijn de omschrijvingen langer en rommeliger, gebruik dit dan niet, want elke extra valse treffer kost een extra geneste VIND.ALLES. Een alternatief is de bank vragen om het gestructureerde betalingskenmerk, of de omschrijvingen in Power Query splitsen en afletteren; dan werk je wel buiten het werkblad.
Meer om op te letten
- VIND.SPEC in plaats van VIND.ALLES lijkt onschuldig en werkt op deze vier rijen ook nog, want de jaarcontrole keurt de kleine inv af en het tweede zoeken gaat verder. Maar komt er een omschrijving bij met twee valse treffers in kleine letters, dan gaat VIND.SPEC onderuit waar VIND.ALLES overeind blijft.
- De vaste lengte van 10 rekent op volgnummers van vier cijfers. Vanaf factuur 10000 valt het laatste cijfer eraf, zonder foutwaarde.
Varianten
=ALS.FOUT(DEEL(A4,VIND.ALLES("INV26-", A4), 10), "Geen factuurnr.")
=ALS.FOUT(DEEL(A4;VIND.ALLES("INV26-"; A4); 10); "Geen factuurnr.")
Zoek meteen naar een langer, specifieker patroon in plaats van achteraf te controleren. Korter, maar het jaartal staat vast in de formule en moet je elk jaar in januari aanpassen.
Veelgemaakte fouten
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| #WAARDE! op elke rij zonder treffer | ALS(VIND.ALLES("x"; A2) > 0; ...) geeft #WAARDE! op elke rij zonder x, in plaats van de ONWAAR-tak te nemen. | De foutwaarde komt dwars door de vergelijking en ALS heen. Test in plaats daarvan met ISGETAL(VIND.ALLES("x"; A2)). |
| #WAARDE! terwijl het woord in de cel staat | VIND.ALLES("totaal"; A2) geeft #WAARDE!, terwijl er in A2 duidelijk Totaal staat. | VIND.ALLES is hoofdlettergevoelig: totaal en Totaal zijn voor deze functie twee verschillende woorden. Neem VIND.SPEC als hoofdletters niet uitmaken. |
| #WAARDE! met * in de zoektekst | Je wilde met VIND.ALLES("INV*"; A2) elk factuurkenmerk vinden en kreeg #WAARDE!. | VIND.ALLES kent geen jokertekens en zoekt dus letterlijk naar INV met een sterretje erachter. Zoek alleen op INV, of gebruik VIND.SPEC, dat * en ? wel begrijpt. |
| Een hogere positie dan verwacht | Je gaf begin_getal 5 op, verwachtte een positie geteld vanaf 5 en kreeg een hoger getal. | begin_getal verplaatst alleen het startpunt van het zoeken. De uitkomst telt altijd vanaf het eerste teken van de tekst, en juist dat hebben LINKS, DEEL en RECHTS nodig. |
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)