Dela via


Designvägledning för datumtabeller i Power BI Desktop

Den här artikeln beskriver bra designmetoder för att skapa datumtabeller i dina datamodeller när du använder Power BI Desktop.

En datumtabell är den vanligaste tabellen som används för analys. Den lagrar en rad per datum och stöder det vanliga kravet på att filtrera eller gruppera efter specifika datumperioder, till exempel år, kvartal eller månader.

För att kunna arbeta med dax-tidsinformationsfunktioner (Data Analysis Expressions) måste datamodellen dessutom ha minst en datumtabell. En datumtabell är en modelltabell som uppfyller följande krav:

  • Den måste ha en kolumn med datatypsdatum (eller datum/tid) – som kallas datumkolumnen.
  • Datumkolumnen måste innehålla unika värden.
  • Datumkolumnen får inte innehålla BLANK:er.
  • Datumkolumnen får inte ha några datum som saknas.
  • Datumkolumnen måste sträcka sig över hela år. Ett år är inte nödvändigtvis ett kalenderår (januari-december).
  • Datumtabellen måste markeras som en datumtabell.

Du kan använda någon av flera tekniker för att lägga till en datumtabell i din modell:

Dricks

En datumtabell är kanske den mest konsekventa funktionen som du lägger till i någon av dina datamodeller. Inom en organisation bör en datumtabell definieras konsekvent. Oavsett vilken teknik du väljer att använda rekommenderar vi därför att du skapar en Power BI Desktop-mall som innehåller en fullständigt konfigurerad datumtabell. Dela mallen med alla datamodellerare i din organisation. Så när någon utvecklar en ny datamodell kan de börja med en konsekvent definierad datumtabell.

Använd automatiskt datum/tid

Alternativet Automatiskt datum/tid ger bekväm, snabb och lätt att använda tidsinformation. Rapportförfattare kan arbeta med tidsinformation när de filtrerar, grupperar och går nedåt genom kalendertidsperioder.

Vi rekommenderar att du endast har alternativet Automatiskt datum/tid aktiverat när du arbetar med kalendertidsperioder och när du har förenklade modellkrav i förhållande till tid. Du kan också använda det här alternativet när du skapar ad hoc-modeller eller utför datautforskning eller profilering. Den här metoden stöder dock inte en enda datumtabelldesign som kan sprida filter till flera tabeller. Mer information finns i Vägledning för automatisk datum/tid i Power BI Desktop.

Ansluta med Power Query

När datakällan redan har en datumtabell rekommenderar vi att du använder den som källa för din modelldatumtabell. Det är vanligtvis fallet när du ansluter till ett informationslager, eftersom det redan bör ha en datumdimensionstabell. På så sätt använder din modell en enda sanningskälla för tid i din organisation.

Om du utvecklar en DirectQuery-modell och datakällan inte innehåller någon datumtabell rekommenderar vi starkt att du lägger till en datumtabell i datakällan. Den bör uppfylla alla modelleringskrav för en datumtabell. Du kan sedan använda Power Query för att ansluta till datumtabellen. På så sätt kan dina modellberäkningar använda DAX-tidsinformationsfunktionerna.

Generera med Power Query

Du kan generera en datumtabell med hjälp av Power Query. Mer information finns i Chris Webbs blogginlägg Generera en datumdimensionstabell i Power Query.

Dricks

Om du inte har något informationslager eller någon annan konsekvent definition för tid i din organisation kan du använda Power Query för att publicera ett dataflöde. Låt sedan alla datamodellerare ansluta till dataflödet för att lägga till datumtabeller i sina modeller. Dataflödet blir den enda sanningskällan för tid i din organisation.

Om du behöver generera en datumtabell bör du överväga att göra det med DAX. Du kanske tycker att det är enklare. Dessutom är det förmodligen enklare eftersom DAX innehåller inbyggd intelligens för att förenkla skapandet och hanteringen av datumtabeller.

Generera med DAX

Du kan generera en datumtabell i din modell genom att skapa en beräknad tabell med dax-funktionen CALENDAR eller CALENDARAUTO . Varje funktion returnerar en tabell med en kolumn med datum. Du kan sedan utöka den beräknade tabellen med beräknade kolumner för att stödja dina krav på datumintervallfiltrering och gruppering.

  • CALENDAR Använd funktionen när du vill definiera ett datumintervall. Du skickar in två värden: startdatum och slutdatum. Dessa värden kan definieras av andra DAX-funktioner, till exempel MIN(Sales[OrderDate]) eller MAX(Sales[OrderDate]).
  • CALENDARAUTO Använd funktionen när du vill att datumintervallet automatiskt ska omfatta alla datum som lagras i modellen. Du kan skicka in en enskild valfri parameter som är årets slutmånad (om ditt år är ett kalenderår, som slutar i december, behöver du inte skicka in ett värde). Det är en användbar funktion eftersom den säkerställer att hela år av datum returneras och därför uppfyller kravet på en markerad datumtabell. Dessutom behöver du inte utöka tabellen med rader för kommande år. Det beror på att när en datauppdatering är klar utlöser den omberäkningen av tabellen. En omberäkning utökar automatiskt datumintervallet för tabellen när datum för ett nytt år läses in i modellen.

Dricks

Mer information om hur du skapar beräknade tabeller, inklusive ett exempel på hur du skapar en datumtabell, finns i utbildningsmodulen Lägg till beräknade tabeller och kolumner i Power BI Desktop-modeller .

Överväg också att använda ett kostnadsfritt verktyg med öppen källkod för att hantera datum med DAX. Mer information finns i Bravo för Power BI.

Klona med DAX

När datamodellen redan har en datumtabell och du behöver en annan datumtabell – när datum är en dimension för rollspelsdimensionen kan du enkelt klona den befintliga datumtabellen. Du kan klona en tabell genom att skapa en beräknad tabell. Det beräknade tabelluttrycket är bara namnet på den befintliga datumtabellen.

Om du till exempel vill skapa en Ship Date tabell som klonar Date tabellen använder du följande beräknade tabelluttryck.

Ship Date = 'Date'

Kommentar

När du klonar en tabell med DAX skapas bara kolumner. Den tillämpar inte några modellegenskaper från den klonade tabellen, till exempel format eller beskrivningar. Hierarkier klonas inte heller.

Mer information om den här artikeln finns i följande resurser: