Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Datumtabellen in Power Pivot zijn essentieel voor het bladeren en berekenen van gegevens in de tijd. Dit artikel bevat een uitgebreid inzicht in datumtabellen en hoe u deze kunt maken in Power Pivot. In dit artikel wordt met name het volgende beschreven:

  • Waarom een datumtabel belangrijk is voor het bladeren en berekenen van gegevens op datums en tijd.

  • Power Pivot gebruiken om een datumtabel toe te voegen aan het gegevensmodel.

  • Nieuwe datumkolommen maken, zoals Jaar, Maand en Punt in een datumtabel.

  • Relaties maken tussen datumtabellen en feitentabellen.

  • Werken met tijd.

Dit artikel is bedoeld voor gebruikers die nieuw zijn in Power Pivot. Het is echter belangrijk om al een goed begrip te hebben van het importeren van gegevens, het maken van relaties en het maken van berekende kolommen en metingen.

In dit artikel wordt niet beschreven hoe u DAX-Time-Intelligence gebruiken in maatformules. Zie Time Intelligence in Power Pivot in Excel voor meer informatie over het maken van metingen met DAX Time Intelligence-functies.

Opmerking: In Power Pivot zijn de namen 'meting' en 'berekend veld' synoniem. We gebruiken de naammaat in dit artikel. Zie Metingen in Power Pivot voor meer informatie.

Inhoud

Informatie over datumtabellen

Bij bijna alle gegevensanalyses wordt gebladerd en gegevens vergeleken over datums en tijd. U wilt bijvoorbeeld de verkoopbedragen voor het afgelopen fiscale kwartaal optelen en deze totalen vervolgens vergelijken met andere kwartalen, of u wilt mogelijk een eindsaldo voor een account berekenen. In elk van deze gevallen gebruikt u datums als een manier om verkooptransacties of saldi voor een bepaalde periode te groeperen en te aggregeren.

Power View rapport

Draaitabel voor totale verkoop per fiscaal kwartaal

Een datumtabel kan veel verschillende weergaven van datums en tijd bevatten. Een datumtabel heeft bijvoorbeeld vaak kolommen zoals Boekjaar, Maand, Kwartaal of Periode die u kunt selecteren als velden in een lijst met velden wanneer u gegevens in draaitabellen of Power View filtert.

Power View lijst met velden

Lijst met Power View-velden

Voor datumkolommen zoals Jaar, Maand en Kwartaal om alle datums binnen het desbetreffende bereik op te nemen, moet de datumtabel ten minste één kolom met een aaneengesloten set datums bevatten. Dat wil zeggen dat die kolom één rij moet hebben voor elke dag voor elk jaar dat in de datumtabel is opgenomen.

Als de gegevens die u wilt bladeren bijvoorbeeld datums hebben van 1 februari 2010 tot en met 30 november 2012 en u rapporteert over een kalenderjaar, wilt u een datumtabel met ten minste een datumbereik van 1 januari 2010 tot en met 31 december 2012. Elk jaar in de datumtabel moet alle dagen voor elk jaar bevatten. Als u regelmatig uw gegevens met nieuwere gegevens ververst, wilt u de einddatum mogelijk een jaar of twee uitlopen, zodat u de datumtabel niet hoeft bij te werken naarmate de tijd vergaat.

Datumtabel met een aaneengesloten set datums

Datumtabel met aaneengesloten datums

Als u rapporteert over een fiscaal jaar, kunt u een datumtabel maken met een aaneengesloten set datums voor elk fiscaal jaar. Als uw fiscale jaar bijvoorbeeld begint op 1 maart en u gegevens voor fiscale jaren 2010 tot en met de huidige datum hebt (bijvoorbeeld in FY 2013), kunt u een datumtabel maken die begint op 1-3-2009 en ten minste elke dag in elk fiscale jaar tot en met de laatste datum in fiscaal jaar 2013 bevat.

Als u zowel het kalenderjaar als het fiscale jaar rapporteert, hoeft u geen afzonderlijke datumtabellen te maken. Eén datumtabel kan kolommen bevatten voor een kalenderjaar, fiscaal jaar en zelfs een kalender met een periode van dertien weken. Het belangrijkste is dat de datumtabel een aaneengesloten set datums bevat voor alle jaren inbegrepen.

Een datumtabel toevoegen aan het gegevensmodel

Er zijn verschillende manieren waarop u een datumtabel kunt toevoegen aan uw gegevensmodel:

  • Importeren uit een relationele database of een andere gegevensbron.

  • Maak een datumtabel in Excel en kopieer of maak een koppeling naar een nieuwe tabel in Power Pivot.

  • Importeren uit Microsoft Azure Marketplace.

Laten we deze allemaal beter bekijken.

Importeren uit een relationele database

Als u bepaalde of alle gegevens importeert uit een gegevensopslagplaats of een ander type relationele database, is de kans groot dat er al een datumtabel en relaties zijn tussen deze database en de rest van de gegevens die u importeert. De datums en opmaak komen waarschijnlijk overeen met de datums in uw feitelijke gegevens, en de datums beginnen waarschijnlijk goed in het verleden en gaan ver in de toekomst. De datumtabel die u wilt importeren, kan zeer groot zijn en een bereik met datums bevatten die verder gaan dan wat u in uw gegevensmodel moet opnemen. U kunt de geavanceerde filterfuncties van de wizard Tabel importeren van Power Pivot gebruiken om selectief alleen de datums en de specifieke kolommen te kiezen die u echt nodig hebt. Dit kan de grootte van uw werkmap aanzienlijk verminderen en de prestaties verbeteren.

Wizard Tabel importeren

Wizard Tabel importeren

In de meeste gevallen hoeft u geen extra kolommen te maken, zoals Fiscaal jaar, Week, Maandnaam, enzovoort, omdat deze al in de geïmporteerde tabel aanwezig zijn. In sommige gevallen moet u echter, afhankelijk van een bepaalde rapportage, extra datumkolommen maken nadat u de datumtabel hebt geïmporteerd in uw gegevensmodel. Gelukkig is dit eenvoudig te doen met DAX. Later vindt u meer informatie over het maken van datumtabelvelden. Elke omgeving is anders. Als u niet zeker weet of uw gegevensbronnen een gerelateerde datum- of agendatabel hebben, kunt u met de databasebeheerder praten.

