Gids

Spreadsheetformules die je dagelijks gebruikt

Twintig functies, elk met een voorbeeld dat echt gedraaid heeft: de formule, en eronder het getal dat eruit kwam. Met de Nederlandse Excel-naam erbij, en met de twee gewoontes uit het Nederlandse Excel die hier niet werken.

Read this page in English

De tabel waarop deze voorbeelden draaien

Eén project, twee tabellen. Elke formule hieronder is tegen precies deze gegevens uitgevoerd, en de regel eronder is wat er terugkwam — ook bij de ene die iets anders teruggeeft dan je verwacht.

Verkoop. Acht rijen, vijf kolommen, geadresseerd als A tot en met E.
RijDatumRegioPakketPlekkenBedrag
12026-01-14NLBasic3120
22026-01-28BEPro1240
32026-02-11NLPro2480
42026-02-25DETeam4960
52026-03-09NLBasic5200
62026-03-23BETeam2480
72026-04-07NLPro1240
82026-04-21DEBasic6240
Pakketten. Een tweede tabel in hetzelfde project, aan te spreken als Pakketten.
RijPakketPrijsCredits
1Basic0200
2Pro143000
3Team246000
  • Geen kopregel. De naam van een kolom hoort bij de kolom en staat niet in rij 1, dus A1 is de eerste order en alle acht zijn A1:A8.
  • Puntkomma mag, komma in een getal niet. SUM(E1:E8; D1:D8) werkt. Maar 0,06 wordt gelezen als de argumenten 0 en 06, dus PMT(0,06/12; 60; 12000) geeft -24120 in plaats van -231.99. Om dezelfde reden staat er in elke uitkomst hieronder een punt: zo schrijft het blad ze.
  • Een kolomverwijzing betekent twee dingen. In [Bedrag] * 2 is het de cel van deze rij, in SUM([Bedrag]) de hele kolom. Kolomnamen zijn van jou, dus [Bedrag] en [Regio] mogen Nederlands blijven.
  • Elke tabel is een blad. Pakketten!A1:C3 is een rechthoek in de andere tabel, [Pakketten]![Prijs] een hele kolom ervan. Geen import, geen kopie.

Nederlandse en Engelse formulenamen naast elkaar

Excel vertaalt functienamen mee met je taalinstelling. Daarom kun je een formule van een Engelstalig forum niet zomaar plakken. Hier is er één set namen, de Engelse, dus de middelste kolom is wat je typt.

De namen die het vaakst worden opgezocht.
Nederlands (Excel)Engels (hier)Waarvoor
SOMSUMOptellen
GEMIDDELDEAVERAGEGemiddelde
AANTAL / AANTALARGCOUNT / COUNTATellen
AFRONDENROUNDAfronden
SOM.ALS / SOMMEN.ALSSUMIF / SUMIFSOptellen met voorwaarden
AANTAL.ALS / AANTALLEN.ALSCOUNTIF / COUNTIFSTellen met voorwaarden
ALSIFAls dit, dan dat
ALS.VOORWAARDENIFSGevallen op volgorde
ALS.FOUT / ALS.NBIFERROR / IFNAFout opvangen
EN / OF / NIETAND / OR / NOTVoorwaarden combineren
VERT.ZOEKENVLOOKUPVerticaal zoeken
HORIZ.ZOEKENHLOOKUPHorizontaal zoeken
X.ZOEKENXLOOKUPZoeken in elke richting
VERGELIJKENMATCHPositie
INDEXINDEXWaarde op een positie
TEKSTTEXTGetal naar tekst
LINKS / RECHTS / DEELLEFT / RIGHT / MIDStuk tekst
LENGTE / SPATIES.WISSENLEN / TRIMTekens, spaties
VANDAAGTODAYVandaag
JAAR / MAAND / DAGYEAR / MONTH / DAYDelen van een datum
DAGENDAYSDagen ertussen
LAATSTE.DAGEOMONTHLaatste dag van de maand
ZELFDE.DAGEDATEn maanden later
NETTO.WERKDAGEN / WERKDAGNETWORKDAYS / WORKDAYWerkdagen
ISO.WEEKNUMMERISOWEEKNUMWeeknummer
DATUMVERSCHILDATEDIFVerschil in dagen of maanden
BETPMTTermijnbedrag
NHW / IRNPV / IRRContante waarde, rentabiliteit
CORRELATIECORRELSamenhang
SOMPRODUCTSUMPRODUCTVermenigvuldigen en optellen

Ook de foutcodes blijven Engels: waar Excel #N/B, #VERW! en #DEEL/0! schrijft, staat hier #N/A, #REF! en #DIV/0!. Er is er één bij die Excel niet heeft, #CYCLE!, voor een formule die uiteindelijk om zichzelf vraagt.

