Data Woordenboek

Semi-additieve measure

Wat is een semi-additieve measure?

Een semi-additieve measure is een getal dat je over sommige dimensies mag optellen, maar niet over alle. In de praktijk is de dimensie waarover het niet mag bijna altijd tijd. Kimball zegt het zelf onomwonden: semi-additieve measures kan je over sommige dimensies optellen maar niet over andere, en saldobedragen zijn het courante geval omdat ze optelbaar zijn over elke dimensie behalve tijd.

Het schoolvoorbeeld is een banksaldo. Als drie klanten 100, 200 en 300 euro aanhouden, is het totaal 600 euro, dus een saldo telt netjes op over klanten. Maar als één rekening op maandag 500 euro bevat en op dinsdag nog altijd 500 euro, dan heeft de klant geen 1000 euro. Een saldo optellen over dagen telt hetzelfde geld dubbel. De measure is optelbaar over klant en niet-optelbaar over tijd, en net dat maakt ze semi-additief.

Additief, semi-additief en niet-additief

Measures in een feitentabel vallen in drie groepen, en het verschil zit in over welke dimensies je mag optellen.

  • Additief. Optelbaar over elke dimensie. Verkoopomzet en verkochte stuks zijn additief: tel ze op over product, winkel en datum en het antwoord klopt altijd. Dit zijn de makkelijkste measures om mee te werken en de measures die je het liefst hebt.

  • Semi-additief. Optelbaar over sommige dimensies maar niet over andere, meestal niet over tijd. Rekeningsaldo's, voorraad op hand en personeelsaantal gedragen zich zo: geldig over rekeningen, producten of afdelingen, fout wanneer je ze over datums optelt.

  • Niet-additief. Over geen enkele dimensie optelbaar. Verhoudingen en percentages zoals marge of conversiegraad horen hier. Je kan geen twee marges bij elkaar optellen; je moet de optelbare delen bewaren, de teller en de noemer, en de verhouding op het einde berekenen.

Waarom saldo's en voorraad zich zo gedragen

Semi-additieve measures duiken op zodra een feitentabel een stand vastlegt in plaats van een stroom. Een verkoop is een stroom: elke rij is een nieuwe gebeurtenis, en gebeurtenissen tellen op doorheen de tijd. Een saldo is een stand: elke rij herhaalt dezelfde staande hoeveelheid op een nieuw moment. Herhalen is niet hetzelfde als optellen.

Daarom leven semi-additieve measures in een snapshot fact table, die de toestand van iets op vaste tijdstippen vastlegt: het saldo bij het sluiten van elke dag, de voorraadtelling op het einde van elke week. De snapshotkorrel is wat het semi-additieve gedrag veroorzaakt, want snapshots over tijd optellen voegt een hoeveelheid bij zichzelf.

Hoe tel je op over tijd?

Omdat over tijd optellen fout is, kies je een andere regel voor de tijddimensie terwijl je over de rest wel optelt. Twee regels dekken de meeste gevallen.

De eerste is de waarde op één moment nemen, meestal de laatste in de periode. De voorraad op hand in december is de slotsnapshot van het jaar, niet de som van twaalf maandsnapshots. De tweede is middelen over tijd, wat past bij vragen zoals de gemiddelde voorraad over een kwartaal.

In Power BI is dit een courante reden om een measure in DAX te schrijven in plaats van op de standaardoptelling te leunen. Het patroon combineert een gewone optelling over de andere dimensies met een tijdregel, zoals de laatste datum met data in de huidige periode. Functies uit de time-intelligencefamilie, zoals die het slotsaldo van een periode zoeken, bestaan net voor semi-additieve measures.

Slotvoorraad =
CALCULATE (
    SUM ( Inventory[Units] ),
    LASTNONBLANK ( 'Date'[Date], 1 )
)

De measure telt de stuks nog altijd op over elk product en elk magazijn. Het stuk LASTNONBLANK beperkt de tijddimensie tot de laatste datum met data, zodat de periode de slotstand toont in plaats van een betekenisloze doorlopende som.

Waar moet je op letten bij semi-additieve measures

De standaardoptelling is stil fout. Een BI-tool telt een saldo vrolijk op over maanden en toont een totaal dat plausibel lijkt en onzin is. Er komt geen foutmelding, dus de vergissing overleeft tot iemand het cijfer tegen de bron controleert.

Laatste is niet het enige antwoord. Slotwaarde, openingswaarde en gemiddelde beantwoorden elk een andere vraag. Beslis wat het rapport echt wil voor je de measure schrijft, want in een beweeglijke maand kan het verschil groot zijn.

Lege periodes doen slotlogica struikelen. Ontbreekt de snapshot voor de laatste dag, dan geeft een naïeve regel op de laatste datum niets terug. Daarom zoekt het DAX-patroon de laatste datum met data en niet de laatste datum op de kalender.

Measuretypes mengen in één visual misleidt. Een additief totaal naast een semi-additief saldo in dezelfde tijdgrafiek zetten nodigt lezers uit om ze te vergelijken alsof ze op dezelfde manier optellen. Label ze duidelijk, of houd ze apart.

Laatst Bijgewerkt: July 18, 2026 Terug naar Woordenboek
Trefwoorden
semi-additieve measure feitentabel (fact table) granulariteit (grain) snapshot fact table dax (data analysis expressions) power bi datamodellering business intelligence