Een datumtabel maken in Excel

U kunt een datumtabel maken in Excel en deze vervolgens kopiëren naar een nieuwe tabel in het gegevensmodel. Dit is heel eenvoudig te doen en biedt u veel flexibiliteit.

Wanneer u een datumtabel maakt in Excel, begint u met één kolom met een aaneengesloten datumbereik. Vervolgens kunt u extra kolommen maken, zoals Jaar, Kwartaal, Maand, Fiscaal jaar, Periode, enzovoort in het Excel-werkblad met behulp van Excel-formules of, nadat u de tabel in het gegevensmodel hebt geexemplaard, kunt u deze maken als berekende kolommen. Het maken van extra datumkolommen in Power Pivot wordt beschreven in de sectie Nieuwe datumkolommen toevoegen aan de sectie Datumtabel verder in dit artikel.

How to: Create a date table in Excel and copy it into the Data Model

  1. Typ Excel in een leeg werkblad in cel A1een kolomkopnaam om een datumbereik te identificeren. Meestal is dit iets als Date, DateTime of DateKey.

  2. Typ in cel A2een begindatum. Bijvoorbeeld 1-1-2010.

  3. Klik op de vulgreep en sleep deze omlaag naar een rijnummer met een einddatum. Bijvoorbeeld 31-12-2016.

    Datumkolom in Excel

  4. Selecteer alle rijen in de kolom Datum (inclusief de naam van de koptekst in cel A1).

  5. Klik in de groep Stijlen op Opmaak als tabelen selecteer een stijl.

  6. Klik in het dialoogvenster Opmaken als tabel op OK.

    Datumkolom in Power Pivot

  7. Kopieer alle rijen, inclusief de koptekst.

  8. Klik in Power Pivot op het tabblad Start op Plakken.

  9. Typ in Voorbeeld plakken > tabelnaam een naam zoals Datum of Agenda. Laat Eerste rij gebruiken als kolomkoppen ingeschakelden klik vervolgens op OK.

    Plakvoorbeeld

    De nieuwe datumtabel (met de naam Agenda in dit voorbeeld) in Power Pivot ziet er als volgende uit:

    Datumtabel in Power Pivot

    Opmerking: U kunt ook een gekoppelde tabel maken met Behulp van Toevoegen aan gegevensmodel. Hierdoor wordt de werkmap echter onnodig groot omdat de werkmap twee versies van de datumtabel heeft. een in Excel en een in Power Pivot..

Opmerking: De naamdatum is een trefwoord in Power Pivot. Als u de tabel die u maakt in Power Pivot Date een naam geeft, moet u de tabelnaam tussen enkele aanhalingstekens plaatsen in dax-formules die verwijzen naar de tabel in een argument. Alle voorbeeldafbeeldingen en formules in dit artikel verwijzen naar een datumtabel die is gemaakt in Power Pivot met de naam Agenda.

U hebt nu een datumtabel in uw gegevensmodel. U kunt nieuwe datumkolommen toevoegen, zoals Jaar, Maand, enzovoort met DAX.

Nieuwe datumkolommen toevoegen aan de datumtabel

Een datumtabel met één datumkolom met één rij voor elke dag voor elk jaar is belangrijk voor het definiëren van alle datums in een datumbereik. Dit is ook nodig voor het maken van een relatie tussen de feitentabel en de datumtabel. Maar die kolom met één datum met één rij voor elke dag is niet handig bij het analyseren op datums in een draaitabel of Power View rapport. U wilt dat de datumtabel kolommen bevat die u helpen uw gegevens te aggregeren voor een bereik of groep datums. U kunt bijvoorbeeld de verkoopbedragen per maand of kwartaal optelen, of u kunt een meting maken waarmee de groei op jaarbasis wordt berekend. In elk van deze gevallen heeft uw datumtabel jaar-, maand- of kwartaalkolommen nodig waarmee u uw gegevens voor die periode kunt aggregeren.

Als u de datumtabel uit een relationele gegevensbron hebt geïmporteerd, bevat deze mogelijk al de verschillende typen datumkolommen die u wilt gebruiken. In sommige gevallen wilt u mogelijk enkele van deze kolommen wijzigen of extra datumkolommen maken. Dit geldt vooral als u uw eigen datumtabel maakt in Excel en kopieert naar het gegevensmodel. Gelukkig is het maken van nieuwe datumkolommen in Power Pivot heel eenvoudig met datum- en tijdfuncties in DAX.

Tip: Als u nog niet met DAX hebt gewerkt, kunt u het volgende doen met QuickStart: DaX Basics leren in 30 minuten op Office.com.

DAX-functies Datum en tijd

Als u ooit hebt gewerkt met datum- en tijdfuncties in Excel formules, bent u waarschijnlijk bekend met de functies Datum en tijd. Hoewel deze functies vergelijkbaar zijn met hun tegenhangers in Excel, zijn er enkele belangrijke verschillen:

  • DaX-functies Datum en tijd gebruiken een datumtijdgegevenstype.

  • Ze kunnen waarden uit een kolom als argument nemen.

  • Ze kunnen worden gebruikt om datumwaarden te retourneren en/of te manipuleren.

Deze functies worden vaak gebruikt bij het maken van aangepaste datumkolommen in een datumtabel, dus ze zijn belangrijk om te begrijpen. We gebruiken een aantal van deze functies om kolommen te maken voor jaar, kwartaal, fiscale maand, en ga zo maar door.

Opmerking: Datum- en tijdfuncties in DAX zijn niet hetzelfde als de functies Time Intelligence. Meer informatie over Time Intelligence in Power Pivot in Excel 2013.

DAX bevat de volgende functies Datum en tijd:

Er zijn ook veel andere DAX-functies die u in uw formules kunt gebruiken. Veel van de formules die hier worden beschreven, gebruiken bijvoorbeeld Wiskundige en Trigonometrische functies zoals MOD en TRUNC,Logische functies zoals ALSen Tekstfuncties zoals OPMAAK Voor meer informatie over andere DAX-functies, zie de sectie Aanvullende bronnen verderop in dit artikel.

Formulevoorbeelden voor een kalenderjaar

In de volgende voorbeelden worden formules beschreven die worden gebruikt om extra kolommen te maken in een datumtabel met de naam Agenda. Eén kolom met de naam Datum bestaat al en bevat een aaneengesloten datumbereik van 1-1-2010 tot en met 31-12-2016.

Jaar

=JAAR([datum])

In deze formule retourneert de functie JAAR het jaar van de waarde in de kolom Datum. Omdat de waarde in de kolom Datum van datumtijdgegevenstype is, weet de functie JAAR hoe u het jaar van het gegevenstype kunt retourneren.

Jaarkolom

Maand

=MAAND([datum])

In deze formule kunnen we, net als met de functie JAAR, de functie MAAND gebruiken om een maandwaarde uit de kolom Datum te retourneren.

Maandkolom

Kwartaal

=INT(([Maand]+2)/3)

In deze formule gebruiken we de functie INT om een datumwaarde als geheel getal te retourneren. Het argument dat we opgeven voor de functie INT is de waarde uit de kolom Maand, voeg 2 toe en deel dit vervolgens door 3 om ons kwartaal te krijgen, 1 tot en met 4.

Kwartaalkolom

Maandnaam

=NOTATIE([datum],"mmmm")

In deze formule gebruiken we de functie OPMAAK om een numerieke waarde te converteren van de kolom Datum naar tekst om de naam van de maand op te halen. We geven de kolom Datum op als het eerste argument en vervolgens de opmaak. We willen dat onze maandnaam alle tekens wen, dus gebruiken we 'mmmm'. Dit levert het volgende resultaat op:

Kolom met de maandnaam

Als we de naam van de maand, afgekort tot drie letters, willen retourneren, gebruiken we 'mmm' in het argument Opmaak.

Dag van de week

=OPMAAK([datum],"ddd")

In deze formule gebruiken we de functie OPMAAK om de naam van de dag op te halen. Omdat we alleen een verkorte dagnaam willen, geven we 'ddd' op in het argument Opmaak.

Kolom voor dag van de week
Voorbeelddraaitabel

Als u velden hebt voor datums zoals Jaar, Kwartaal, Maand, enzovoort, kunt u deze gebruiken in een draaitabel of rapport. In de volgende afbeelding ziet u bijvoorbeeld het veld SalesAmount uit de tabel Verkoop feit in WAARDEN en Jaar en Kwartaal uit de dimensietabel Agenda in RIJEN. SalesAmount wordt samengevoegd voor jaar- en kwartaalcontext.

Voorbeelddraaitabel

Formulevoorbeelden voor een fiscaal jaar

Fiscaal jaar

=ALS([Maand]<= 6;[Jaar],[Jaar]+1)

In dit voorbeeld begint het fiscale jaar op 1 juli.

Er is geen functie die een fiscaal jaar uit een datumwaarde kan halen, omdat de begin- en einddatums voor een fiscaal jaar vaak verschillen van die van een kalenderjaar. Om het fiscale jaar te krijgen, wordt eerst een als-functie gebruikt om te testen of de waarde voor Maand kleiner is dan of gelijk is aan 6. Als in het tweede argument de waarde voor Maand kleiner is dan of gelijk is aan 6, retourneert u de waarde uit de kolom Jaar. Zo niet, retourneert u de waarde uit Jaar en voegt u 1 toe.

Kolom met het fiscale jaar

Een andere manier om een eindmaandwaarde voor het fiscale jaar op te geven, is door een meting te maken die alleen de maand aangeeft. Bijvoorbeeld: FYE:=6. U kunt vervolgens verwijzen naar de naam van de meting in plaats van het maandnummer. Bijvoorbeeld= ALS([Maand]<=[FYE],[Jaar],[Jaar]+1). Dit biedt meer flexibiliteit bij het verwijzen naar de eindmaand van het fiscale jaar in verschillende formules.

Fiscale maand

=ALS([Maand]<= 6, 6+[Maand], [Maand]- 6)

In deze formule geven we aan of de waarde voor [Maand] kleiner is dan of gelijk is aan 6, neemt u 6 en voegt u de waarde van Maand toe, anders trekt u 6 af van de waarde van [Maand].

Kolom met de fiscale maand

Fiscaal kwartaal

=INT(([FiscalMonth]+2)/3)

De formule die we voor FiscalQuarter gebruiken, is vrijwel hetzelfde als voor Kwartaal in ons kalenderjaar. Het enige verschil is dat we [FiscalMonth] opgeven in plaats van [Maand].

Kolom voor fiscaal kwartaal

Feestdagen of speciale datums

Mogelijk wilt u een datumkolom opnemen die aangeeft dat bepaalde datums feestdagen of een andere speciale datum zijn. U kunt bijvoorbeeld de verkoopto totalen voor nieuwjaarsdag optellen door een veld Feestdagen toe te voegen aan een draaitabel, als slicer of filter. In andere gevallen wilt u deze datums mogelijk uitsluiten van andere datumkolommen of in een meting.

Feestdagen of speciale dagen is heel eenvoudig. U kunt een tabel maken in Excel met de datums die u wilt opnemen. Vervolgens kunt u Toevoegen aan gegevensmodel kopiëren of gebruiken om deze als gekoppelde tabel toe te voegen aan het gegevensmodel. In de meeste gevallen is het niet nodig om een relatie te maken tussen de tabel en de tabel Agenda. Formules die ernaar verwijzen, kunnen de functie OPZOEKWAARDE gebruiken om waarden te retourneren.

Hieronder vindt u een voorbeeld van een tabel die is gemaakt in Excel met feestdagen die moeten worden toegevoegd aan de datumtabel:

Datum

Feestdag