SOM (SUM) en GEMIDDELDE (AVERAGE)

Allebei slaan ze lege cellen over en struikelen ze niet over tekst. Een gemiddelde over een leeg bereik geeft #DIV/0! en geen nul: “nog niets” en “niets verkocht” zijn twee verschillende uitspraken.

SUM(E1:E8)

→ 2960

SUM([Bedrag])

→ 2960 — dezelfde acht cellen, bij naam

AVERAGE(E1:E8)

→ 370

SOM.ALS (SUMIF) en SOMMEN.ALS (SUMIFS)

SUMIF krijgt eerst het bereik dat je toetst, dan de voorwaarde, en als laatste het bereik dat je optelt. Bij SUMIFS draait die volgorde om: het bereik dat je optelt komt eerst. Die omkering is de meest voorkomende reden dat een formule die als SUMIF klopte, als SUMIFS onzin teruggeeft.

SUMIF(B1:B8; "NL"; E1:E8)

→ 1040

SUMIFS(E1:E8; B1:B8; "NL"; C1:C8; "Pro")

→ 720 — de twee Nederlandse Pro-orders

Voorwaarden zijn gewone tekst en werken ook op datums, omdat een datum als ISO-tekst is opgeslagen en die goed sorteert.

SUMIFS(E1:E8; A1:A8; ">=2026-03-01"; B1:B8; "NL")

→ 440 — vanaf maart, alleen Nederland

AANTAL.ALS (COUNTIF) en AANTALLEN.ALS (COUNTIFS)

Dezelfde taal voor voorwaarden, maar tellend. * staat voor een willekeurig aantal tekens en ? voor één; hoofdletters maken niet uit.

COUNTIF(C1:C8; "B*")

→ 3 — elk pakket dat met een B begint

COUNTIFS(B1:B8; "NL"; E1:E8; ">200")

→ 2

ALS (IF), ALS.VOORWAARDEN (IFS) en ALS.FOUT (IFERROR)

Argumenten worden lui berekend: een tak die je niet neemt wordt niet uitgerekend. Daardoor kan IFERROR een fout opvangen zonder dat de hele cel omvalt.

IF([Regio]="NL"; [Bedrag]*21%; 0)

→ 100.8 op rij 3 — een procentteken achteraan deelt door honderd

IFS is een rij paren van voorwaarde en antwoord, eerste treffer wint. Sluit af met een losse TRUE; zonder dat krijgt een rij die nergens op past #N/A in plaats van een lege cel.

IFS([Bedrag]>=500; "groot"; [Bedrag]>=200; "middel"; TRUE; "klein")

→ groot op rij 4, klein op rij 1

IFERROR(VLOOKUP("Goud"; Pakketten!A1:C3; 2); 0)

→ 0 — er is geen pakket Goud

VERT.ZOEKEN (VLOOKUP) en X.ZOEKEN (XLOOKUP)

VLOOKUP zoekt in de eerste kolom van een rechthoek en geeft de n-de kolom van de gevonden rij terug. Eén verschil om te onthouden: het vierde argument wordt aangenomen en genegeerd, en er wordt altijd exact gezocht. De truc met een gesorteerde tabel met ondergrenzen, waarmee je in Excel een cijfer in een categorie stopt, doet hier dus niets. Gebruik IFS, wat sowieso beter leest.

VLOOKUP([Pakket]; Pakketten!A1:C3; 2)

→ 14 op rij 3 — de prijs van Pro

XLOOKUP krijgt de kolom waarin je zoekt en de kolom die je terug wilt als twee losse argumenten. Er wordt niets geteld, dus een ingevoegde kolom breekt niets, en het vierde argument is de waarde voor als er niets gevonden wordt. Dat scheelt de IFNA eromheen.

XLOOKUP("Goud"; Pakketten!A1:A3; Pakketten!B1:B3; 0)

→ 0 — geen treffer, geen #N/A, geen IFNA nodig

INDEX en VERGELIJKEN (MATCH)

MATCH geeft de positie van een waarde, INDEX de waarde op een positie. Samen doen ze wat XLOOKUP doet, in de vorm van voorXLOOKUP.

INDEX(Pakketten!C1:C3; MATCH("Pro"; Pakketten!A1:A3))

→ 3000 — de credits bij het Pro-pakket

Hier zit het enige voorbeeld op deze pagina dat een geloofwaardig verkeerd getal teruggeeft in plaats van een foutmelding. INDEX neemt één positie over een bereik dat rij voor rij wordt gelezen; de tweedimensionale vorm van Excel bestaat niet.

