Data Analysis Expressions (DAX) heeft 35 functies die specifiek zijn voor het aggregeren en vergelijken van gegevens in de loop van de tijd. In tegenstelling tot de datum- en tijdfuncties van DAX hebben time intelligence-functies niet echt iets vergelijkbaars in Excel. Dit komt doordat time intelligence-functies werken met gegevens die voortdurend veranderen, afhankelijk van de context die u selecteert in draaitabellen en Power View-visualisaties.
Als u wilt werken met time intelligence-functies, moet u een datumtabel hebben opgenomen in uw gegevensmodel. De datumtabel moet een kolom bevatten met één rij voor elke dag van elk jaar dat in uw gegevens is opgenomen. Deze kolom wordt beschouwd als de kolom Date (hoewel deze de naam kan hebben wat u wilt). Veel time intelligence-functies vereisen de datumkolom om te berekenen op basis van de datums die u als velden in een rapport selecteert. Als u bijvoorbeeld een meting hebt waarmee een eindkwartaalsaldo wordt berekend met behulp van de functie CLOSINGBALANCEQTR, zodat Power Pivot weet wanneer het einde van het kwartaal echt is, moet deze verwijzen naar de datumkolom in de datumtabel om te weten wanneer het kwartaal begint en eindigt. Zie Datumtabellen begrijpen en maken in Power Pivot in Excel voor meer informatie over datumtabellen.
Functies
Functies die één datum retourneren
Functies in deze categorie retourneren één datum. Het resultaat kan vervolgens worden gebruikt als argumenten voor andere functies.
De eerste twee functies in deze categorie retourneren de eerste of laatste datum in de Date_Column in de huidige context. Dit kan handig zijn als u de eerste of laatste datum wilt vinden waarop u een transactie van een bepaald type hebt uitgevoerd. Deze functies hebben slechts één argument, de naam van de datumkolom in de datumtabel.
De volgende twee functies in deze categorie vinden de eerste of laatste datum (of een andere kolomwaarde) waar een expressie een niet-lege waarde heeft. Dit wordt meestal gebruikt in situaties zoals inventaris, waarbij u het laatste voorraadbedrag wilt ophalen en u niet weet wanneer de laatste inventaris is gemaakt.
-
FIRSTNONBLANK (Date_Column, Expressie)
-
LASTNONBLANK (Date_Column, Expressie)
Nog zes functies die één datum retourneren, zijn de functies die de eerste of laatste datum van een maand, kwartaal of jaar retourneren binnen de huidige context van de berekening.
-
STARTOFMONTH (Date_Column)
-
STARTOFQUARTER (Date_Column)
-
BEGINJAAR (Date_Column [,YE_Date])
-
ENDOFMONTH (Date_Column)
-
ENDOFQUARTER (Date_Column)
-
ENDOFYEAR (Date_Column [,YE_Date])
Functies die een tabel met datums retourneren
Er zijn zestien time intelligence-functies die een tabel met datums retourneren. Meestal worden deze functies gebruikt als een Argument SetFilter voor de functie CALCULATE . Net als alle time intelligence-functies in DAX, neemt elke functie een datumkolom als een van de argumenten.
De eerste acht functies in deze categorie beginnen met een datumkolom in een huidige context. Als u bijvoorbeeld een meting in een draaitabel gebruikt, kan er een maand of jaar op de kolomlabels of rijlabels staan. Het netto-effect is dat de datumkolom wordt gefilterd om alleen de datums voor de huidige context op te nemen. Uitgaande van deze huidige context berekenen deze acht functies vervolgens de vorige (of volgende) dag, maand, kwartaal of jaar en retourneren deze datums in de vorm van één kolomtabel. De 'vorige' functies werken terug vanaf de eerste datum in de huidige context en de 'volgende' functies gaan verder vanaf de laatste datum in de huidige context.
-
VORIGE DAG (Date_Column)
-
VORIGEMONTH (Date_Column)
-
PREVIOUSQUARTER (Date_Column)
-
VORIG JAAR (Date_Column [,YE_Date])
-
VOLGENDE DAG (Date_Column)
-
VOLGENDEMONTH (Date_Column)
-
NEXTQUARTER (Date_Column)
-
VOLGEND JAAR (Date_Column [,YE_Date])
De volgende vier functies in deze categorie zijn vergelijkbaar, maar in plaats van een vorige (of volgende) periode te berekenen, berekenen ze de set datums in de periode die 'maand tot heden' is (of kwartaal tot heden, of jaar tot heden, of in dezelfde periode van het vorige jaar). Deze functies voeren allemaal hun berekeningen uit met behulp van de laatste datum in de huidige context. Houd er rekening mee dat SAMEPERIODLASTYEAR vereist dat de huidige context een aaneengesloten reeks datums bevat. Als de huidige context geen aaneengesloten reeks datums is, retourneert SAMEPERIODLASTYEAR een fout.
-
DATESMTD (Date_Column)
-
DATESQTD (Date_Column)
-
DATESYTD (Date_Column [,YE_Date])
-
SAMEPERIODLASTYEAR (Date_Column)
De laatste vier functies in deze categorie zijn iets complexer en ook iets krachtiger. Deze functies worden gebruikt om over te schakelen van de set datums die zich in de huidige context bevinden naar een nieuwe set datums.
-
DATEADD (Date_Column, Number_of_Intervals, Interval)
-
DATESBETWEEN (Date_Column, Start_Date, End_Date)
-
DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval)
-
PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval)
DATESBETWEEN berekent de set datums tussen de opgegeven begin- en einddatum. De resterende drie functies verplaatsen een aantal tijdsintervallen van de huidige context. Het interval kan dag, maand, kwartaal of jaar zijn. Met deze functies kunt u het tijdsinterval voor een berekening eenvoudig op een van de volgende manieren verplaatsen:
-
Terug twee jaar
-
Terug één maand
-
Drie kwartalen vooruitgaan
-
Terug 14 dagen
-
28 dagen vooruit
In elk geval hoeft u alleen op te geven welk interval en hoeveel van deze intervallen u wilt verplaatsen. Een positief interval gaat vooruit in de tijd, terwijl een negatief interval teruggaat in de tijd. Het interval zelf wordt opgegeven door een trefwoord van DAG, MAAND, KWARTAAL of JAAR. Deze trefwoorden zijn geen tekenreeksen, dus ze mogen niet tussen aanhalingstekens staan.
Functies die expressies gedurende een bepaalde periode evalueren
Deze categorie functies evalueert een expressie over een opgegeven periode. U kunt hetzelfde doen met CALCULATE en andere time intelligence-functies. Voorbeeld:
= TOTALMTD (Expression, Date_Column [, SetFilter])
is precies hetzelfde als:
= CALCULATE (Expression, DATESMTD (Date_Column)[, SetFilter])
Het is echter gemakkelijker om deze time intelligence-functies te gebruiken wanneer ze goed passen bij het probleem dat moet worden opgelost:
-
TOTALMTD (Expression, Date_Column [, SetFilter])
-
TOTALQTD (Expression, Date_Column [, SetFilter])
-
TOTALYTD (Expression, Date_Column [, SetFilter] [,YE_Date]) *
In deze categorie bevindt zich ook een groep functies waarmee de openings- en eindsaldi worden berekend. Er zijn bepaalde concepten die u moet begrijpen met deze specifieke functies. Ten eerste, zoals u misschien voor de hand ligt, is het openingssaldo voor elke periode hetzelfde als het eindsaldo van de vorige periode. Het eindsaldo omvat alle gegevens tot het einde van de periode, terwijl het openingssaldo geen gegevens uit de huidige periode bevat.
Deze functies retourneren altijd de waarde van een expressie die voor een bepaald tijdstip is geëvalueerd. Het tijdstip dat we belangrijk vindt, is altijd de laatst mogelijke datumwaarde in een kalenderperiode. Het beginsaldo is gebaseerd op de laatste datum van de vorige periode, terwijl het eindsaldo is gebaseerd op de laatste datum in de huidige periode. De huidige periode wordt altijd bepaald door de laatste datum in de context van de huidige datum.
-
OPENINGBALANCEMONTH (Expression, Date_Column [,SetFilter])
-
OPENINGBALANCEQUARTER Kwartaal (Expressie, Date_Column [,SetFilter])
-
OPENINGBALANCEYEAR (Expression, Date_Column [,SetFilter] [,YE_Date])
-
CLOSINGBALANCEMONTH (Expression, Date_Column [,SetFilter])
-
CLOSINGBALANCEQUARTER (Expression, Date_Column [,SetFilter])
-
CLOSINGBALANCEYEAR (Expression, Date_Column [,SetFilter] [,YE_Date])
Aanvullende bronnen
Artikelen: Datumtabellen begrijpen en maken in Power Pivot in Excel
Referentie: DAX-functiereferentieop Office.com
Voorbeelden: Winst- en verliesgegevensmodellering en -analyse met Microsoft PowerPivot in Excel