Excel — Arbo- en CAO-registratie
Module 2 — Arbeidsomstandigheden & CAO
IF/AND voor overtredingen, WEEKDAY voor nacht- en weekendwerk, XLOOKUP voor CAO-overzichten.
Concepts
Arboregistratie en arbeidstijden in Excel
Karin bij VGS is verantwoordelijk voor de naleving van de Arbowet en de Arbeidstijdenwet. Ze moet bijhouden welke medewerkers gevaarlijke werkzaamheden uitvoeren, of er overtredingen zijn op de arbeidstijden, en wat de CAO-afspraken zeggen over toeslagen bij nacht- en weekendwerk. Excel helpt haar dit systematisch bij te houden.
In dit hoofdstuk leer je:
- IF/AND combineren om arbo-overtredingen te signaleren
- WEEKDAY gebruiken om nacht- en weekendshiften te detecteren
- XLOOKUP inzetten om CAO-schalen en toeslagpercentages op te zoeken
IF/AND voor arbo-overtredingen
De combinatie van `ALS()` en `EN()` is krachtig wanneer meerdere voorwaarden tegelijk moeten gelden.
STRUCTUUR IF/AND
Enkelvoudige IF:
=ALS(voorwaarde; waarde_als_waar; waarde_als_onwaar)
Gecombineerde IF/AND:
=ALS(EN(voorwaarde1; voorwaarde2); waarde_als_waar; waarde_als_onwaar)
Voorbeeld arbo: overtreding als werktijd >10 uur EN geen pauze geregistreerd:
=ALS(EN(E2>10; F2="Nee"); "⚠ OVERTREDING"; "OK")
Voorbeeld arbeidstijden: nachtshift EN jongere werknemer (<18):
=ALS(EN(G2="Nacht"; H2<18); "⚠ VERBODEN - jongere in nachtdienst"; "OK")
Voorbeeld arbo: gevaarlijke werkzaamheden zonder RI&E:
=ALS(EN(I2="Gevaarlijk"; J2="Nee"); "⚠ RI&E vereist"; "OK")> EXAMTIP: De Arbeidstijdenwet kent specifieke normen: maximaal 12 uur per dienst, maximaal 60 uur per week (gemiddeld 48 uur over 16 weken). Jongeren onder 18 jaar mogen niet 's nachts werken (tussen 23:00 en 06:00). Dit zijn harde grenzen die je in Excel kunt bewaken met IF/AND.
WEEKDAY voor nacht- en weekenddetectie
`WEEKDAG()` (WEEKDAY) geeft een getal terug dat de dag van de week aangeeft. Dit is handig om automatisch nacht- en weekendtoeslagen te berekenen.
WEEKDAG() retourneert | Betekenis
Standaard: 1=zondag, 7=zaterdag
Mode 2: 1=maandag, 7=zondag (aanbevolen voor NL)
Gebruik: =WEEKDAG(datum;2)
---
Weekenddetectie | Formule
=ALS(WEEKDAG(A2;2)>=6;"Weekend";"Werkdag")
Geeft "Weekend" op zaterdag (6) en zondag (7)
Handig voor weekendtoeslag CAO
---
Nachtshiftdetectie | Op basis van begintijd
=ALS(B2>=TIJDWAARDE("23:00");"Nacht";
ALS(B2<TIJDWAARDE("06:00");"Nacht";"Dag"))
Nacht = starten na 23:00 of voor 06:00TOESLAG BEREKENING MET WEEKDAG
Situatie: VGS-medewerker werkt op zaterdag en zondag extra.
CAO IT-bedrijven (fictief): weekendtoeslag 25% (za) en 50% (zo)
Formule voor toeslag:
=ALS(WEEKDAG(A2;2)=7; uurloon*1,5;
ALS(WEEKDAG(A2;2)=6; uurloon*1,25;
ALS(B2>=TIJDWAARDE("23:00"); uurloon*1,3; uurloon)))
Waarbij:
A2 = datum van de dienst
B2 = begintijd van de dienst
uurloon = verwijzing naar de uurlooncelXLOOKUP voor CAO-gegevens opzoeken
`XZOEKEN()` (XLOOKUP) is de moderne vervanger van VERT.ZOEKEN. Het zoekt in een kolom en geeft de bijbehorende waarde uit een andere kolom terug.
XLOOKUP SYNTAXIS
=XZOEKEN(zoekwaarde; zoekmatrix; retourmatrix; [als_niet_gevonden])
Voorbeeld: salarisschaal opzoeken op basis van functienaam:
=XZOEKEN(C2; CAO_tabel[Functie]; CAO_tabel[Schaal]; "Niet gevonden")
Voorbeeld: maximumsalaris opzoeken:
=XZOEKEN(D2; CAO_tabel[Schaal]; CAO_tabel[Maximum]; "Onbekend")
Voorbeeld: toeslagpercentage opzoeken op basis van diensttype:
=XZOEKEN(E2; Toeslagen[Type]; Toeslagen[Percentage]; 0)
Voordelen XLOOKUP ten opzichte van VLOOKUP:
- Kan ook naar links zoeken
- Geeft foutmelding zelf op met [als_niet_gevonden]
- Werkt met exacte én benaderende overeenkomst> EXAMTIP: Een CAO is een collectieve arbeidsovereenkomst tussen vakbonden en werkgeversorganisaties. Als een CAO algemeen verbindend is verklaard (avv), geldt deze voor alle werkgevers in de bedrijfstak, ook als ze geen lid zijn van de werkgeversorganisatie. In Excel kun je de CAO-tabellen als naslagtabel invoeren en via XLOOKUP snel de juiste waarden opzoeken.
Arbeidstijdenregistratie
De Arbeidstijdenwet verplicht werkgevers een correcte urenregistratie bij te houden. Een eenvoudige tijdregistratietabel in Excel:
TIJDREGISTRATIE VGS — STRUCTUUR
Kolom A: Naam medewerker
Kolom B: Datum
Kolom C: Begintijd
Kolom D: Eindtijd
Kolom E: Pauze (in minuten)
Kolom F: Netto uren
Formule: =(D2-C2)*24 - E2/60
Kolom G: Dag van de week
Formule: =TEKST(B2;"dddd")
Kolom H: Werkdag of weekend
Formule: =ALS(WEEKDAG(B2;2)>=6;"Weekend";"Werkdag")
Kolom I: Nachtshift
Formule: =ALS(C2>=TIJDWAARDE("23:00");"Ja";"Nee")
Kolom J: Overtreding dienst >12 uur
Formule: =ALS(F2>12;"⚠ MAX OVERSCHREDEN";"OK")
Wekelijks urentotaal met SOMALS:
=SOMALS(F:F; A:A; "Jurgen"; B:B; ">="&weekstart; B:B; "<="&weekend)Combinatie: arbo-dashboard
Door alle formules samen te brengen in één tabblad krijg je een arbo-dashboard:
ARBO-DASHBOARD STRUCTUUR
Tabblad 1: Medewerkerdata (naam, leeftijd, functie, contract)
Tabblad 2: Tijdregistratie (per dienst)
Tabblad 3: CAO-tabel (functies, schalen, toeslagen)
Tabblad 4: Dashboard (samenvattingen, waarschuwingen)
Samenvatting overtredingen (AANTALALS):
=AANTALALS(Tijdregistratie[Overtreding];"⚠*")
→ telt alle cellen die beginnen met het waarschuwingsteken
Samenvatting weekenduren per medewerker (SOMALS):
=SOMALS(Tijdregistratie[Netto uren];
Tijdregistratie[Naam]; A2;
Tijdregistratie[Dag type]; "Weekend")Missie
STORY: VGS heeft onlangs twee extra medewerkers ingezet voor avond- en weekendondersteuning bij een groot IT-project. Karin heeft een stapel tijdschrijfbriefjes ontvangen en wil deze nu correct registreren, de toeslagen berekenen en controleren of alle arbeidstijdenwetgrenzen zijn nageleefd. Ze vraagt jou om een registratiewerkboek op te zetten.
Stap 1 — Bouw de tijdregistratietabel
TIJDREGISTRATIE INVOERDATA (FICTIEF)
Naam | Datum | Begin | Eind | Pauze (min)
--------|------------|-------|-------|-------------
Thomas | 05-06-2026 | 22:00 | 06:30 | 30
Bas | 06-06-2026 | 08:00 | 20:30 | 45
Thomas | 07-06-2026 | 14:00 | 22:00 | 30
Bas | 07-06-2026 | 22:30 | 07:00 | 45 (zondag→maandag)
Thomas | 08-06-2026 | 08:00 | 21:00 | 30
Voeg de volgende berekende kolommen toe:
Kolom F (Netto uren): =(D2-C2)*24-E2/60
Let op: bij nachtdienst overmiddag (C2>D2): =(D2+1-C2)*24-E2/60
Kolom G (Dag): =TEKST(B2;"dddd")
Kolom H (Type dag): =ALS(WEEKDAG(B2;2)>=6;"Weekend";"Werkdag")
Kolom I (Nacht): =ALS(C2>=TIJDWAARDE("23:00");"Nacht";
ALS(C2<TIJDWAARDE("06:00");"Nacht";"Dag"))
Kolom J (Overtreding): =ALS(F2>12;"⚠ >12 uur";"OK")Stap 2 — Bouw de CAO-toeslagentabel en bereken toeslagen
CAO-TOESLAGENTABEL (TABBLAD 2 — FICTIEF)
Type dienst | Toeslag
-------------|--------
Dag | 0%
Avond | 15%
Nacht | 30%
Zaterdag | 25%
Zondag | 50%
Basisuurloon VGS: €18,50
Formule toeslag opzoeken (XLOOKUP):
=XZOEKEN(H2; CAO[Type dienst]; CAO[Toeslag]; 0)
Formule totale verdienste per dienst:
=(F2 * 18,50) * (1 + XZOEKEN(H2; CAO[Type]; CAO[Toeslag]; 0))
Resultaat:
Thomas (22:00–06:30 vr→za): 8 uur, nacht+weekend → €18,50 * 8 * 1,30 = €192,40
Bas (08:00–20:30): 12 uur, dag → €18,50 * 12 * 1,00 = €222,00
Bas (22:30–07:00 zo→ma): 8 uur, nacht → €18,50 * 8 * 1,30 = €192,40Stap 3 — Maak het overzicht en controleer op overtredingen
CONTROLEFORMULES
Totale uren per medewerker deze week:
Thomas: =SOMALS(F:F; A:A; "Thomas") → controleer of ≤60 uur
Bas: =SOMALS(F:F; A:A; "Bas") → controleer of ≤60 uur
Formule weekmaximum-waarschuwing:
=ALS(SOMALS(F:F;A:A;A2)>60;"⚠ WEEKMAX OVERSCHREDEN";"Week OK")
Aantal overtredingen totaal:
=AANTALALS(J:J;"⚠*")
Sla het werkboek op als: VGS_tijdregistratie_juni2026.xlsx
Verstuur het overzicht als PDF naar Karin voor het arbo-dossier.