Excel — Personeelsregister & Werving

Module 1 — Personeelsinstrumenten

Tabellen, XLOOKUP en FILTER voor HR-administratie

Concepts

Waarom Excel in personeelsbeheer?

Een goed bijgehouden personeelsregister is de basis van elke HR-afdeling. Bij Van Ginkel Solutions BV werkt Karin als HR-manager met een team van 8 medewerkers. Ze registreert naam, functie, contractvorm, salarisschaal en beoordelingsscore voor elke medewerker. Excel is hierbij het meest gebruikte hulpmiddel: het combineert eenvoudige dataopslag met krachtige zoek- en filterfuncties.

In dit hoofdstuk leer je hoe je een gestructureerd personeelsregister opbouwt met Excel-tabellen en hoe je met XLOOKUP, FILTER en SORTBY direct bruikbare HR-inzichten genereert.

Excel-tabellen als fundament

Een Excel-tabel (invoegen via `Invoegen → Tabel`) geeft je data structuur en maakt formules dynamisch. Zodra je een tabel aanmaakt, krijgt elke kolom een koptekst en worden formules automatisch doorgetrokken bij nieuwe rijen.

Tabel: Personeelsregister_VGS
| Naam           | Functie         | Contract   | Schaal | Beoordeling |
|----------------|-----------------|------------|--------|-------------|
| Thijs Bakker   | Accountmanager  | Vast       | 7      | 8.2         |
| Sara Jansen    | Logistiek mw.   | Tijdelijk  | 5      | 7.5         |
| Marco de Vries | Directeur       | Vast       | 12     | 9.0         |
| Lena Smits     | HR-manager      | Vast       | 9      | 8.7         |
| Kevin Hoorn    | Accountmanager  | Tijdelijk  | 7      | 6.9         |
| Mia Brouwer    | Logistiek mw.   | Vast       | 5      | 7.8         |
| Daan Peters    | IT-coördinator  | Vast       | 8      | 8.4         |
| Sofie Visser   | Accountmanager  | Tijdelijk  | 7      | 7.1         |

Door de tabel de naam `Personeelsregister_VGS` te geven, kun je er in formules direct naar verwijzen met `Personeelsregister_VGS[Naam]` in plaats van een cellenbereik zoals `A2:A9`.

XLOOKUP: functieschalen opzoeken

Salarisschalen liggen vast in een aparte tabel. XLOOKUP vervangt VLOOKUP en is flexibeler: je zoekt op elke kolom en kunt een nette foutmelding instellen.

Tabel: Salarisschalen
| Schaal | Min (bruto/mnd) | Max (bruto/mnd) |
|--------|-----------------|-----------------|
| 5      | € 2.100         | € 2.600         |
| 7      | € 2.800         | € 3.400         |
| 8      | € 3.200         | € 3.900         |
| 9      | € 3.700         | € 4.500         |
| 12     | € 5.200         | € 6.800         |

Formule: minimum salaris opzoeken voor medewerker in rij 2
=XLOOKUP(D2; Salarisschalen[Schaal]; Salarisschalen[Min (bruto/mnd)]; "Schaal onbekend")

XLOOKUP werkt ook omgekeerd (van rechts naar links) en geeft een volledige rij terug als je het derde argument uitbreidt met meerdere kolommen.

> EXAMTIP: XLOOKUP heeft drie verplichte argumenten: zoekwaarde, zoekmatrix, retourmatrix. Een vierde argument is de foutwaarde (bijv. "Niet gevonden"). Dit is handiger dan VLOOKUP waarbij je bij een fout een aparte IFERROR nodig hebt.

FILTER: kandidaten filteren op criteria

Tijdens een wervingsprocedure verzamelt Karin gegevens van sollicitanten. Met FILTER kun je dynamisch een subset van rijen tonen die aan meerdere criteria voldoen.

Tabel: Sollicitanten
| Naam            | Functie        | Opleiding | Ervaring(j) | Beschikbaar |
|-----------------|----------------|-----------|-------------|-------------|
| Rob Koster      | Accountmanager | HBO        | 3           | Ja          |
| Inge Mulder     | Logistiek mw.  | MBO        | 1           | Nee         |
| Tim Kuijpers    | Accountmanager | HBO        | 5           | Ja          |
| Anna Dekker     | IT-coördinator | WO         | 2           | Ja          |
| Piet de Groot   | Accountmanager | MBO        | 4           | Ja          |

Formule: toon alle HBO-opgeleide accountmanagers die beschikbaar zijn
=FILTER(Sollicitanten;
  (Sollicitanten[Functie]="Accountmanager") *
  (Sollicitanten[Opleiding]="HBO") *
  (Sollicitanten[Beschikbaar]="Ja");
  "Geen kandidaten gevonden")

De `*` tussen haakjes werkt als EN-operator. Een `+` werkt als OF. FILTER geeft een dynamisch bereik terug dat automatisch groeit of krimpt.

SORTBY: beoordelingen rangschikken

Na de jaargesprekken wil Karin de medewerkers rangschikken op beoordelingsscore om te bepalen wie in aanmerking komt voor loonsverhoging.