1/1/2010

Nieuwjaar

11/25/2010

Dankzegging

12/25/2010

Kerst

01-01-2011

Nieuwjaar

11/24/2011

Dankzegging

12/25/2011

Kerst

1-1-2012

Nieuwjaar

22.11.12

Dankzegging

12/25/2012

Kerst

1/1/2013

Nieuwjaar

11/28/2013

Dankzegging

12/25/2013

Kerst

11/27/2014

Dankzegging

12/25/2014

Kerst

1-1-2014

Nieuwjaar

11/27/2014

Dankzegging

12/25/2014

Kerst

1/1/2015

Nieuwjaar

11/26/2014

Dankzegging

12/25/2015

Kerst

01.01.16

Nieuwjaar

11/24/2016

Dankzegging

12/25/2016

Kerst

In de datumtabel maken we een kolom met de naam Holiday en gebruiken we een formule als deze:

=OPZOEKWAARDE(Feestdagen[Feestdagen],Feestdagen[datum],Agenda[datum])

Laten we deze formule zorgvuldiger bekijken.

We gebruiken de functie OPZOEKWAARDE om waarden op te halen uit de kolom Vakantie in de tabel Feestdagen. In het eerste argument geven we de kolom op waar de resultaatwaarde zich zal vinden. We geven de kolom Vakantie op in de tabel Feestdagen, omdat dit de waarde is die we als resultaat willen geven.

=OPZOEKWAARDE(Feestdagen[Feestdag],Feestdagen[datum],Agenda[datum])

Vervolgens geven we het tweede argument op, de zoekkolom met de datums die we willen zoeken. We geven de kolom Datum op in de tabel Feestdagen, zoals dit:

=OPZOEKWAARDE(Feestdagen[Feestdagen],Feestdagen[datum],Agenda[datum])

Ten slotte geven we de kolom in onze agendatabel op met de datums die we willen zoeken in de tabel Vakantie. Dit is natuurlijk de kolom Datum in de tabel Agenda.

=OPZOEKWAARDE(Feestdagen[Feestdagen],Feestdagen[datum],Agenda[datum])

De kolom Vakantie retourneert de naam van de feestdagen voor elke rij met een datumwaarde die overeenkomt met een datum in de tabel Feestdagen.

Tabel met feestdagen

Aangepaste agenda - dertien perioden van vier weken

Sommige organisaties, zoals detailhandel of foodservice, rapporteren vaak over verschillende perioden, zoals dertien perioden van vier weken. Met een kalender van dertien perioden van vier weken is elke periode 28 dagen; Daarom bevat elke periode vier maandagen, vier dinsdagen, vier woensdagen, en zo verder. Elke periode bevat hetzelfde aantal dagen en feestdagen vallen meestal elk jaar binnen dezelfde periode. U kunt ervoor kiezen om een punt te starten op elke dag van de week. Net zoals met datums in een agenda of fiscaal jaar, kunt u DAX gebruiken om extra kolommen met aangepaste datums te maken.

In de onderstaande voorbeelden begint de eerste volledige periode op de eerste zondag van het fiscale jaar. In dit geval begint het fiscale jaar op 7/1.

Week

Deze waarde geeft ons het weeknummer dat begint met de eerste volledige week in het fiscale jaar. In dit voorbeeld begint de eerste volledige week op zondag, dus de eerste volledige week in het eerste fiscale jaar in de tabel Agenda begint eigenlijk op 4-7-2010 en gaat door tot de laatste volledige week in de tabel Agenda. Hoewel deze waarde zelf niet zo handig is in de analyse, is het noodzakelijk om te berekenen voor gebruik in andere formules met een periode van 28 dagen.

=INT([datum]-40356)/7)

Laten we deze formule zorgvuldiger bekijken.

Eerst maken we een formule die waarden uit de kolom Datum als geheel getal retourneert, zoals dit:

=INT([datum])

Vervolgens willen we zoeken naar de eerste zondag in het eerste fiscale jaar. We zien dat het 4-7-2010 is.

Weekkolom

Trek nu 40356 (het gehele getal voor 27-6-2010, de laatste zondag van het vorige fiscale jaar) af van die waarde om het aantal dagen te krijgen sinds het begin van de dagen in de tabel Agenda, zoals dit:

=INT([datum]-40356)

Deel vervolgens het resultaat door 7 (dagen in een week), zoals dit:

=INT(([datum]-40356)/7)

Het resultaat ziet er als volgende uit:

Weekkolom

Period

De periode in deze aangepaste agenda bevat 28 dagen en deze begint altijd op een zondag. In deze kolom wordt het aantal van de periode die begint met de eerste zondag in het eerste fiscale jaar als retournatie.

=INT(([Week]+3)/4)

Laten we deze formule zorgvuldiger bekijken.

Eerst maken we een formule die een waarde uit de kolom Week als geheel getal retourneert, zoals dit:

=INT([Week])

Voeg vervolgens 3 toe aan die waarde, zoals dit:

=INT([Week]+3)

Deel vervolgens het resultaat door 4, zoals dit:

=INT(([Week]+3)/4)

Het resultaat ziet er als volgende uit:

Periodekolom

Fiscale jaar periode

Deze waarde retourneert het fiscale jaar voor een periode.

=INT(([Punt]+12)/13)+2008

Laten we deze formule zorgvuldiger bekijken.

Eerst maken we een formule die een waarde uit Punt retourneert en 12 toevoegt:

= ([Punt]+12)

We delen het resultaat door 13, omdat er dertien perioden van 28 dagen in het fiscale jaar zijn:

=(([Punt]+12)/13)

We voegen 2010 toe, omdat dit het eerste jaar in de tabel is:

=(([Punt]+12)/13)+2010

Ten slotte gebruiken we de functie INT om een deel van het resultaat te verwijderen en een geheel getal als resultaat te retourneren, wanneer gedeeld door 13, zoals dit:

=INT(([Punt]+12)/13)+2010

Het resultaat ziet er als volgende uit:

Kolom met fiscaal jaar voor periode

