Excel — Personeelsdossier en contractbeheer
Module 1 — Arbeidsovereenkomst
Tabellen voor personeelsdossier, opzegtermijn en transitievergoeding berekenen, IF voor contracttype.
Concepts
Personeelsdossier als digitale werkelijkheid
Op ASZ4-niveau gaat contractbeheer verder dan alleen een contractregistratie. Karin bij VGS beheert een volledig personeelsdossier: arbeidsovereenkomsten, loonstroken, beoordelingsgesprekken, disciplinaire maatregelen en ontslagdossiers. Een goed opgezet Excel-werkboek vormt de ruggengraat van dit dossier.
In dit hoofdstuk leer je:
- een meerlaagsig personeelsdossier opzetten in Excel
- opzegtermijnen en transitievergoedingen precies berekenen
- contracttypes (bepaald/onbepaald/oproep) automatisch labelen
> EXAMTIP: Op ASZ4-niveau wordt verwacht dat je niet alleen weet hóé hoog de transitievergoeding is, maar ook wanneer deze NIET verschuldigd is: bij ontslag wegens ernstig verwijtbaar handelen van de werknemer, bij beëindiging tijdens proeftijd, bij wederzijds goedvinden (VSO) als de vergoeding in de overeenkomst is geregeld, en bij het bereiken van de AOW-leeftijd.
Tabellen voor het personeelsdossier
Een meerlaagsig dossier maakt gebruik van meerdere gekoppelde tabellen. Via INDEX/MATCH of XLOOKUP verbind je de tabellen.
Tabel 1: Medewerkersstamtabel | Basisgegevens
Naam, personeelsnummer, geboortedatum
Startdatum, contracttype, functie
Afdeling, kostenplaats, leidinggevende
---
Tabel 2: Contracthistorie | Per contract
Begindatum, einddatum, contracttype
Proeftijdduur, opzegtermijn, loon
Reden wijziging (nieuw/verlengd/omgezet)
---
Tabel 3: Beoordelingen | Per gesprek
Datum, beoordelaar, score (1-5)
Aandachtspunten, verbeterdoelen
Koppeling aan contracthistorieOpzegtermijn berekenen (werkgever en werknemer)
Op ASZ4-niveau kent u de differentiatie in opzegtermijnen én de opzegverboden (zie hoofdstuk ch01h). De berekening in Excel:
OPZEGTERMIJNEN BEREKENEN
Dienstjaren berekenen:
=GEHEELGETAL((VANDAAG()-startdatum)/365,25)
(GEHEELGETAL() rondt naar beneden af — geen halve jaren)
Opzegtermijn werkgever (wettelijk minimum, in maanden):
=ALS(dienstjaren<5;1;ALS(dienstjaren<10;2;ALS(dienstjaren<15;3;4)))
Opzegtermijn werknemer: altijd 1 maand (wettelijk)
Uiterste ontslagdatum bij opzegging vandaag:
=DATUM(JAAR(VANDAAG()); MAAND(VANDAAG())+opzegtermijn; DAG(VANDAAG()))
(opzegtermijn = uitkomst van bovenstaande ALS-formule)
Oproepkracht specifiek:
Bij contract < 6 maanden: geen opzegtermijn werkgever vereist
=ALS(contractduur_mnd<6;"Geen (< 6 mnd)";"Wettelijke opzegtermijn van toepassing")
Cao-correctie (als cao langere termijn schrijft):
=MAX(cao_opzegtermijn; wettelijke_opzegtermijn)Transitievergoeding nauwkeurig berekenen
Op niveau 4 moet u de transitievergoeding precies kunnen berekenen, inclusief de gevallen waarin deze NIET verschuldigd is.
TRANSITIEVERGOEDING BEREKENING (VOLLEDIG)
Basisberekening:
= (dienstjaren * maandloon) / 3
Exacte berekening met maanden:
Totale dienstmaanden = (einddatum - startdatum) / 30,44
Transitievergoeding = (totale_dienstmaanden / 12) * (maandloon / 3)
Excel-formule nauwkeurig:
=((einddatum-startdatum)/365,25) * (maandloon/3)
Maximum 2026: €98.000 (of 1 jaarsalaris indien hoger)
=MIN(((einddatum-startdatum)/365,25)*(maandloon/3); MAX(98000; maandloon*12))
GEEN TRANSITIEVERGOEDING bij:
IF-formule uitsluitingen:
=ALS(OF(reden="Proeftijd";
reden="Ernstig verwijtbaar werknemer";
reden="AOW-leeftijd";
EN(reden="VSO"; vso_vergoeding="Ja"));
"Niet verschuldigd";
"Verschuldigd: " & TEKST(berekend_bedrag;"€#.##0"))IF voor contracttype inclusief oproepcontracten
Op niveau 4 wordt ook het oproepcontract en de nulurencontract onderscheiden:
CONTRACTTYPE CLASSIFICATIE
Bepaald vs onbepaald (basis):
=ALS(einddatum="";"Onbepaalde tijd";"Bepaalde tijd")
Uitgebreid incl. oproepcontract:
=ALS(contracttype_code="OPR";"Oproepcontract";
ALS(contracttype_code="NUL";"Nulurencontract";
ALS(einddatum="";"Onbepaalde tijd";"Bepaalde tijd")))
Oproepkracht: recht op vaste uren na 12 maanden?
Na 12 maanden: werkgever moet aanbod doen voor vaste uren
Formule: datum aanbod aanbieden:
=ALS(contracttype="Oproep"; startdatum+365; "n.v.t.")
Aanbod-deadline verstreken?
=ALS(EN(contracttype="Oproep";
startdatum+365<VANDAAG());
"⚠ AANBOD VERPLICHT"; "n.v.t.")> EXAMTIP: Sinds de WAB (2020) heeft een oproepkracht na 12 maanden recht op een aanbod voor een vaste arbeidsomvang. De werkgever moet dit aanbod doen binnen 1 maand na de 12-maanden-periode. Doet hij dit niet, dan heeft de oproepkracht recht op loon over het gemiddeld aantal uren in de afgelopen 12 maanden.
Bedingen in het arbeidscontract bijhouden
Een personeelsdossier registreert ook welke bijzondere bedingen zijn afgesproken:
BEDINGEN OVERZICHT PER MEDEWERKER
Kolom: Proeftijdbeding (Ja/Nee + duur)
Kolom: Concurrentiebeding (Ja/Nee + looptijd)
Kolom: Relatiebeding (Ja/Nee)
Kolom: Geheimhoudingsbeding (Ja/Nee)
Kolom: Studiekostenbeding (Ja/Nee + terugbetalingsschema)
Controleer geldigheid concurrentiebeding bij bepaalde tijd:
=ALS(EN(einddatum<>""; concurrentiebeding="Ja");
"⚠ Zwaarwegend belang vereist voor geldig beding";
"OK")
Toelichting: bij bepaalde-tijdcontracten is een
concurrentiebeding alleen geldig als de werkgever
een zwaarwegend bedrijfsbelang heeft en dit motiveert.Missie
STORY: VGS heeft net een reorganisatiegesprek gehad. Drie posities komen te vervallen: Ahmed (onbep., 5,2 jaar), Thomas (bepaald, 1,3 jaar) en een nieuw ingehuurde oproepkracht. Karin wil het volledige personeelsdossier in Excel hebben met nauwkeurige berekeningen van transitievergoedingen en opzegtermijnen, inclusief een check op bijzondere bedingen.
Stap 1 — Bouw de stamtabel en contracthistorie
MEDEWERKERS STAMTABEL (TABEL 1)
Naam | P.nr | Geboortedatum | Startdatum | Contracttype | Maandloon
----------|------|---------------|------------|----------------|----------
Ahmed | P001 | 15-07-1985 | 01-03-2021 | Onbepaald | €3.000
Thomas | P005 | 22-11-1994 | 01-02-2025 | Bepaald | €2.600
Oproep-K | P009 | 08-04-2001 | 01-06-2025 | Oproepcontract | €2.200
Formule dienstjaren (kolom G):
=GEHEELGETAL((VANDAAG()-D2)/365,25)
Formule opzegtermijn werkgever (kolom H):
=ALS(G2<5;1;ALS(G2<10;2;ALS(G2<15;3;4))) & " maand(en)"
Formule opzegtermijn-einddatum (kolom I):
=DATUM(JAAR(VANDAAG());MAAND(VANDAAG())+GEHEELGETAL((VANDAAG()-D2)/365,25 < 5);DAG(VANDAAG()))
(vereenvoudigd: gebruik de maanden-uitkomst van kolom H)Stap 2 — Bereken de transitievergoedingen
TRANSITIEVERGOEDING BEREKENINGEN
Ahmed (startdatum 01-03-2021, einddatum stel 31-08-2026):
=((DATUM(2026;8;31)-DATUM(2021;3;1))/365,25)*(3000/3)
= (1979 / 365,25) * 1000
= 5,42 * 1000 = €5.415
Thomas (startdatum 01-02-2025, einddatum 31-01-2027):
=((DATUM(2027;1;31)-DATUM(2025;2;1))/365,25)*(2600/3)
= (729 / 365,25) * 867 = 1,99 * 867 = €1.727
Oproepkracht (startdatum 01-06-2025, stel ontslag 01-06-2026):
=((DATUM(2026;6;1)-DATUM(2025;6;1))/365,25)*(2200/3)
= 1 jaar * €733 = €733
Kolom: Transitievergoeding verschuldigd?
=ALS(OF(E2="Proeftijd";E2="Ernstig verwijtbaar");"Nee";"Ja")
Kolom: Bedingenoverzicht
Concurrentiebeding bij Thomas (bepaald contract):
=ALS(EN(F2="Bepaald";concurrentiebeding_Thomas="Ja");
"⚠ Motivering zwaarwegend belang vereist"; "OK")Stap 3 — Controleer oproepkracht-rechten
OPROEPKRACHT AANBOD-CHECK
Naam: Oproepkracht | Startdatum: 01-06-2025
Datum aanbod verplicht: =startdatum + 365 → 01-06-2026
Deadline aanbod (+ 1 mnd): =startdatum + 395 → 01-07-2026
Status op datum vandaag:
=ALS(VANDAAG()>startdatum+395;
"⚠ AANBOD VERLOPEN - recht op gem. uren";
ALS(VANDAAG()>startdatum+365;
"⚠ AANBOD VERPLICHT";
"Nog niet verplicht - nog " &
(startdatum+365-VANDAAG()) & " dagen"))
Gemiddeld aantal uren per week (voor aanbod):
Tel de gewerkte uren uit de tijdregistratie (stap 1 bij ch02f)
Bereken gemiddelde: =GEMIDDELDE(Tijdregistratie[Uren_per_week])
Sla op als: VGS_personeelsdossier_2026.xlsx