Formule: sorteer personeelsregister op beoordeling (hoog naar laag)
=SORTBY(
  Personeelsregister_VGS[[Naam]:[Beoordeling]];
  Personeelsregister_VGS[Beoordeling];
  -1
)

Resultaat:
| Naam           | Functie         | Contract  | Schaal | Beoordeling |
|----------------|-----------------|-----------|--------|-------------|
| Marco de Vries | Directeur       | Vast      | 12     | 9.0         |
| Lena Smits     | HR-manager      | Vast      | 9      | 8.7         |
| Daan Peters    | IT-coördinator  | Vast      | 8      | 8.4         |
| Thijs Bakker   | Accountmanager  | Vast      | 7      | 8.2         |
| Mia Brouwer    | Logistiek mw.   | Vast      | 5      | 7.8         |
| Sara Jansen    | Logistiek mw.   | Tijdelijk | 5      | 7.5         |
| Sofie Visser   | Accountmanager  | Tijdelijk | 7      | 7.1         |
| Kevin Hoorn    | Accountmanager  | Tijdelijk | 7      | 6.9         |

Het argument `-1` sorteert aflopend (hoogste waarde bovenaan). Gebruik `1` voor oplopend.

XLOOKUP | opzoeken
Zoekt een waarde in een kolom en geeft een waarde uit een andere kolom terug
Vervangt VLOOKUP en HLOOKUP
Geeft nette foutwaarde terug als niet gevonden
---
FILTER | filteren
Filtert een tabel op één of meerdere criteria
Dynamisch: past automatisch aan bij nieuwe data
Gebruik * voor EN, + voor OF
---
SORTBY | sorteren
Sorteert een bereik op basis van een andere kolom
-1 = aflopend, 1 = oplopend
Kan op meerdere kolommen tegelijk sorteren

> EXAMTIP: FILTER, SORTBY en XLOOKUP zijn zogeheten "dynamische matrix-functies" (beschikbaar in Excel 365 en Excel 2021). Ze spilten hun resultaat automatisch over meerdere cellen — dit heet "spill". Zorg dat de cellen eronder leeg zijn, anders geeft Excel een #SPILL! fout.

Missie

STORY: Karin heeft een stapel papieren personeelsdossiers laten digitaliseren. De data staat nu in een ruw Excel-bestand, maar er is geen structuur. Jij gaat het personeelsregister van Van Ginkel Solutions BV professionaliseren: een nette tabel aanmaken, salarisschalen koppelen met XLOOKUP en een wervingsfilter bouwen voor de openstaande accountmanagersvacature.

Stap 1 — Personeelsregister als tabel opzetten

Selecteer de personeelsdata (inclusief kopteksten) en zet deze om naar een officiële Excel-tabel via het lint.

Stappen:
1. Selecteer cel A1 t/m E9 (koptekst + 8 medewerkers)
2. Lint → Invoegen → Tabel → vink "Mijn tabel heeft kopteksten" aan
3. Klik rechts op de tabel → Tabelnaam wijzigen → typ: Personeelsregister_VGS
4. Voeg kolom F toe met de koptekst "Min Salaris"
5. Typ in F2 de formule:
   =XLOOKUP([@Schaal]; Salarisschalen[Schaal]; Salarisschalen[Min (bruto/mnd)]; "Onbekend")
6. Excel vult de formule automatisch door voor alle rijen

Stap 2 — Beoordelingen sorteren voor functioneringsgesprekken

Karin wil weten wie de beste beoordelingen heeft voor de jaarlijkse salarisronde. Maak een apart werkblad "Ranglijst" aan.

Stappen:
1. Maak een nieuw werkblad aan (tab onderaan) met de naam "Ranglijst"
2. Klik op cel A1 in dit werkblad
3. Typ de formule:
   =SORTBY(
     Personeelsregister_VGS[[Naam]:[Beoordeling]];
     Personeelsregister_VGS[Beoordeling];
     -1
   )
4. De ranglijst verschijnt automatisch met de hoogste beoordeling bovenaan
5. Voeg boven de tabel een koptekst toe: "Beoordelingsranglijst — Van Ginkel Solutions BV"

Stap 3 — Wervingsfilter voor accountmanagersvacature

Er is een vacature voor een vaste accountmanager. Karin wil een shortlist van kandidaten met HBO-opleiding en minimaal 3 jaar ervaring. Maak een werkblad "Werving" aan.

Stappen:
1. Kopieer de sollicitantentabel naar werkblad "Werving"
2. Klik op een lege cel onder de tabel (bijv. A10)
3. Typ de shortlist-formule:
   =FILTER(
     Sollicitanten;
     (Sollicitanten[Functie]="Accountmanager") *
     (Sollicitanten[Opleiding]="HBO") *
     (Sollicitanten[Ervaring(j)]>=3) *
     (Sollicitanten[Beschikbaar]="Ja");
     "Geen geschikte kandidaten gevonden"
   )
4. Voeg een label toe boven de uitvoer: "Shortlist accountmanagersvacature"
5. Controleer of Rob Koster en Tim Kuijpers in de shortlist staan