Periode in FiscalYear

Deze waarde retourneert het puntnummer 1 – 13, te beginnen met de eerste volledige periode (vanaf zondag) in elk fiscaal jaar.

=ALS(MOD([Punt],13), MOD([Periode],13);13)

Deze formule is iets complexer, dus we zullen deze eerst beschrijven in een taal die we beter begrijpen. In deze formule wordt de waarde van [Punt] door 13 verdeeld om een puntnummer (1-13) in het jaar te krijgen. Als dat getal 0 is, retournt u 13.

Eerst maken we een formule die de rest van de waarde van Punt door 13 retourneert. We kunnen de mod (wiskundige en trigonometrische functies) als volgende gebruiken:

=MOD([Punt],13)

Dit geeft ons meestal het beste resultaat, behalve wanneer de waarde voor Periode 0 is, omdat deze datums niet binnen het eerste fiscale jaar vallen, zoals in de eerste vijf dagen van ons voorbeeld Kalenderdatumtabel. We kunnen dit doen met een ALS-functie. Als het resultaat 0 is, retourneren we 13, zoals dit:

=ALS(MOD([Punt],13),MOD([Punt],13);13)

Het resultaat ziet er als volgende uit:

Kolom met periode in fiscaal jaar

Voorbeelddraaitabel

In de onderstaande afbeelding ziet u een draaitabel met het veld SalesAmount uit de tabel Verkoop fact in VALUES en PeriodFiscalYear en PeriodInFiscalYear uit de dimensietabel Agendadatum in RIJEN. SalesAmount wordt voor de context samengevoegd per fiscale jaar- en 28-dagenperiode in het fiscale jaar.

Voorbeelddraaitabel voor fiscaal jaar

Relaties

Nadat u een datumtabel in uw gegevensmodel hebt gemaakt, moet u een relatie maken tussen de feitentabel met uw transactiegegevens en de datumtabel om gegevens te aggregeren op basis van de kolommen in de tabel datumdimensie.

Omdat u een relatie moet maken op basis van datums, wilt u ervoor zorgen dat u die relatie maakt tussen kolommen waarvan de waarden van het gegevenstype datetime (Datum) zijn.

Voor elke datumwaarde in de feitentabel moet de gerelateerde opzoekkolom in de datumtabel overeenkomende waarden bevatten. Een rij (transactierecord) in de tabel Verkoopgegevens met een waarde van 15-8-2012 12:00 uur in de kolom DateKey moet bijvoorbeeld een overeenkomende waarde hebben in de gerelateerde kolom Datum in de tabel datum (met de naam Agenda). Dit is een van de belangrijkste redenen waarom u wilt dat de datumkolom in de datumtabel een aaneengesloten datumbereik bevat dat een mogelijke datum in de feitentabel bevat.

Relaties in de diagramweergave

Opmerking: Hoewel de datumkolom in elke tabel hetzelfde gegevenstype (Datum) moet hebben, maakt de notatie van elke kolom niet uit..

Opmerking: Als u in Power Pivot geen relaties tussen de twee tabellen kunt maken, worden de datum en tijd mogelijk niet op hetzelfde precisieniveau opgeslagen in de datumvelden. Afhankelijk van de kolomopmaak kunnen de waarden er hetzelfde uitzien, maar worden ze anders opgeslagen. Lees meer over het werken met tijd.

Opmerking: Vermijd het gebruik van integer surrogaatsleutels in relaties. Wanneer u gegevens importeert uit een relationele gegevensbron, worden datum- en tijdkolommen vaak vertegenwoordigd door een surrogaatsleutel, een kolom met gehele getallen die wordt gebruikt om een unieke datum aan te geven. In Power Pivot moet u het maken van relaties vermijden met behulp van datum-/tijdtoetsen voor gehele getallen en in plaats daarvan kolommen gebruiken die unieke waarden met een datumgegevenstype bevatten. Hoewel het gebruik van surrogaatsleutels wordt beschouwd als een best practice in traditionele gegevensmagazijnen, zijn de gehele getallensleutels niet nodig in Power Pivot en kunnen het moeilijk maken om waarden in draaitabellen op verschillende datumperioden te groeperen.

Als er een foutfout typefout wordt weergegeven bij het maken van een relatie, is dit waarschijnlijk omdat de kolom in de feitentabel niet van datumgegevenstype is. Dit kan gebeuren wanneer Power Pivot een niet-datum (meestal een tekstgegevenstype) niet automatisch kan converteren naar een datumgegevenstype. U kunt de kolom in de feitentabel nog steeds gebruiken, maar u moet de gegevens converteren met een DAX-formule in een nieuwe berekende kolom. Zie Datums van tekstgegevenstype converteren naar een datumgegevenstype later in de bijlage.

Meerdere relaties

In sommige gevallen kan het nodig zijn om meerdere relaties te maken of meerdere datumtabellen te maken. Als er bijvoorbeeld meerdere datumvelden in de tabel Verkoop fact zijn, zoals DateKey, ShipDate en ReturnDate, kunnen ze allemaal relaties hebben met het veld Datum in de tabel Agendadatum, maar slechts één van deze velden kan een actieve relatie zijn. In dit geval, omdat DateKey de datum van de transactie vertegenwoordigt, en dus de belangrijkste datum, kan dit het beste fungeren als de actieve relatie. De andere hebben inactieve relaties.

De volgende draaitabel berekent de totale omzet per fiscaal jaar en fiscaal kwartaal. Een meting met de naam Totale verkoop, met de formule Totale verkoop:=SOM([SalesAmount]), wordt in WAARDEN geplaatst en de velden FiscalYear en FiscalQuarter uit de tabel Kalenderdatum worden in RIJEN geplaatst.

Draaitabel voor totale verkoop per fiscaal kwartaal Lijst met draaitabelvelden

Deze draaitabel met rechte termijn werkt correct omdat we onze totale omzet willen optelen op de transactiedatumin DateKey. Onze meting Totale verkoop gebruikt de datums in DateKey en wordt opgeteld per fiscaal jaar en fiscaal kwartaal, omdat er een relatie is tussen DateKey in de tabel Verkoop en de kolom Datum in de tabel Agendadatum.

