Power BI Studio

DAX-templates HR

Drie measures die in elk HR-model thuishoren.

Een aanvulling op de AVG-checklist HR. Drie DAX-measures die de twaalf controlepunten in de praktijk brengen: hiërarchische RLS, verzuim met peildatum, en formatie-realisatie. Direct te kopiëren naar je eigen model.

Drie measuresExclusief voor checklist-downloaders
01

Hiërarchische RLS-rol (managers zien hun eigen organisatie-tak)

Manager A ziet alleen team A. Senior manager X ziet alle teams onder X. De RLS volgt de actuele organisatie-hiërarchie uit AFAS, Visma of Nmbrs — niet een handmatige user-mapping.

Waar gebruik je dit voor

Plaats deze filter op de medewerker-tabel als RLS-rol "ManagerRol". Gebruikt PATH-functies in DAX om de organisatie-hiërarchie te traversen.

Voorwaarden in je model

  • Medewerker-tabel heeft kolom Manager_UPN met de e-mail van de directe manager.
  • Berekende kolom Manager_Pad = PATH ( Medewerker[UPN], Medewerker[Manager_UPN] ).
  • Logged-in gebruiker is herkenbaar via USERPRINCIPALNAME ( ).
// RLS-rol: ManagerRol
// Plaats deze filter op de medewerker-tabel.
// Werkt voor elke nesting-diepte van de organisatie-hiërarchie.

VAR HuidigeUser = USERPRINCIPALNAME ()
RETURN
    PATHCONTAINS ( Medewerker[Manager_Pad], HuidigeUser )
        || Medewerker[UPN] = HuidigeUser

Hoe het werkt

PATHCONTAINS controleert of de huidige gebruiker ergens in het manager-pad van een medewerker voorkomt. De OR met UPN zorgt dat iedereen ook altijd zijn eigen rij ziet. Bij in- of uitstroom of een team-wissel hoef je niets te doen: de Manager_Pad-kolom wordt bij elke refresh herberekend uit AFAS/Visma/Nmbrs.

02

Verzuimpercentage met peildatum (historisch correct)

Het verzuimpercentage van vorig jaar moet vandaag dezelfde waarde geven als vorig jaar — ongeacht reorganisaties of medewerker-mutaties. Dat kan alleen met type-2 historiek (SCD2) op de medewerker-dimensie.

Waar gebruik je dit voor

Een measure die het verzuim-FTE deelt door het beschikbare-FTE op de peildatum die de gebruiker selecteert (slicer op Kalender-tabel).

Voorwaarden in je model

  • Feittabel Verzuim met datum-kolom en uren-kolom.
  • Medewerker-dimensie met SCD2: kolommen GeldigVan, GeldigTot, FTE.
  • Kalender-tabel verbonden aan Verzuim op datum (gewone 1-op-veel relatie).
// Measure: Verzuimpercentage[peildatum]
// Historisch correct: gebruikt SCD2-versies van de medewerker
// die geldig waren op de geselecteerde peildatum.

VAR Peildatum = MAX ( Kalender[Datum] )
VAR ActieveMedewerkers =
    CALCULATETABLE (
        Medewerker,
        Medewerker[GeldigVan] <= Peildatum,
        Medewerker[GeldigTot] >= Peildatum
    )
VAR BeschikbaarFTE =
    CALCULATE (
        SUMX ( ActieveMedewerkers, Medewerker[FTE] )
    )
VAR VerzuimFTE =
    DIVIDE ( SUM ( Verzuim[Uren] ), 8 * 5 )   // 8u/dag, 5 dagen/week
RETURN
    DIVIDE ( VerzuimFTE, BeschikbaarFTE )

Hoe het werkt

De measure pakt de actieve medewerker-versies op de peildatum (SCD2) en sommeert hun FTE. Het verzuim wordt in FTE-equivalent omgezet en gedeeld. Reorganisatie achteraf? Geen effect — de oude GeldigVan/Tot-rijen blijven staan, dus oude rapportages blijven kloppen.

03

Formatie-realisatie per organisatie-eenheid

HR-controllers willen weten: hoeveel FTE staat er op de formatie, en hoeveel is er werkelijk bezet — per afdeling, per peildatum. Het verschil is openstaande vacatures of overcapaciteit.

Waar gebruik je dit voor

Twee measures (Formatie en Bezetting) plus een derde voor de gap. Werkt op één organisatie-eenheid in een slicer, of geaggregeerd over de hele organisatie.

Voorwaarden in je model

  • Tabel Formatie met kolommen Org_Eenheid, GeldigVan, GeldigTot, GeplandFTE.
  • Medewerker-dimensie met SCD2 (zie vorige template).
  • Kalender-tabel verbonden aan beide via de peildatum-logica.
// Drie measures voor formatie versus realisatie
// op een gekozen peildatum.

Formatie FTE :=
VAR Peildatum = MAX ( Kalender[Datum] )
RETURN
    CALCULATE (
        SUM ( Formatie[GeplandFTE] ),
        Formatie[GeldigVan] <= Peildatum,
        Formatie[GeldigTot] >= Peildatum
    )

Bezetting FTE :=
VAR Peildatum = MAX ( Kalender[Datum] )
RETURN
    CALCULATE (
        SUM ( Medewerker[FTE] ),
        Medewerker[GeldigVan] <= Peildatum,
        Medewerker[GeldigTot] >= Peildatum
    )

Realisatie % :=
DIVIDE ( [Bezetting FTE], [Formatie FTE] )

Hoe het werkt

Beide measures gebruiken dezelfde peildatum-logica zodat ze altijd kloppen ten opzichte van elkaar. Realisatie boven 100% wijst op overcapaciteit (vaak inhuur), onder 100% op openstaande vacatures. Drilldown per Org_Eenheid laat zien waar het schuurt.

Wil je dit voor je hele HR-model?

Deze drie measures zijn de basis. In een HR Analytics Quick Scan (€1.950) audit ik je volledige model en lever ik een werkende set measures op maat — afgestemd op je AFAS-, Visma- of Nmbrs-data.

Plan een Quick Scan – €1.950

Deze pagina is een aanvulling op de AVG-checklist HR. Niet via het menu vindbaar — je ziet hem omdat je de checklist hebt opgevraagd.