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 contracthistorie

Opzegtermijn 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