
Vrijdagmiddag, half vijf. Het rooster voor volgende week staat in een Excel-bestand met zeven tabbladen, en er komt net een appje binnen: twee mensen kunnen zaterdag niet. U schuift, u telt opnieuw, en u weet niet zeker meer of Marijke nu op 38 of op 41 uur staat.
Dit artikel geeft u de personeelsplanning in Excel die wél klopt: een volledig ingevuld weekrooster, de Nederlandse formules die de uren en de pauzes voor u berekenen, en een eerlijke lijst van wat Excel structureel niet kan.
Een bruikbaar rooster heeft minder kolommen dan de meeste mensen denken. Begintijd, eindtijd, pauze, netto uren, contracturen en uurloon. Dat is het. Alles wat u daarnaast toevoegt, vult u na drie weken niet meer in.
Wat wel loont: één regel per medewerker per week, niet per dienst. Zet de dagen naast elkaar in kolommen en houd het weektotaal helemaal rechts. Zo ziet u in één oogopslag wie boven of onder zijn contract zit, en dat is precies de vraag waarop u vrijdagmiddag antwoord wilt.
Hieronder een ingevulde week van een broodjeszaak in Utrecht met veertien medewerkers. De tijden zijn brutotijden; de kolom Uren is netto, dus na aftrek van de wettelijke pauze.
| Medewerker | Contract | Ma | Di | Wo | Do | Vr | Za | Zo | Uren |
| Marijke (38 j.) | 40 u | 07:00-15:30 | 07:00-15:30 | 07:00-15:30 | 07:00-15:30 | 07:00-15:30 | vrij | vrij | 40,0 |
| Sanne (21 j.) | 32 u | 08:00-16:30 | 08:00-16:30 | vrij | 08:00-16:30 | 08:00-16:30 | vrij | vrij | 32,0 |
| Youssef (24 j.) | 24 u | vrij | 11:00-17:30 | 11:00-17:30 | vrij | 11:00-17:30 | 11:00-17:30 | vrij | 24,0 |
| Fatima (22 j.) | 16 u | vrij | vrij | 12:00-18:00 | vrij | vrij | 10:00-16:00 | 11:00-16:00 | 16,0 |
| Lotte (19 j.) | 12 u | vrij | vrij | vrij | 16:00-21:00 | 16:00-21:00 | vrij | 11:00-13:00 | 12,0 |
| Daan (17 j.) | oproep | vrij | vrij | vrij | vrij | 17:00-21:00 | 12:00-18:00 | vrij | 9,5 |
| Totaal | 133,5 |
Kijk even naar Daan. Hij is zeventien, en voor jongeren onder de achttien geldt een andere pauzegrens: vanaf 4,5 uur per dienst in plaats van 5,5 uur. Zijn zaterdagdienst van 12:00 tot 18:00 levert daarom 5,5 netto uur op en niet 6. Dat soort detail is de reden dat handmatig ingetikte weektotalen bijna nooit precies kloppen.
Nog twee dingen die het bestand op langere termijn redden. Zet de beschikbaarheid op een apart tabblad en niet in een opmerkingenkolom, want opmerkingen leest niemand terug. En noem uw bestanden `rooster-2026-w12-def.xlsx` met het weeknummer erin, nooit `rooster nieuw definitief (2).xlsx`. Dat klinkt als een grap, maar in de helft van de zaken waar we binnenkomen bestaat dat tweede bestand echt, en niemand weet nog welke versie de medewerkers hebben gekregen.
Excel rekent met dagdelen, niet met uren. Het verschil tussen twee tijdcellen is dus altijd een fractie van 1, en daarom staat in vrijwel elke formule hieronder een vermenigvuldiging met 24. Wie dat vergeet, krijgt een weektotaal van 5,56 in plaats van 133,5 en denkt dat het bestand stuk is.
De formules zijn geschreven in het Nederlandstalige Excel, met puntkomma als scheidingsteken.
| Wat u wilt weten | Formule | Toelichting |
| Brutouren van een dienst | `=(C2-B2)*24` | eindtijd min begintijd, maal 24 |
| Pauze automatisch bepalen | `=ALS((C2-B2)24>=10;0,75;ALS((C2-B2)24>5,5;0,5;0))` | 45 min vanaf 10 uur, 30 min boven 5,5 uur |
| Nettouren van een dienst | `=(C2-B2)*24-D2` | D2 bevat de pauze in uren |
| Weektotaal per medewerker | `=SOM(E2:K2)` | alle dagen van die regel |
| Loonkosten van de week | `=SOMPRODUCT(L2:L7;M2:M7)` | nettouren maal uurloon |
| Afwijking van het contract | `=ALS(L2>N2;L2-N2;0)` | toont alleen de uren boven contract |
| Dubbele inroostering vinden | `=AANTAL.ALS(B$2:B$20;B2)>1` | markeert dezelfde naam tweemaal op één dag |
Twee valkuilen die u een middag kunnen kosten. De eerste is de celopmaak: staat de uitkomstkolom op tijdnotatie, dan toont Excel 9,5 uur als 09:30 en klopt uw optelling wel, maar uw loonberekening niet. Zet die kolom op Getal met één decimaal. De tweede is de nachtdienst. Een dienst van 22:00 tot 06:00 geeft met de gewone formule een negatieve uitkomst, omdat de eindtijd lager is dan de begintijd. Vang dat af met `=ALS(B2>C2;C2+1-B2;C2-B2)*24` en het probleem is weg.
Met die laatste kolom kunt u ook direct de loonkosten van de week zien. Reken de zes medewerkers hierboven door tegen het wettelijk minimumuurloon per 1 juli 2026: 14,99 euro voor 21 jaar en ouder, 8,99 euro voor een negentienjarige en 5,92 euro voor een zeventienjarige, aldus de Rijksoverheid. Marijke komt dan op 599,60 euro, Sanne op 479,68 euro, Youssef op 359,76 euro, Fatima op 239,84 euro, Lotte op 107,88 euro en Daan op 56,24 euro.
Samen: 1.843,00 euro brutoloon voor 133,5 uur. Werkgeverslasten komen daar nog bovenop. Eén dienst van zes uur die u vergeet te schrappen kost in dit rooster dus ongeveer negentig euro, en dat is per week.
Een spreadsheet controleert niets. Hij rekent alleen wat u hem vraagt, en daar zit het risico. Een formule die u zelf hebt ingebouwd, kan uzelf ook weer overschrijven; er gaat geen belletje af.
De Arbeidstijdenwet schrijft in artikel 5:4 voor dat een dienst van meer dan 5,5 uur wordt onderbroken door minimaal 30 minuten pauze, en een dienst van meer dan 10 uur door minimaal 45 minuten. Voor werknemers onder de achttien ligt die grens op 4,5 uur. Artikel 4:3 verplicht u daarnaast tot een deugdelijke registratie van arbeids- en rusttijden, en een rooster is geen registratie: het zegt wat u van plan was, niet wat er werkelijk is gewerkt. Dat onderscheid kost werkgevers bij een controle van de Nederlandse Arbeidsinspectie regelmatig de discussie.
De derde regel raakt iedereen die met oproepkrachten werkt. Sinds de Wet arbeidsmarkt in balans moet u een oproepkracht minimaal vier kalenderdagen van tevoren schriftelijk of elektronisch oproepen. Zegt u binnen die vier dagen af, dan houdt de medewerker recht op loon over de ingeroosterde uren. Een cao kan die termijn verkorten tot minimaal één dag.
Een retailketen in Eindhoven met drie vestigingen mailde het weekrooster elke vrijdagavond rond. Vrijdag 20:00 voor een dienst op maandag: dat is nog geen drie kalenderdagen. Twee annuleringen per maand op zaterdagdiensten van zes uur betekenden simpelweg twee keer doorbetalen zonder dat er iemand achter de kassa stond. Bij Shyfter zien we die fout het vaakst van allemaal, en bijna nooit uit onwil; het bestand werd gewoon pas vrijdag definitief.
Er is een kantelpunt, en het zit niet in het aantal medewerkers. Het zit in het aantal wijzigingen per week.
Zolang uw rooster van week tot week nagenoeg hetzelfde blijft, is Excel uitstekend. Vijf vaste krachten, vaste openingstijden, twee wijzigingen per maand: laat staan. Zodra u echter met deeltijd en beschikbaarheden werkt, verandert de aard van het probleem, want dan is elke wijziging een kettingreactie die u met de hand moet narekenen.
En in Nederland is dat eerder regel dan uitzondering. Volgens het CBS was in 2025 56 procent van alle werknemersbanen een deeltijdbaan: 5,2 miljoen deeltijdbanen tegenover 4,0 miljoen voltijdbanen, met een gemiddelde contractduur van 22 uur per week. Een team van vijftien mensen bestaat dus al snel uit tien roosters die elkaar raken.
Reken het eens door in uren van uzelf. Drie uur per week aan roosteren, heen en weer appen en achteraf uren overtypen, maal 47 werkweken, is 141 uur per jaar. Dat is bijna vier volle werkweken van de persoon die in uw zaak meestal het duurst is. Niet omdat Excel traag is, maar omdat elke wijziging opnieuw door de hele keten moet.
Drie signalen die in de praktijk betrouwbaar zijn:
Dat laatste punt is het duurst. Overtypen is geen administratie maar een foutenbron, en het is precies de stap die planningssoftware voor personeelsplanning laat verdwijnen: het rooster, de geklokte uren en de loonvoorbereiding lopen dan door dezelfde keten. De gewerkte uren komen binnen via urenregistratie in plaats van via een tweede spreadsheet, en de vier dagen oproeptermijn worden bewaakt door het systeem in plaats van door uw geheugen.
Wilt u toch eerst nog verder met Excel? Prima. Lees dan ook hoe u urenregistratie in Excel waterdicht opzet, en gebruik de stappen uit onze gids over een werkrooster maken om de structuur van uw bestand op orde te krijgen.
Twijfelt u waar uw zaak staat? Vraag een gratis demo aan en leg uw huidige Excel-bestand naast Shyfter. Een half uur is genoeg om te zien of de overstap in uw situatie iets oplevert.
Ja. De Arbeidstijdenwet schrijft geen bepaald hulpmiddel voor. Artikel 4:3 eist wel een deugdelijke registratie van arbeids- en rusttijden, en die moet de werkelijk gewerkte uren weergeven, niet alleen het geplande rooster. Een Excel-bestand voldoet dus pas als u de afwijkingen er ook consequent in bijhoudt.
Minimaal vier kalenderdagen, schriftelijk of elektronisch. Zegt u de dienst binnen die vier dagen af of verandert u de tijden, dan houdt de oproepkracht recht op loon over de oorspronkelijk ingeroosterde uren. In een cao kan die termijn worden verkort tot minimaal één dag, dus controleer altijd uw eigen cao.
Gebruik een geneste ALS-functie op de brutoduur van de dienst: 45 minuten vanaf 10 uur, 30 minuten boven 5,5 uur en anders nul. Vergeet niet het verschil tussen de twee tijdcellen met 24 te vermenigvuldigen, want Excel rekent in dagdelen. Voor medewerkers onder de achttien jaar zet u de drempel op 4,5 uur.
Het aantal medewerkers is de verkeerde maatstaf. Wat telt, is het aantal wijzigingen per week en het aandeel deeltijders. Een zaak met twintig vaste krachten en een stabiel rooster redt het prima met Excel; een team van acht met wisselende beschikbaarheid meestal niet.