Inactieve relaties

Maar wat als we onze totale verkoop niet per transactiedatum, maar per verzenddatum willen optelen? We hebben een relatie nodig tussen de kolom ShipDate in de tabel Verkoop en de kolom Datum in de tabel Agenda. Als we die relatie niet maken, zijn onze aggregaties altijd gebaseerd op de transactiedatum. We kunnen echter meerdere relaties hebben, ook al kan er maar één actief zijn en omdat de transactiedatum het belangrijkst is, krijgt deze de actieve relatie met de tabel Agenda.

In dit geval heeft ShipDate een inactieve relatie, dus elke maatformule die is gemaakt voor het aggregeren van gegevens op basis van verzenddatums, moet de inactieve relatie opgeven met de functie USERELATIONSHIP.

Omdat er bijvoorbeeld een inactieve relatie is tussen de kolom Verzenddatum in de tabel Verkoop en de kolom Datum in de tabel Agenda, kunnen we een meting maken die de totale verkoop per verzenddatum optelt. We gebruiken een formule als deze om de relatie op te geven die moet worden gebruikt:

Total Sales by Ship Date:=CALCULATE(SUM(Sales[SalesAmount]), USERELATIONSHIP(Sales[ShipDate], Calendar[Date]))

In deze formule wordt eenvoudig het volgende gezegd: Bereken een som voor SalesAmount, maar filter op basis van de relatie tussen de kolom ShipDate in de tabel Verkoop en de kolom Datum in de tabel Agenda.

Als we nu een draaitabel maken en de totale verkoop per verzenddatum meten in WAARDEN en fiscaal jaar en fiscaal kwartaal op RIJEN, zien we hetzelfde eindtotaal, maar alle andere sombedragen voor het fiscale jaar en fiscale kwartaal verschillen omdat ze zijn gebaseerd op de verzenddatum en niet op de transactiedatum.

Draaitabel voor totale verkoop per verzenddatum Lijst met draaitabelvelden

Als u inactieve relaties gebruikt, kunt u slechts één datumtabel gebruiken, maar vereist dit wel dat alle metingen (zoals Totale verkoop per verzenddatum) verwijzen naar de inactieve relatie in de formule. Er is nog een alternatief, dat wil zeggen dat u meerdere datumtabellen gebruikt.

Meerdere datumtabellen

Een andere manier om met meerdere datumkolommen in uw feitentabel te werken, is door meerdere datumtabellen te maken en afzonderlijke actieve relaties tussen deze kolommen te maken. Laten we het voorbeeld van de tabel Verkoop nog eens bekijken. We hebben drie kolommen met datums waarop we gegevens kunnen aggregeren:

  • Een DateKey met de verkoopdatum voor elke transactie.

  • Een verzenddatum: met de datum en tijd waarop de verkochte items naar de klant zijn verzonden.

  • Een retourdatum: de datum en tijd waarop een of meer geretourneerde items zijn ontvangen.

Vergeet niet dat het veld DateKey met de transactiedatum het belangrijkst is. We zullen de meeste aggregaties doen op basis van deze datums, dus we willen zeker een relatie tussen deze datum en de kolom Datum in de tabel Agenda. Als we geen inactieve relaties willen maken tussen ShipDate en ReturnDate en het veld Datum in de tabel Agenda, waardoor speciale maatformules nodig zijn, kunnen we extra datumtabellen maken voor verzenddatum en retourdatum. We kunnen vervolgens actieve relaties tussen deze relaties maken.

Relaties met meerdere datumtabellen in de diagramweergave

In dit voorbeeld hebben we een andere datumtabel gemaakt met de naam ShipCalendar. Dit betekent natuurlijk ook het maken van extra datumkolommen. Omdat deze datumkolommen zich in een andere datumtabel hebben, willen we deze kolommen een naam geven die onderscheidt van dezelfde kolommen in de tabel Agenda. We hebben bijvoorbeeld kolommen gemaakt met de naam ShipYear, ShipMonth, ShipQuarter, en ga zo maar door.

Als we onze draaitabel maken en onze meting Totale verkoop in WAARDEN en ShipFiscalYear en ShipFiscalQuarter op RIJEN zetten, zien we dezelfde resultaten als toen we een inactieve relatie en een speciaal berekend veld Total Sales by Ship Date maakten.

Draaitabel voor totale verkoop per verzenddatum met de verzendingskalender Lijst met draaitabelvelden

Voor elk van deze benaderingen moet zorgvuldig worden gekeken. Wanneer u meerdere relaties met één datumtabel gebruikt, moet u mogelijk speciale metingen maken die inactieve relaties doorvoeren met de functie USERELATIONSHIP. Aan de andere kant kan het maken van meerdere datumtabellen verwarrend zijn in een lijst met velden en omdat er meer tabellen in het gegevensmodel staan, is er meer geheugen nodig. Experimenteer met wat het beste voor u werkt.

Eigenschap Datumtabel

De eigenschap Datumtabel stelt metagegevens in die nodig zijn Time-Intelligence functies zoals TOTALYTD, PREVIOUSMONTH en DATESBETWEEN om correct te werken. Wanneer een berekening wordt uitgevoerd met behulp van een van deze functies, weet de formule-engine van Power Pivot waar u naartoe moet om de datums te krijgen die nodig zijn.

Waarschuwing: Als deze eigenschap niet is ingesteld, leveren metingen met DAX-Time-Intelligence mogelijk geen juiste resultaten op.

Wanneer u de eigenschap Datumtabel in stelt, geeft u een datumtabel en een datumkolom op van het gegevenstype Datum (datetime).

Dialoogvenster Als datumtabel markeren

How to: De eigenschap Datumtabel instellen

  1. Selecteer in het PowerPivot de tabel Agenda.

  2. Klik op het tabblad Ontwerpen op Markeren als datumtabel.

  3. Selecteer in het dialoogvenster Markeren als datumtabel een kolom met unieke waarden en het gegevenstype Datum.