INDEX(Pakketten!A1:C3; 2; 2)

→ 0 — en niet 14, want positie 2 van de platgeslagen rechthoek

Geef INDEX dus één kolom en één positie. MATCH neemt eveneens twee argumenten en zoekt altijd exact, dus een geplakte MATCH(x; bereik; 0) klopt en een geplakte MATCH(x; bereik; 1) is stilletjes niet meer benaderend.

TEKST (TEXT)

TEXT maakt van een getal tekst in een opgegeven opmaak. Dit is de tweede plek waar je Nederlandse gewoonte niet werkt: TEXT rekent altijd met de Engelse schrijfwijze — punt als decimaalteken, komma voor duizendtallen. Een Nederlands patroon als "#.##0,00" wordt gelezen alsof je nul decimalen vraagt en geeft 2,960.

TEXT(SUM(E1:E8); "#,##0.00")

→ 2,960.00

Wil je het toch Nederlands, draai de twee tekens dan zelf om — via een derde teken, anders overschrijf je je eigen resultaat. Verder dekt het patroon drie dingen: decimalen, duizendtalscheiding en procenten. Geen datumopmaak, geen valutatekens, geen kleuren.

SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(SUM(E1:E8); "#,##0.00"); ","; "|"); "."; ","); "|"; ".")

→ 2.960,00

De datumfuncties

Datums zijn ISO-tekst — 2026-01-14 — omdat een datumkolom dat opslaat, het als tekst goed sorteert, en een rondje door JSON de dag niet verschuift door een tijdzone. Een dubbelzinnige datum wordt geweigerd in plaats van geraden, en dat raakt je hier direct: DATEVALUE("14-01-2026") geeft #VALUE! met de reden erbij, want die tekst kan dag-eerst of maand-eerst zijn. Schrijf 2026-01-14.

Gedraaid op de tabel Verkoop. A1 is 2026-01-14, A8 is 2026-04-21.
FormuleResultaat
DAYS(A8; A1)97 kalenderdagen
NETWORKDAYS(A1; A8)70 werkdagen, weekenden eruit
NETWORKDAYS("2026-01-01"; "2026-01-31"; "2026-01-01")21 — het derde argument zijn feestdagen
WORKDAY(A1; 10)2026-01-28
EOMONTH(A1; 0)2026-01-31 — en het klemt af: 31 januari plus een maand is 2026-02-28
EDATE(A1; 3)2026-04-14
DATEDIF(A1; A8; "M")3 hele maanden. Alleen D, M of Y
ISOWEEKNUM(A1)3 — het weeknummer dat de salarisadministratie bedoelt
YEAR(A1)2026. MONTH en DAY werken net zo
TODAY()De dag waarop het blad is doorgerekend, geen tikkende klok

BET (PMT) en NHW (NPV)

PMT is het termijnbedrag van een lening. De rente is per periode en niet per jaar, dus 6% per jaar bij maandbetaling is 0.06/12 — met een punt, want een komma splitst het argument. De uitkomst is negatief omdat het geld dat weggaat.

ROUND(PMT(0.06/12; 60; 12000); 2)

→ -231.99 per maand op 12.000 in vijf jaar; -230.84 bij vooruitbetaling

NPV verdisconteert een reeks kasstromen, en de eerste stroom die je meegeeft wordt één periode verdisconteerd, dus een bedrag dat je vandaag betaalt hoort er buiten. Doe je dat niet, dan verdisconteer je een investering een periode te veel en ziet elk project er beter uit dan het is. Elf financiële functies in totaal, waaronder FV, PV, NPER, RATE en IRR.

ROUND(NPV(0.1; 3000; 4200; 6800) - 10000; 2)

→ 1307.29 — de 10.000 van vandaag staat erbuiten

CORRELATIE (CORREL)

CORREL geeft de samenhang tussen twee reeksen, van -1 tot 1. Er zijn minstens twee paren nodig, het langere bereik wordt afgekapt op het kortere, en je krijgt #DIV/0! als een van beide nooit verandert. SLOPE, INTERCEPT, FORECAST en RSQ nemen hetzelfde paar bereiken.

ROUND(CORREL(D1:D8; E1:E8); 3)

→ 0.046 — plekken en omzet bewegen nauwelijks samen

ROUND(CORREL(Pakketten!B1:B3; Pakketten!C1:C3); 3)

→ 0.993 — prijs en inbegrepen credits lopen bijna gelijk op

Dat eerste getal is het nuttigst juist omdat het saai is: het aantal plekken zegt bijna niets over het bedrag, want het pakket bepaalt de prijs. Eén formule, en een grafiek die je later niet hoeft uit te leggen.

Wat er bewust niet is