Werken met tijd

Alle datumwaarden met een gegevenstype Datum in Excel of SQL Server zijn eigenlijk een getal. Opgenomen in dat getal zijn cijfers die verwijzen naar een tijd. In veel gevallen is die tijd voor elke rij middernacht. Als een DateTimeKey-veld in een feitentabel Verkoop bijvoorbeeld waarden heeft zoals 19-10-10-2010 12:00:00 uur, betekent dit dat de waarden op het precisieniveau van de dag liggen. Als de DatumTimeKey-veldwaarden een tijd bevatten, bijvoorbeeld 19-10-2010 8:44:00 uur, betekent dit dat de waarden op het precisieniveau van de minuut liggen. Waarden kunnen ook de precisie op uurniveau of zelfs seconden nauwkeurig zijn. Het precisieniveau in de tijdwaarde heeft een aanzienlijke invloed op de manier waarop u de datumtabel maakt en de relaties tussen de tabel en de feitentabel.

U moet bepalen of u uw gegevens wilt samenvoegen tot een dagniveau van precisie of tot een tijdniveau van precisie. Met andere woorden: u wilt kolommen in de datumtabel, zoals Ochtend, Middag of Uur, gebruiken als datumvelden in de rij-, kolom- of filtergebieden van een draaitabel.

Opmerking: Dagen zijn de kleinste tijdseenheid waar DAX Time Intelligence-functies mee kunnen werken. Als u niet met tijdwaarden hoeft te werken, moet u de precisie van uw gegevens beperken om dagen als minimumeenheid te gebruiken.

Als u de gegevens wilt samenvoegen tot het tijdniveau, moet uw datumtabel een datumkolom met de tijd bevatten. In feite heeft het een datumkolom nodig met één rij voor elk uur, of misschien zelfs elke minuut, van elke dag, voor elk jaar in het datumbereik. Dit komt omdat als u een relatie wilt maken tussen de kolom DateTimeKey in de feitentabel en de datumkolom in de datumtabel, moet u overeenkomende waarden hebben. Zoals u zich kunt voorstellen, kan dit een zeer grote datumtabel zijn als u een groot aantal jaren opeent.

In de meeste gevallen wilt u uw gegevens echter alleen tot de dag samenvoegen. Met andere woorden, u gebruikt kolommen zoals Jaar, Maand, Week of Dag van de Week als velden in de rij-, kolom- of filtergebieden van een draaitabel. In dit geval hoeft de datumkolom in de datumtabel slechts één rij te bevatten voor elke dag in een jaar, zoals we eerder hebben beschreven.

Als de datumkolom een tijdniveau van precisie bevat, maar u alleen een dagniveau wilt samenvoegen om de relatie tussen de feitentabel en de datumtabel te maken, moet u mogelijk de feitentabel wijzigen door een nieuwe kolom te maken waarmee de waarden in de datumkolom worden afgekapt tot een dagwaarde. Met andere woorden, converteert u een waarde zoals 10-19-2010 8:44:00am naar 10-19-2010 12:00:00 . U kunt vervolgens de relatie maken tussen deze nieuwe kolom en de datumkolom in de datumtabel omdat de waarden overeenkomen.

Laten we even naar een voorbeeld kijken. In deze afbeelding ziet u een kolom DateTimeKey in de tabel Verkoop fact. Alle aggregaties voor de gegevens in deze tabel hoeven alleen op dagniveau te zijn, met behulp van kolommen in de tabel Agendadatum, zoals Jaar, Maand, Kwartaal, enzovoort. De tijd die in de waarde is opgenomen, is niet relevant, alleen de werkelijke datum.

Kolom DateTimeKey

Omdat we deze gegevens niet hoeven te analyseren op het tijdniveau, hebben we de kolom Datum in de tabel Agendadatum niet nodig om één rij op te nemen voor elk uur en elke minuut van elke dag in elk jaar. De kolom Datum in onze datumtabel ziet er dus als volgende uit:

Datumkolom in Power Pivot

Als u een relatie wilt maken tussen de kolom DateTimeKey in de tabel Verkoop en de kolom Datum in de tabel Agenda, kunnen we een nieuwe berekende kolom maken in de tabel Verkoop fact en de functie TRUNC gebruiken om de datum- en tijdwaarde in de kolom DateTimeKey af tekapen tot een datumwaarde die overeenkomt met de waarden in de kolom Datum in de tabel Agenda. Onze formule ziet er als volgende uit:

=TRUNC([DateTimeKey],0)

Dit geeft ons een nieuwe kolom (met de naam DateKey) met de datum uit de kolom DateTimeKey en een tijd van 12:00:00 uur voor elke rij:

Kolom DateKey

Nu kunnen we een relatie maken tussen deze nieuwe kolom (DateKey) en de kolom Datum in de tabel Agenda.

Op dezelfde manier kunnen we een berekende kolom maken in de tabel Verkoop waarmee de tijdsprecisie in de kolom DateTimeKey wordt beperkt tot het uurniveau van precisie. In dit geval werkt de functie TRUNC niet, maar we kunnen nog steeds andere dax-datum- en tijdfuncties gebruiken om een nieuwe waarde op te halen en opnieuw samen te brengen tot een precisieniveau van een uur. We kunnen een formule als deze gebruiken:

= DATUM (JAAR([DateTimeKey]), MAAND([DateTimeKey]), DAG([DateTimeKey]) ) + TIJD (UUR([DateTimeKey]), 0, 0)

Onze nieuwe kolom ziet er als volgende uit:

Kolom DateTimeKey

Op voorwaarde dat onze kolom Datum in de datumtabel waarden heeft tot het uurniveau van precisie, kunnen we vervolgens een relatie tussen deze waarden maken.

Datums bruikbaarder maken

Veel van de datumkolommen die u in de datumtabel maakt, zijn nodig voor andere velden, maar zijn niet zo handig in de analyse. Het veld DateKey in de tabel Verkoop die we in dit artikel hebben genoemd en weergegeven, is bijvoorbeeld belangrijk omdat deze transactie voor elke transactie wordt geregistreerd als op een bepaalde datum en tijd. Maar vanuit een analyse- en rapportagepunt is dit niet zo handig, omdat we het veld niet kunnen gebruiken als een rij-, kolom- of filterveld in een draaitabel of rapport.

In ons voorbeeld is de kolom Datum in de tabel Agenda in feite zeer nuttig, kritiek, maar u kunt deze niet gebruiken als dimensie in een draaitabel.

Als u tabellen en kolommen in deze lijsten zo nuttig mogelijk wilt houden en om de lijst met velden in draaitabellen of Power View rapport gemakkelijker te maken, is het belangrijk om overbodige kolommen te verbergen voor clienthulpmiddelen. Mogelijk wilt u ook bepaalde tabellen verbergen. De tabel Feestdagen die eerder wordt weergegeven, bevat feestdagen die belangrijk zijn voor bepaalde kolommen in de tabel Agenda, maar u kunt de kolommen Datum en Feestdagen in de tabel Feestdagen zelf niet gebruiken als velden in een draaitabel. Ook hier kunt u de hele tabel Feestdagen verbergen om veldlijsten gemakkelijker te laten navigeren.

Een ander belangrijk aspect van het werken met datums is naamgevingsconventen. U kunt tabellen en kolommen in Power Pivot een naam geven wat u maar wilt. Maar houd er rekening mee, vooral als u uw werkmap met andere gebruikers deelt, maakt een goede naamgevingsconventie het gemakkelijker om tabellen en datums te identificeren, niet alleen in veldlijsten, maar ook in Power Pivot en in DAX-formules.

Nadat u een datumtabel hebt in uw gegevensmodel, kunt u beginnen met het maken van metingen die u helpen om het meeste uit uw gegevens te halen. Sommige kunnen net zo eenvoudig zijn als het optelen van verkooptotaal voor het huidige jaar, en andere zijn complexer, waarbij u moet filteren op een bepaald bereik met unieke datums. Meer informatie in Metingen in Power Pivot- en Time Intelligence-functies.

Bijlage

Datums van tekstgegevenstype converteren naar een datumgegevenstype

In sommige gevallen kan een feitentabel met transactiegegevens datums van tekstgegevenstype bevatten. Dat wil zeggen dat een datum die wordt weergegeven als 2012-12-04T11:47:09 in feite helemaal geen datum is, of in ieder geval niet het type datum dat Power Pivot kan begrijpen. Het is eigenlijk alleen maar tekst die als een datum leest. Als u een relatie wilt maken tussen een datumkolom in de feitentabel en een datumkolom in een datumtabel, moeten beide kolommen van het gegevenstype Datum zijn.

Wanneer u het gegevenstype voor een kolom met datums die een tekstgegevenstype zijn, probeert te wijzigen in een datumgegevenstype, kan Power Pivot de datums meestal interpreteren en automatisch converteren naar een gegevenstype met een werkelijke datum. Als Power Pivot geen gegevenstypeconversie kan doen, krijgt u een foutmelding voor typefouten.

U kunt de datums echter nog steeds converteren naar een gegevenstype echte datum. U kunt een nieuwe berekende kolom maken en een DAX-formule gebruiken om het jaar, de maand, de dag, de tijd enzovoort uit de tekenreeksen te parseren en deze vervolgens weer samen tevoegen op een manier waarop Power Pivot kan worden gelezen als een echte datum.

In dit voorbeeld hebben we een feitentabel met de naam Verkoop geïmporteerd in Power Pivot. De kolom bevat een kolom met de naam DateTime. Waarden worden als dit weergegeven:

DateTime-kolom in een feitentabel

Als we gegevenstype bekijken in het tabblad Start van de groep Opmaakgroep Power Pivot, zien we dat het gegevenstype Tekst is.

Gegevenstype op het lint

We kunnen geen relatie maken tussen de kolom DateTime en de kolom Datum in onze datumtabel omdat de gegevenstypen niet overeenkomen. Als we het gegevenstype proberen te wijzigen in Datum,krijgen we een fout voor typefouten:

Typeconflict

In dit geval kon Power Pivot het gegevenstype niet converteren van tekst naar datum. We kunnen deze kolom nog steeds gebruiken, maar om deze in een gegevenstype met een echte datum te krijgen, moeten we een nieuwe kolom maken die de tekst parseert en deze opnieuw maakt tot een waarde die power pivot kan maken tot een datumgegevenstype.

Vergeet niet, uit de sectie Werken met tijd eerder in dit artikel; tenzij het nodig is dat uw analyse een precisieniveau voor de tijd van de dag is, moet u datums in de feitentabel converteren naar een dagniveau van precisie. Met dat in gedachten willen we dat de waarden in onze nieuwe kolom op het precisieniveau van de dag staan (met uitzondering van tijd). We kunnen zowel de waarden in de kolom DateTime converteren naar een datumgegevenstype als het tijdsprecisieniveau met de volgende formule verwijderen:

=DATUM(LINKS([DateTime],4), MID([DateTime],6,2), MID([DateTime],9,2))

Dit geeft ons een nieuwe kolom (in dit geval datum). Power Pivot detecteert zelfs de waarden die datums moeten zijn en stelt het gegevenstype automatisch in op Datum.

Kolom Date in feitentabel

Als we het tijdsniveau van precisie willen behouden, breiden we de formule uit met de uren, minuten en seconden.

=DATUM(LINKS([DateTime],4), MID([DateTime],6,2), MID([DateTime],9,2)) +

TIJD(MID([DateTime],12;2), MID([DateTime],15,2), MID([DateTime],18;2))

Nu we een kolom Datum van het gegevenstype Datum hebben, kunnen we een relatie maken tussen deze kolom en een datumkolom in een datum.

Aanvullende bronnen

Datums in Power Pivot

Berekeningen in Power Pivot

QuickStart: informatie over de grondbeginselen van DAX in 30 minuten

Verwijzing naar expressies voor gegevensanalyse

DAX Resource Center

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×