Er zijn 167 functies. Negen ontbreken met opzet, en je hoort welke: de formule-editor van een kolom zegt het voordat je iets uitvoert, en een naam die je in een cel typt komt terug met de reden in plaats van een kaal #NAME? — horen dat iets bewust is weggelaten leest anders dan vermoeden dat je het verkeerd spelde.

Waar Excel iets doet wat dit niet doet. Excel wint elke rij.
ExcelHierWaarom
ASELECT, ASELECTTUSSENAfwezig.Een cel die bij elke weergave verandert, valt niet te vergelijken met wat hij een seconde eerder zei.
UNIEK, SORTEREN, FILTEREN, TRANSPONERENAfwezig.Ze schrijven in cellen die je niet selecteerde. Dat vraagt een overloopmodel, en een half model is erger dan geen.
INDIRECT, VERSCHUIVINGAfwezig.Ze bouwen een verwijzing uit tekst tijdens het rekenen, dus de cyclusbewaking ziet de afhankelijkheden niet vooraf.
Macro's en VBAAfwezig.Wat een macro automatiseert — herhaal dit over elke rij — is wat een formulekolom al is.
INDEX met rij en kolomEén positie.Staat er niet bij. Je krijgt de verkeerde cel in plaats van een fout.
Benaderend VERT.ZOEKEN en VERGELIJKENAltijd exact.Staat er niet bij. Het extra argument wordt genegeerd.
Nederlandse namen, decimale kommaEngelse namen, punt.Staat er niet bij. De puntkomma tussen argumenten mag wel.
Een miljoen rijen per bladOngeveer 50.000 comfortabel.Bij 100.000 weigert de browseropslag de schrijfactie.

Een formulekolom mag naar een andere verwijzen; een cel waar om gevraagd wordt terwijl hij al berekend wordt geeft #CYCLE! in plaats van je tabblad te laten hangen, en die bewaking kan alleen eerlijk zijn omdat INDIRECT ontbreekt. De volledige vergelijking staat op hoe dit zich verhoudt tot Excel, en verder staan formules in je scriptieresultaten en de cijfers achter een pitch deck klaar.

Veelgestelde vragen

Wat is het verschil tussen VERT.ZOEKEN en X.ZOEKEN?

X.ZOEKEN krijgt de kolom waarin je zoekt en de kolom die je terug wilt als twee losse argumenten, dus er wordt niets geteld en een ingevoegde kolom breekt niets. Het vierde argument is de waarde voor als er niets gevonden wordt. VERT.ZOEKEN telt kolommen binnen één rechthoek en kijkt alleen naar rechts. Hier zoeken ze allebei altijd exact.

Waarom krijg ik #VERW! of #N/B in beeld?

#VERW! betekent dat het adres buiten de tabel valt, of naar een tabel wijst die dit project niet heeft. #N/B betekent dat een zoekopdracht wel liep maar niets vond. Let op: Tougather toont de Engelse codes, dus je ziet #REF! en #N/A staan. Zet ALS.NB — hier IFNA — om de zoekopdracht heen, of geef XLOOKUP een vierde argument.

Hoe tel ik alleen bepaalde rijen op?

Met SOM.ALS voor één voorwaarde en SOMMEN.ALS voor meerdere, hier geschreven als SUMIF en SUMIFS. Let op de volgorde, want die draait om: bij SUMIF komt het bereik dat je optelt als laatste, bij SUMIFS als eerste. Voorwaarden zijn gewone tekst en werken ook op datums.

Waarom heten Excel-formules in het Nederlands anders?

Excel vertaalt functienamen mee met de taalinstelling: SUM wordt SOM, IF wordt ALS, VLOOKUP wordt VERT.ZOEKEN. Het bestand verandert niet, alleen wat je ziet, dus een formule uit een Engelse handleiding werkt pas na vertaling. Tougather houdt één set namen aan, de Engelse.

Werken Excel-formules ook in Tougather?

Grotendeels. Er zijn 167 functies. Je typt de Engelse naam — SOM en VERT.ZOEKEN geven #NAME? — maar de puntkomma tussen argumenten mag gewoon. De decimale komma niet: 0,06 leest de parser als twee argumenten, en dat levert een verkeerd getal op in plaats van een foutmelding. Negen functies ontbreken met opgaaf van reden: RAND, RANDBETWEEN, UNIQUE, SORT, FILTER, TRANSPOSE, INDIRECT, OFFSET en macro's.

Plak een CSV of een xlsx-bestand erin, zet een van deze formules op de kolom in plaats van in een cel, en dezelfde uitdrukking loopt over elke rij. Daar had je anders een macro voor nodig gehad.

Een spreadsheet openen

Back to the homepage