Log på med Microsoft
Log på, eller opret en konto.
Hej
Markér en anden konto.
Du har flere konti
Vælg den konto, du vil logge på med.

Datotabeller i Power Pivot er afgørende for at gennemse og beregne data over tid. Denne artikel giver en indgående forståelse af datotabeller, og hvordan du kan oprette dem i Power Pivot. Denne artikel beskriver især:

  • Derfor er en datotabel vigtig for at gennemse og beregne data ud fra datoer og klokkeslæt.

  • Sådan bruger du Power Pivot til at føje en datotabel til datamodellen.

  • Sådan opretter du nye datokolonner som f.eks. År, Måned og Periode i en datotabel.

  • Sådan oprettes relationer mellem datotabeller og faktatabeller.

  • Sådan arbejder du med tid.

Denne artikel er beregnet til brugere, der ikke er nye brugere af Power Pivot. Det er dog vigtigt, at du allerede har en god forståelse af import af data, oprettelse af relationer og oprettelse af beregnede kolonner og mål.

I denne artikel beskrives det ikke, hvordan du bruger DAX-Time-Intelligence til at måle formler. Du kan finde flere oplysninger om, hvordan du opretter målinger med DAX Time Intelligence-funktioner, under Time Intelligence i Power Pivot Excel.

Bemærk!: I Power Pivot er navnene "måling" og "beregnet felt" synonyme. Vi bruger navnemålet i denne artikel. Du kan få mere at vide under Målinger i Power Pivot.

Indhold

Forstå datotabeller

Næsten alle dataanalyser indebærer søgning og sammenligning af data over datoer og klokkeslæt. Det kan f.eks. være, at du vil summere salgsbeløb for det seneste regnskabskvartal og derefter sammenligne disse totaler med andre kvartaler, eller du vil måske beregne en slutsaldo på en måned for en konto. I hvert af disse tilfælde bruger du datoer som en metode til at gruppere og aggregere salgstransaktioner eller saldi for en bestemt tidsperiode.

Power View rapport

Pivottabel med samlet salg pr. regnskabskvartal

En datotabel kan indeholde mange forskellige repræsentationer af datoer og klokkeslæt. En datotabel vil ofte have kolonner som Regnskabsår, Måned, Kvartal eller Periode, som du kan vælge som felter fra en feltliste, når du skriver og filtrerer dine data i pivottabeller eller Power View-rapporter.

Power View Feltliste

Power View-feltliste

For datokolonner som f.eks. År, Måned og Kvartal for at medtage alle datoerne inden for deres respektive område skal datotabellen have mindst én kolonne med et sammenhængende sæt datoer. Det vil sige, at kolonnen skal have én række for hver dag for hvert år inkluderet i datotabellen.

Hvis de data, du vil gennemse, f.eks. har datoer fra 1. februar 2010 til d. 30. november 2012, og du rapporterer på et kalenderår, skal du bruge en datotabel med mindst et datointerval fra den 1. januar 2010 til den 31. december 2012. Hvert år i datotabellen skal indeholde alle dagene for hvert år. Hvis du jævnligt opdaterer dine data med nyere data, kan det være en god ide at køre slutdatoen et år eller to, så du ikke behøver at opdatere datotabellen, efterhånden som tiden går.

Datotabel med et sammenhængende sæt datoer

Datotabel med sammenhængende datoer

Hvis du rapporterer for et regnskabsår, kan du oprette en datotabel med et sammenhængende sæt datoer for hvert regnskabsår. Hvis dit regnskabsår f.eks. starter d. 1. marts, og du har data for regnskabsår 2010 frem til den aktuelle dato (f.eks. i FY 2013), kan du oprette en datotabel, der starter den 1-3-2009 og indeholder mindst hver dag i hvert regnskabsår til den sidste dato i regnskabsår 2013.

Hvis du vil rapportere på både kalenderår og regnskabsår, behøver du ikke at oprette separate datotabeller. En enkelt datotabel kan indeholde kolonner for et kalenderår, regnskabsår og endda en 134-ugers kalender. Det vigtige er, at datotabellen indeholder et sammenhængende sæt datoer for alle år inklusive.

Føje en datotabel til datamodellen

Der er flere måder, hvorpå du kan føje en datotabel til din datamodel:

  • Importere fra en relationsdatabase eller en anden datakilde.

  • Opret en datotabel i Excel og kopiér eller opret derefter en kæde til en ny tabel i Power Pivot.

  • Importere fra Microsoft Azure Marketplace.

Lad os kigge nærmere på hvert af disse.

Importér fra en relationsdatabase

Hvis du importerer nogle eller alle dine data fra et datalager eller en anden type relationsdatabase, er der sandsynligvis allerede en datotabel og relationer mellem den og resten af dataene, du importerer. Datoerne og formatet svarer sandsynligvis til datoerne i dine faktadata, og datoerne begynder sikkert godt i fortiden og går langt ud i fremtiden. Den datotabel, du vil importere, kan være meget stor og indeholder et datointerval ud over, hvad du skal medtage i datamodellen. Du kan bruge guiden Tabelimport i PowerPivots avancerede filterfunktioner til selektivt kun at vælge de datoer og bestemte kolonner, du virkelig har brug for. Dette kan reducere størrelsen på projektmappen betydeligt og forbedre ydeevnen.

Guiden Tabelimport

Dialogboksen med guiden Tabelimport

I de fleste tilfælde behøver du ikke at oprette flere kolonner som f.eks. Regnskabsår, Uge, Månedsnavn osv., da de allerede findes i den importerede tabel. Men i nogle tilfælde skal du muligvis oprette flere datokolonner, når du har importeret datotabellen til din datamodel, afhængigt af et bestemt rapporteringskrav. Heldigvis er dette nemt at gøre med DAX. Du kan få mere at vide om at oprette datotabelfelter senere. Alle miljøer er forskellige. Hvis du ikke er sikker på, om dine datakilder har en relateret dato eller kalendertabel, skal du kontakte din databaseadministrator.

Opret en datotabel i Excel

Du kan oprette en datotabel i Excel og derefter kopiere den over i en ny tabel i datamodellen. Det er meget nemt, og det giver dig stor fleksibilitet.

Når du opretter en datotabel i Excel, starter du med en enkelt kolonne med et sammenhængende datointerval. Du kan derefter oprette flere kolonner, f.eks. År, Kvartal, Måned, Regnskabsår, Periode osv. i Excel-regnearket ved hjælp af Excel-formler, eller når du har kopieret tabellen til datamodellen, kan du oprette dem som beregnede kolonner. Oprettelse af flere datokolonner i Power Pivot er beskrevet i afsnittet Tilføje nye datokolonner i sektionen Datotabel senere i denne artikel.

Sådan gør du: Opret en datotabel i Excel og kopiér den til datamodellen

  1. Skriv Excel kolonneoverskriftsnavn i celle A1i et tomt regneark for at identificere et datoområde. Dette vil typisk være noget i f.eks. Dato, DateTime eller DateKey.

  2. Skriv en startdato i celle A2. Eksempel: 1/1/2010.

  3. Klik på fyldhåndtaget, og træk det ned til et rækkenummer, der indeholder en slutdato. Eksempel: 31-12-2016.

    Datokolonne i Excel

  4. Markér alle rækker i kolonnen Dato (herunder overskriftsnavnet i celle A1).

  5. I gruppen Typografier skal du klikke på Formatér somtabel og derefter vælge en typografi.

  6. Klik på OK i dialogboksen Formatér som tabel.

    Datokolonne i Power Pivot

  7. Kopiér alle rækker, herunder sidehovedet.

  8. I Power Pivot skal du på fanen Hjem klikke på Sæt ind.

  9. I Indsæt eksempel > skrive et navn som f.eks. Dato eller Kalender. Lad Brug den første række som kolonneoverskrifter være markeret, og klik derefter på OK.

    Indsæt eksempel

    Den nye datotabel (kaldet Kalender i dette eksempel) i Power Pivot ser sådan ud:

    Datotabel i PowerPivot

    Bemærk!: Du kan også oprette en sammenkædet tabel ved hjælp af Føj til datamodel. Dette gør dog projektmappen unødvendig stor, fordi projektmappen har to versioner af datotabellen: en ud Excel én i Power Pivot.

Bemærk!:  Navnedatoen er et nøgleord i Power Pivot. Hvis du navngiver den tabel, du opretter i Power Pivot-dato, skal du omslutte tabelnavnet med enkelte anførselstegn i alle DAX-formler, der refererer til den i et argument. Alle eksempelbillederne og formlerne i denne artikel henviser til en datotabel, der er oprettet i Power Pivot med navnet Kalender.

Du har nu en datotabel i datamodellen. Du kan tilføje nye datokolonner som f.eks. År, Måned osv. ved hjælp af DAX.

Tilføjelse af nye datokolonner i datotabellen

En datotabel med en enkelt datokolonne, der har én række for hver dag for hvert år, er vigtig for at definere alle datoerne i et datoområde. Det er også nødvendigt for at oprette en relation mellem faktatabellen og datotabellen. Men den enkelte datokolonne med én række for hver dag er ikke nyttig, når du analyserer efter datoer i en pivottabel eller Power View rapport. Du vil have din datotabel til at medtage kolonner, der hjælper dig med at aggregere dine data for et område eller en gruppe af datoer. Det kan f.eks. være, at du vil summere salgsbeløb efter måned eller kvartal, eller du kan oprette en måling, der beregner vækst år for år. I hvert af disse tilfælde skal din datotabel have år-, måneds- eller kvartalskolonner, som gør det muligt at aggregere dine data for den pågældende periode.

Hvis du har importeret datotabellen fra en relationel datakilde, indeholder den måske allerede de forskellige typer datokolonner, du ønsker. I nogle tilfælde kan det være en ide at ændre nogle af disse kolonner eller oprette flere datokolonner. Dette gælder især, hvis du opretter din egen datotabel Excel og kopierer den ind i datamodellen. Heldigvis er det ret nemt at oprette nye datokolonner i Power Pivot med Dato- og klokkeslætsfunktioner i DAX.

Tip!: Hvis du endnu ikke har arbejdet med DAX, er et godt sted at begynde at lære med Hurtig start: Lær de grundlæggende DAX-funktioner på 30 minutter Office.com.

DAX-dato- og klokkeslætsfunktioner

Hvis du nogensinde har arbejdet med dato- og klokkeslætsfunktioner i Excel, vil du sandsynligvis være fortrolig med dato- og klokkeslætsfunktionerne. Selvom disse funktioner ligner deres modparter i Excel, er der nogle vigtige forskelle:

  • DAX-funktionerne Dato og Klokkeslæt bruger datatypen datetime.

  • De kan tage værdier fra en kolonne som argument.

  • De kan bruges til at returnere og/eller redigere datoværdier.

Disse funktioner bruges ofte, når du opretter brugerdefinerede datokolonner i en datotabel, så det er vigtigt at forstå dem. Vi bruger en række af disse funktioner til at oprette kolonner for År, Kvartal, Regnskabsår osv.

Bemærk!: Dato- og klokkeslætsfunktioner i DAX er ikke det samme som Tidsintelligens-funktioner. Få mere at vide om Tidsintelligens i Power Pivot Excel 2013.

DAX indeholder følgende Dato- og klokkeslætsfunktioner:

Der er mange andre DAX-funktioner, du kan bruge i dine formler. Mange af de formler, der er beskrevet her, bruger f.eks. matematiske og trigonometriske funktioner som MOD og AFKORT, logiske funktioner som HVIS og Tekstfunktioner som FORMAT Du kan finde flere oplysninger om andre DAX-funktioner i afsnittet Yderligere ressourcer senere i denne artikel.

Formelekse eksempler på et kalenderår

Følgende eksempler beskriver formler, der bruges til at oprette flere kolonner i en datotabel med navnet Kalender. Der findes allerede en kolonne med navnet Dato, og den indeholder et sammenhængende datointerval fra 01-01-2010 til 31-12-2016.

År

=ÅR([dato])

I denne formel returnerer funktionen ÅR året fra værdien i kolonnen Dato. Da værdien i kolonnen Dato er af datatypen datetime, ved funktionen ÅR, hvordan du returnerer året fra den.

Kolonnen År

Måned

=MÅNED([dato])

I denne formel, ligesom med funktionen ÅR, kan vi blot bruge funktionen MÅNED til at returnere en månedsværdi fra kolonnen Dato.

Kolonnen Måned

Kvartal

=HELTA(([Måned]+2)/3)

I denne formel bruger vi funktionen HELTAL til at returnere en datoværdi som et heltal. Det argument, vi angiver for funktionen HELTAL, er værdien fra kolonnen Måned, tilføjer 2 og dividerer derefter det med 3 for at få vores kvartal, 1 via 4.

Kolonnen Kvartal

Månedsnavn

=FORMAT([dato],"mmmm")

I denne formel bruger vi funktionen FORMAT til at konvertere en numerisk værdi fra kolonnen Dato til tekst for at få månedens navn. Vi angiver kolonnen Dato som det første argument og derefter formatet. vi vil have vores månedsnavn til at vise alle tegn, så vi bruger "mmmm". Vores resultat ser sådan ud:

Kolonnen Månedsnavn

Hvis vi vil returnere månedens navn forkortet til tre bogstaver, skal vi bruge "mmm" i argumentet format.

Ugedag

=FORMAT([dato],"ddd")

I denne formel bruger vi funktionen FORMAT til at hente dagsnavnet. Da vi blot ønsker et forkortet dagsnavn, angiver vi "ddd" i argumentet format.

Kolonnen Ugedag
Eksempel på pivottabel

Når du har felter til datoer som f.eks. År, Kvartal, Måned osv., kan du bruge dem i en pivottabel eller rapport. Følgende billede viser f.eks. feltet SalesAmount fra faktatabellen Salg i VÆRDIER og År og Kvartal fra dimensionstabellen Kalender i RÆKKER. Salgbeløb aggregeres for år- og kvartalskontekst.

Eksempel på pivottabel

Formelekse eksempler på et regnskabsår

Regnskabsår

=HVIS([Måned]<= 6,[År],[År]+1)

I dette eksempel begynder regnskabsåret den 1. juli.

Der er ingen funktion, der kan udtrække et regnskabsår fra en datoværdi, fordi start- og slutdatoerne for et regnskabsår ofte er forskellige fra dem i et kalenderår. For at få regnskabsåret bruger vi først en HVIS-funktion til at teste, om værdien for Måned er mindre end eller lig med 6. I det andet argument returneres værdien fra kolonnen År, hvis værdien for Måned er mindre end eller lig med 6. Hvis ikke, returnerer du værdien fra År og lægger 1 til.

Kolonnen Regnskabsår

En anden måde at angive en værdi for et regnskabsårs slutmåned på er ved at oprette en måling, der blot angiver måneden. F.eks. FYE:=6. Du kan derefter henvise til målingens navn i stedet for månedsnummer. Eksempelvis =HVIS([Måned]<=[FYE],[År],[År]+1). Dette giver større fleksibilitet, når der refereres til regnskabsårenes slutmåned i flere forskelligeformler.

Regnskabsmåned

=HVIS([Måned]<= 6, 6+[Måned], [Måned]- 6)

I denne formel angiver vi, om værdien for [Måned] er mindre end eller lig med 6, tager derefter 6 og adder værdien fra Måned, ellers trækker vi 6 fra værdien fra [Måned].

Kolonnen Regnskabsmåned

Regnskabskvartal

=HELTAL(([Regnskabsmånede]+2)/3)

Den formel, vi bruger til FiscalQuarter, er stort set den samme, som den var for Kvartal i vores kalenderår. Den eneste forskel er, at vi angiver [FiscalMonth] i stedet for [Month].

Kolonnen Regnskabskvartal

Helligdage eller særlige datoer

Du kan medtage en datokolonne, der angiver, at visse datoer er helligdage eller en anden særlig dato. Det kan f.eks. være, at du vil lægge salgstotalerne for nytårsdag sammen ved at føje et felt til en pivottabel, som et udsnit eller et filter. I andre tilfælde kan det være en god ide at udelade disse datoer fra andre datokolonner eller i en måling.

Det er ret nemt at inkludere helligdage eller særlige dage. Du kan oprette en tabel i Excel, der indeholder de datoer, du vil medtage. Du kan derefter kopiere eller bruge Føj til datamodel for at føje den til datamodellen som en sammenkædet tabel. I de fleste tilfælde er det ikke nødvendigt at oprette en relation mellem tabellen og tabellen Kalender. Alle formler, der refererer til den, kan bruge funktionen SLÅ.OPVÆRDI til at returnere værdier.

Nedenfor er et eksempel på en tabel, der er oprettet Excel, der indeholder helligdage, der skal føjes til datotabellen:

Dato

Helligdag

1/1/2010

Nye år

11/25/2010

Thanksgiving

12/25/2010

Jule

01-01-2011

Nye år

11/24/2011

Thanksgiving

12/25/2011

Jule

01-01-2012

Nye år

22-11-2012

Thanksgiving

12/25/2012

Jule

1/1/2013

Nye år

11/28/2013

Thanksgiving

12/25/2013

Jule

11/27/2014

Thanksgiving

12/25/2014

Jule

01-01-2014

Nye år

11/27/2014

Thanksgiving

12/25/2014

Jule

1/1/2015

Nye år

11/26/2014

Thanksgiving

12/25/2015

Jule

01-01-2016

Nye år

11/24/2016

Thanksgiving

12/25/2016

Jule

I datotabellen opretter vi en kolonne med navnet Ferie og bruger en formel som denne:

=SLÅ.OPVÆRDI(Helligdage[Ferie],Helligdage[dato],Kalender[dato])

Lad os se nærmere på denne formel.

Vi bruger funktionen SLÅ.OPVÆRDI til at hente værdier fra kolonnen Ferie i tabellen Helligdage. I det første argument angiver vi kolonnen, hvor vores resultatværdi skal være. Vi angiver kolonnen Helligdag i tabellen Helligdage, fordi det er den værdi, vi ønsker returneret.

=SLÅ.VÆRDI(Helligdage[Ferie],Helligdage[dato],Kalender[dato])

Vi angiver derefter det andet argument, søgekolonnen, der indeholder de datoer, vi vil søge efter. Vi angiver kolonnen Dato i tabellen Helligdage, sådan her:

=SLÅ.OPVÆRDI(Helligdage[Ferie],Helligdage[dato],Kalender[dato])

Endelig angiver vi den kolonne i tabellen Kalender, der indeholder de datoer, vi vil søge efter, i tabellen Ferie. Dette er naturligvis kolonnen Dato i tabellen Kalender.

=SLÅ.OPVÆRDI(Helligdage[Ferie],Helligdage[dato],Kalender[dato])

Kolonnen Helligdag returnerer julenavnet for hver række, der har en datoværdi, der svarer til en dato i tabellen Helligdage.

Tabellen Helligdag

Brugerdefineret kalender – tretten fire-ugers perioder

Nogle organisationer, som f.eks. detail- eller madtjeneste, rapporterer ofte om forskellige perioder, f.eks. tretten fire ugers perioder. Med en tretten fire-ugers kalenderperiode er hver periode 28 dage; derfor indeholder hver periode fire mandage, fire tirsdage, fire onsdage osv. Hver periode indeholder det samme antal dage, og helligdage falder typisk inden for samme periode hvert år. Du kan vælge at starte en periode på en hvilken som helst dag i ugen. På samme måde som med datoer i en kalender eller et regnskabsår kan du bruge DAX til at oprette flere kolonner med brugerdefinerede datoer.

I eksemplerne nedenfor starter den første hele periode den første søndag i regnskabsåret. I dette tilfælde begynder regnskabsåret den 7/1.

Uge

Denne værdi giver os ugenummeret, der starter med den første hele uge i regnskabsåret. I dette eksempel begynder den første hele uge søndag, så den første hele uge i det første regnskabsår i tabellen Kalender starter faktisk den 4/7/2010 og fortsætter til og med den sidste hele uge i tabellen Kalender. Selvom denne værdi i sig selv ikke er alt, der er nyttigt til analyse, er det nødvendigt at beregne til brug i andre formler for 28 dage.

=HELTA([dato]-40356)/7)

Lad os se nærmere på denne formel.

Først opretter vi en formel, der returnerer værdier fra kolonnen Dato som et heltal, som dette:

=HELTA([dato])

Vi vil derefter lede efter den første søndag i det første regnskabsår. Vi kan se, at det er 04-07-2010.

Kolonnen Uge

Nu skal du trække 40356 (hvilket er heltal for 27-06-2010, den sidste søndag fra det forrige regnskabsår) fra denne værdi for at få antallet af dage siden starten af dagene i vores kalendertabel, sådan her:

=HELTA([dato]-40356)

Divider derefter resultatet med 7 (dage i en uge) på følgende måde:

=HELTA(([dato]-40356)/7)

Resultatet ser sådan ud:

Kolonnen Uge

Period

Perioden i denne brugerdefinerede kalender indeholder 28 dage, og den starter altid en søndag. Denne kolonne returnerer tallet for den periode, der begynder med den første søndag i det første regnskabsår.

=HELTA(([Uge]+3)/4)

Lad os se nærmere på denne formel.

Først opretter vi en formel, der returnerer en værdi fra kolonnen Uge som et heltal, som dette:

=HELTA([Uge])

Føj derefter 3 til den værdi, sådan her:

=HELTA([Uge]+3)

Divider derefter resultatet med 4, sådan her:

=HELTA(([Uge]+3)/4)

Resultatet ser sådan ud:

Kolonnen periode

Periode Regnskabsår

Denne værdi returnerer regnskabsåret for en periode.

=HELTA(([Periode]+12)/13)+2008

Lad os se nærmere på denne formel.

Først opretter vi en formel, der returnerer en værdi fra punktum og lægger 12 sammen:

= ([Punktum]+12)

Vi dividerer resultatet med 13, fordi der er tretten 28 dagsperioder i regnskabsåret:

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

Vi tilføjer 2010, fordi det er det første år i tabellen:

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

Til sidst bruger vi funktionen HELTA til at fjerne en hvilken som helst brøkdel af resultatet og returnerer et helt tal, når det divideres med 13, således:

=HELTA(([Periode]+12)/13)+2010

Resultatet ser sådan ud:

Kolonne Periode regnskabsår

Periode i Regnskabsår

Denne værdi returnerer periodenummeret 1-13, startende med den første fulde periode (begyndende på søndag) for hvert regnskabsår.

=HVIS(REST([periode],13), REST([periode],13),13)

Denne formel er lidt mere kompleks, så vi beskriver den først på et sprog, vi bedre forstår. Denne formel siger, at dividere værdien fra [periode] med 13 for at få et periodenummer (1-13) i året. Hvis tallet er 0, returneres 13.

Først opretter vi en formel, der returnerer restværdien fra Periode med 13. Vi kan bruge funktionerne MOD (Matematisk og trigonometrisk) på følgende måde:

=REST([periode],13)

Dette giver os for det meste det ønskede resultat, bortset fra hvor værdien for Periode er 0, fordi disse datoer ikke falder inden for det første regnskabsår, som i de første fem dage i vores eksempel på kalenderdatotabel. Det kan vi gøre med en HVIS-funktion. Hvis vores resultat er 0, returnerer vi 13, som dette:

=HVIS(REST([periode],13),REST([periode],13),13)

Resultatet ser sådan ud:

Kolonnen Periode i regnskabsår

Eksempel på pivottabel

Billedet nedenfor viser en pivottabel med feltet SalesAmount fra faktatabellen Salg i felterne VÆRDIER og PeriodFiscalYear og PeriodInFiscalYear fra dimensionstabellen Kalenderdato i RÆKKER. Salgbeløb aggregeres for konteksten efter regnskabsår og 28-dages periode i regnskabsåret.

Eksempel på pivottabel for regnskabsår

Relationer

Når du har oprettet en datotabel i datamodellen, skal du oprette en relation mellem faktatabellen med transaktionsdataene og datotabellen for at begynde at gennemse dine data i pivottabeller og rapporter og aggregere data baseret på kolonnerne i din datodimensionstabel.

Da du skal oprette en relation baseret på datoer, skal du sikre dig, at du opretter relationen mellem kolonner, hvis værdier er af datatypen datetime (Dato).

For hver datoværdi i faktatabellen skal den relaterede opslagskolonne i datotabellen indeholde tilsvarende værdier. Eksempelvis skal en række (transaktionspost) i faktatabellen Salg med værdien 15-08-2012 12:00 i kolonnen DateKey have en tilsvarende værdi i den relaterede Dato-kolonne i tabellen Dato (navngivet Kalender). Dette er en af de vigtigste grunde til, at datokolonnen i datotabellen skal indeholde et sammenhængende datointerval, der indeholder enhver mulig dato i faktatabellen.

Relationer i diagramvisning

Bemærk!: Mens datokolonnen i hver tabel skal være af samme datatype (Dato), er formatet for hver kolonne ligegyldigt.

Bemærk!: Hvis du ikke kan oprette relationer mellem de to tabeller i Power Pivot, gemmer datofelterne muligvis ikke dato og klokkeslæt på samme præcisionsniveau. Afhængigt af kolonneformateringen kan værdierne se ens ud, men de skal gemmes anderledes. Læs mere om at arbejde med tid.

Bemærk!: Undgå at bruge heltals erstatningsnøgler i relationer. Når du importerer data fra en relationel datakilde, repræsenteres dato- og klokkeslætskolonner ofte af en erstatningsnøgle, som er en heltalskolonne, der bruges til at repræsentere en entydig dato. I Power Pivot skal du undgå at oprette relationer ved hjælp af heltals dato-/klokkeslætstaster og i stedet bruge kolonner, der indeholder entydige værdier med en datodatatype. Selvom brug af erstatningstaster betragtes som den bedste fremgangsmåde i traditionelle datalagre, er heltalstasterne ikke nødvendige i Power Pivot og kan gøre det svært at gruppere værdier i pivottabeller efter forskellige datoperioder.

Hvis du får en typeuoverensstemmelsesfejl, når du forsøger at oprette en relation, er det sandsynligvis, fordi kolonnen i faktatabellen ikke er af datatypen Dato. Dette kan ske, når Power Pivot ikke automatisk kan konvertere en ikke-dato (som regel en tekstdatatype) til en datodatatype. Du kan stadig bruge kolonnen i faktatabellen, men du skal konvertere dataene med en DAX-formel i en ny beregnet kolonne. Se Konvertere tekstdatatypedatoer til en datodatatype senere i appendiksen.

Flere relationer

I nogle tilfælde kan det være nødvendigt at oprette flere relationer eller oprette flere datotabeller. Hvis der f.eks. er flere datofelter i faktatabellen Salg, f.eks. DateKey, ShipDate og ReturnDate, kan de alle have relationer til feltet Dato i tabellen Kalenderdato, men kun én af dem kan være en aktiv relation. I dette tilfælde, fordi DateKey repræsenterer datoen for transaktionen, og derfor den vigtigste dato, ville dette bedst fungere som den aktive relation. De andre har inaktive relationer.

Følgende pivottabel beregner det samlede salg efter regnskabsår og regnskabskvartal. En måling med navnet Samlet salg med formlen Samlet salg:=SUM([Salgsbeløb])placeres i VÆRDIER, og felterne FiscalYear og FiscalQuarter fra tabellen Med kalenderdato er placeret i RÆKKER.

Pivottabel med samlet salg efter regnskabskvartal Feltliste for pivottabel

Denne pivottabel med lige linje fungerer korrekt, fordi vi vil summere vores samlede salg efter transaktionsdatoeni DateKey. Vores måling Samlet salg bruger datoerne i DateKey og summeres efter regnskabsår og regnskabskvartal, fordi der er en relation mellem DateKey i tabellen Salg og kolonnen Dato i tabellen Kalenderdato.

Inaktive relationer

Men hvad nu, hvis vi gerne vil summere vores samlede salg ikke efter transaktionsdato, men efter afsendelsesdato? Vi har brug for en relation mellem kolonnen Forsendelsesdato i tabellen Salg og kolonnen Dato i tabellen Kalender. Hvis vi ikke opretter denne relation, er vores sammenlægninger altid baseret på transaktionsdatoen. Vi kan dog have flere relationer, selvom kun én relation kan være aktiv, og da transaktionsdatoen er den vigtigste, bliver den aktive relation til tabellen Kalender.

I dette tilfælde har ShipDate en inaktiv relation, så enhver målingsformel, der er oprettet for at aggregere data baseret på forsendelsesdatoer, skal angive den inaktive relation ved hjælp af funktionen USERELATIONSHIP.

Da der f.eks. er en inaktiv relation mellem kolonnen Forsendelsesdato i tabellen Salg og kolonnen Dato i tabellen Kalender, kan vi oprette en måling, der summerer det samlede salg efter forsendelsesdato. Vi bruger en formel som denne til at angive relationen, der skal bruges:

Samlet salg efter forsendelsesdato:=CALCULATE(SUM(Salg[Salgsbeløb]), USERELATIONSHIP(Salg[Forsendelsesdato], Kalender[Dato]))

Denne formel siger blot: Beregn en sum for SalesAmount, men filtrer ved hjælp af relationen mellem kolonnen Forsendelsesdato i tabellen Salg og kolonnen Dato i tabellen Kalender.

Hvis vi nu opretter en pivottabel og sætter målingen Samlet salg efter afsendelsesdato i VÆRDIER og Regnskabsår og Regnskabskvartal på RÆKKER, kan vi se den samme Hovedtotal, men alle andre sumbeløb for regnskabsår og regnskabskvartal er forskellige, fordi de er baseret på afsendelsesdatoen og ikke transaktionsdatoen.

Pivottabel med samlet salg efter forsendelsesdato Feltliste for pivottabel

Når du bruger inaktive relationer, kan du kun bruge én datotabel, men det kræver, at alle målinger (f.eks. Samlet salg efter afsendelsesdato) henviser til den inaktive relation i formlen. Der er et andet alternativ, dvs. brug flere datotabeller.

Flere datotabeller

En anden måde at arbejde med flere datokolonner i faktatabellen er at oprette flere datotabeller og oprette separate aktive relationer mellem dem. Lad os se på eksemplet fra tabellen Salg igen. Vi har tre kolonner med datoer, som vi muligvis gerne vil aggregere data på:

  • En DateKey med datoen for salget for hver transaktion.

  • En Forsendelsesdato – med den dato og det klokkeslæt, hvor de solgte varer blev sendt til kunden.

  • En Returneringsdato – med dato og klokkeslæt, hvor et eller flere returnerede elementer blev modtaget.

Husk, at feltet DateKey med transaktionsdatoen er det vigtigste. Vi vil udføre de fleste sammenlægninger baseret på disse datoer, så der vil selvfølgelig være en relation mellem den og kolonnen Dato i tabellen Kalender. Hvis vi ikke vil oprette inaktive relationer mellem Forsendelsesdato og Returneringsdato og feltet Dato i tabellen Kalender, hvilket kræver særlige måleformler, kan vi oprette flere datotabeller for forsendelsesdato og returdato. Vi kan derefter oprette aktive relationer mellem dem.

Relationer med flere datotabeller i diagramvisning

I dette eksempel har vi oprettet en anden datotabel med navnet ShipCalendar. Det betyder selvfølgelig også, at du skal oprette flere datokolonner, og da disse datokolonner findes i en anden datotabel, vil vi navngive dem på en måde, der adskiller dem fra de samme kolonner i tabellen Kalender. Vi har f.eks. oprettet kolonner med navnet ShipYear, ShipMonth, ShipQuarter osv.

Hvis vi opretter vores pivottabel og angiver vores måling Samlet salg i VÆRDIER og ShipFiscalYear og ShipFiscalQuarter på RÆKKER, ser vi de samme resultater, som vi så, da vi oprettede en inaktiv relation, og et specielt beregnet felt Samlet salg efter afsendelsesdato.

Pivottabel med forsendelseskalender over Samlet salg efter Forsendelsesdato Feltliste for pivottabel

Hver af disse fremgangsmåder kræver nøje overvejelser. Når du bruger flere relationer med en enkelt datotabel, kan det være nødvendigt at oprette særlige målinger, der transiter inaktive relationer ved hjælp af funktionen USERELATIONSHIP. På den anden side kan det være forvirrende at oprette flere datotabeller i en feltliste, og fordi du har flere tabeller i datamodellen, kræver det mere hukommelse. Eksperimentér med det, der fungerer bedst for dig.

Egenskaben Datotabel

Egenskaben Datotabel angiver metadata, der er nødvendige forTime-Intelligence f.eks. TOTALYTD, PREVIOUSMONTH og DATESBETWEEN fungerer korrekt. Når en beregning køres ved hjælp af en af disse funktioner, ved Power Pivots formelprogram, hvor du kan få de datoer, den skal bruge.

Advarsel!: Hvis denne egenskab ikke er angivet, returnerer målinger, der bruger DAX-Time-Intelligence, muligvis ikke de korrekte resultater.

Når du angiver egenskaben Datotabel, angiver du en datotabel og en datokolonne med datatypen Dato (datetime) i den.

Dialogboksen Markér som datotabel

Sådan angives egenskaben Datotabel

  1. Vælg PowerPivot kalender i vinduet Kalender.

  2. På fanen Design skal du klikke på Markér som datotabel.

  3. Vælg en kolonne med entydige værdier og datatypen Dato i dialogboksen Markér som datotabel.

Arbejde med tid

Alle datoværdier med datatypen Dato i Excel eller SQL Server er faktisk et tal. Inkluderet i dette tal er cifre, der refererer til et tidspunkt. I mange tilfælde er det tid for hver enkelt række midnat. Hvis f.eks. et DateTimeKey-felt i en salgs-faktatabel har værdier som f.eks. 19-10-2010 12:00:00, betyder det, at værdierne er på præcisionsniveauet for dagen. Hvis feltværdierne for DateTimeKey indeholder et klokkeslæt, f.eks. 19-10-2010 8:44:00, betyder det, at værdierne er på præcisionsniveauet for minutter. Værdier kan også være præcisionen af timeniveau eller endda sekunders præcisionsniveau. Præcisionsniveauet i tidsværdi har stor indflydelse på, hvordan du opretter datotabellen og relationerne mellem den og faktatabellen.

Du skal afgøre, om du vil aggregere dine data til et præcisionsniveau for dagen eller til et præcisionsniveau for tid. Med andre ord kan det være en god ide at bruge kolonner i datotabellen, f.eks. Morgen, Aften eller Time, som klokkeslætsdatofelter i områderne Række, Kolonne eller Filtrer i en pivottabel.

Bemærk!: Dage er den mindste tidsenhed, som DAX-tidsintelligens-funktioner kan arbejde med. Hvis du ikke har brug for at arbejde med tidsværdier, skal du reducere præcisionen af dine data, så du kan bruge dage som minimumenhed.

Hvis du regner med at aggregere dine data til tidsniveauet, skal datotabellen bruge en datokolonne med det inkluderede klokkeslæt. Faktisk skal der være en datokolonne med én række for hver time, eller måske endda hvert minut, hver dag, for hvert år i datointervallet. Dette skyldes, at hvis du vil oprette en relation mellem kolonnen DateTimeKey i faktatabellen og datokolonnen i datotabellen, skal du have matchende værdier. Som du kan forestille dig, og hvis du regner med mange år, kan det give en meget stor datotabel.

I de fleste tilfælde vil du dog kun samle dine data til dagen. Med andre ord skal du bruge kolonner som f.eks. År, Måned, Uge eller Ugedag som felter i områderne Række, Kolonne eller Filtrer i en pivottabel. I dette tilfælde behøver datokolonnen i datotabellen kun at indeholde én række for hver dag i et år, som vi har beskrevet tidligere.

Hvis datokolonnen indeholder et præcisionsniveau, men du kun sammenlægge til dagsniveau for at oprette relationen mellem faktatabellen og datotabellen, kan det være nødvendigt at ændre faktatabellen ved at oprette en ny kolonne, der afkorter værdierne i datokolonnen til en dagsværdi. Med andre ord skal du konvertere en værdi som 19-10-2010 8:44:00 til 19-10-2010 12:00:00. Du kan derefter oprette relationen mellem den nye kolonne og datokolonnen i datotabellen, fordi værdierne matcher.

Lad os se på et eksempel. Dette billede viser en DateTimeKey-kolonne i faktatabellen Salg. Alle sammenlægningerne for dataene i denne tabel behøver kun at være på dagsniveau ved hjælp af kolonner i tabellen med kalenderdatoer som f.eks. År, Måned, Kvartal osv. Det klokkeslæt, der er inkluderet i værdien, er ikke relevant, kun den faktiske dato.

Kolonnen DateTimeKey

Da vi ikke behøver at analysere disse data i forhold til tidsniveauet, har vi ikke brug for kolonnen Dato i tabellen Kalenderdato for at medtage én række for hver time og hvert minut i hver dag i hvert år. Så kolonnen Dato i vores datotabel ser sådan ud:

Datokolonne i Power Pivot

Hvis du vil oprette en relation mellem kolonnen DateTimeKey i tabellen Salg og kolonnen Dato i tabellen Kalender, kan vi oprette en ny beregnet kolonne i faktatabellen Salg og bruge funktionen AFKORT til at afkorte dato- og klokkeslætsværdien i kolonnen DateTimeKey til en datoværdi, der svarer til værdierne i kolonnen Dato i tabellen Kalender. Vores formel ser sådan ud:

=AFKORT([DateTimeKey],0)

Dette giver os en ny kolonne (vi hedder DateKey) med datoen fra kolonnen DateTimeKey og et tidspunkt på 12:00:00 for hver række:

Kolonnen DateKey

Nu kan vi oprette en relation mellem denne nye kolonne (DateKey) og kolonnen Dato i tabellen Kalender.

På samme måde kan vi oprette en beregnet kolonne i tabellen Salg, der reducerer tidspræcisionen i kolonnen DateTimeKey til præcisionsniveauet time. I dette tilfælde fungerer funktionen AFKORT ikke, men vi kan stadig bruge andre DAX-dato- og klokkeslætsfunktioner til at udtrække og sammenkæde en ny værdi med et timepræcisionsniveau. Vi kan bruge en formel som denne:

= DATO (ÅR([DateTimeKey]), MONTH([DateTimeKey]), DAY([DateTimeKey]) ) + TIME (HOUR([DateTimeKey]), 0, 0)

Vores nye kolonne ser sådan ud:

Kolonnen DateTimeKey

Forudsat at kolonnen Dato i datotabellen har værdier, der svarende til præcisionsniveauet for time, kan vi derefter oprette en relation mellem dem.

Gøre datoer mere anvendelige

Mange af de datokolonner, du opretter i datotabellen, er nødvendige for andre felter, men de er i virkeligheden ikke så nyttige til analyse. Eksempelvis er feltet DateKey i tabellen Salg, vi har henvist til og vist i denne artikel, vigtigt, fordi for hver transaktion registreres den pågældende transaktion som forekommer på en bestemt dato og et bestemt klokkeslæt. Men fra et analyse- og rapporteringspunkt er det ikke alt, der er nyttigt, fordi vi ikke kan bruge det som en række, kolonne eller et filterfelt i en pivottabel eller rapport.

På samme måde er kolonnen Dato i tabellen Kalender meget nyttig, faktisk, men du kan ikke bruge den som en dimension i en pivottabel.

For at holde tabeller og kolonner i dem så nyttige som muligt og for at gøre det nemmere at navigere i pivottabel- eller Power View-rapportfeltlister er det vigtigt at skjule unødvendige kolonner fra klientværktøjer. Det kan også være en god ide at skjule visse tabeller. Tabellen Helligdage, der er vist tidligere, indeholder feriedatoer, der er vigtige for visse kolonner i tabellen Kalender, men du kan ikke bruge kolonnerne Dato og Helligdage i selve tabellen Helligdage som felter i en pivottabel. Igen kan du gøre det nemmere at navigere i feltlister ved at skjule hele tabellen Helligdage.

Et andet vigtigt aspekter ved at arbejde med datoer er navngivningskonventioner. Du kan navngive tabeller og kolonner i Power Pivot, alt efter hvad du ønsker. Men husk, især hvis du skal dele din projektmappe med andre brugere, en god navngivningskonvention gør det nemmere at identificere tabeller og datoer, ikke kun i feltlister, men også i Power Pivot- og DAX-formler.

Når du har en datotabel i datamodellen, kan du begynde at oprette målinger, som kan hjælpe dig med at få mest muligt ud af dine data. Nogle kan være noget så enkle som at summere salgstotalerne for det aktuelle år, mens andre kan være mere komplekse, hvor du skal filtrere på et bestemt interval af entydige datoer. Få mere at vide i Målinger i Power Pivot- og Time Intelligence-funktioner.

Appendiks

Konvertere tekstdatatypedatoer til en datodatatype

I nogle tilfælde kan en faktatabel med transaktionsdata indeholde datoer med tekstdatatype. Det vil sige, at en dato, der vises som 12-12-04T11:47:09, faktisk slet ikke er en dato, eller i hvert fald ikke den type dato, som Power Pivot kan forstå. Det er faktisk bare tekst, der læser som en dato. Hvis du vil oprette en relation mellem en datokolonne i faktatabellen og en datokolonne i en datotabel, skal begge kolonner have datatypen Dato.

Når du forsøger at ændre datatypen for en kolonne med datoer, der er tekstdatatyper, til en datodatatype, kan Power Pivot fortolke datoerne og konvertere den automatisk til en sand datodatatype. Hvis Power Pivot ikke kan udføre konvertering af datatype, får du vist en fejl om uoverensstemmelse mellem datatyper.

Du kan dog stadig konvertere datoerne til en ægte datodatatype. Du kan oprette en ny beregnet kolonne og bruge en DAX-formel til at fortolke år, måned, dag, klokkeslæt osv. fra tekststrengene og derefter sammenkæde den igen på en måde, som Power Pivot kan læse som en korrekt dato.

I dette eksempel har vi importeret en faktatabel med navnet Salg i Power Pivot. Den indeholder en kolonne med navnet DateTime. Værdier vises på følgende måde:

DateTime-kolonne i en faktatabel.

Hvis vi ser på datatypen i gruppen Formatering under fanen Hjem i Power Pivot, kan vi se, at det er datatypen Tekst.

Datatype på båndet

Vi kan ikke oprette en relation mellem kolonnen DateTime og kolonnen Dato i vores datotabel, fordi datatyperne ikke stemmer overens. Hvis vi forsøger at ændre datatypen til Dato, fårvi en fejl om uoverensstemmelse mellem typer:

Uoverensstemmelsesfejl

I dette tilfælde kunne Power Pivot ikke konvertere datatypen fra tekst til dato. Vi kan stadig bruge denne kolonne, men for at få den ind i en ægte datodatatype, skal vi oprette en ny kolonne, der fortolker teksten og opretter den igen til en værdi i Power Pivot, så den kan oprette en Dato-datatype.

Husk, at du fra sektionen Arbejder med tid tidligere i denne artikel; Medmindre det er nødvendigt, at analysen skal have præcisionsniveau for tid på dagen, skal du konvertere datoer i faktatabellen til et præcisionsniveau for dagen. Med det i baghovedet ønsker vi, at værdierne i den nye kolonne skal være på præcisionsniveauet for dagen (ekskl. tid). Vi kan både konvertere værdierne i kolonnen DateTime til en datodatatype og fjerne præcisionsniveauet for tid med følgende formel:

=DATO(VENSTRE([DateTime],4), MID([DateTime],6,2), MID([DateTime],9,2))

Dette giver os en ny kolonne (i dette tilfælde kaldet Dato). Power Pivot registrerer endda værdierne som datoer og angiver automatisk datatypen til Dato.

Datokolonne i faktatabel

Hvis vi vil bevare præcisionsniveauet for tid, skal vi blot udvide formlen for at medtage timer, minutter og sekunder.

=DATO(VENSTRE([DateTime],4), MID([DateTime],6,2), MID([DateTime],9,2)) +

TID(MIDT([DateTime],12,2), MIDT([DateTime],15,2), MIDT([DateTime],18,2))

Nu hvor vi har en Dato-kolonne af datatypen Dato, kan vi oprette en relation mellem den og en datokolonne i en dato.

Yderligere ressourcer

Datoer i Power Pivot

Beregninger i Power Pivot

Hurtig start: Lær de grundlæggende DAX-funktioner på 30 minutter

Reference til dataanalyseudtryk

DAX-ressourcecenter

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.

Var disse oplysninger nyttige?

Hvor tilfreds er du med kvaliteten af sproget?
Hvad påvirkede din oplevelse?
Når du trykker på Send, bliver din feedback brugt til at forbedre Microsoft-produkter og -tjenester. Din it-administrator kan indsamle disse data. Erklæring om beskyttelse af personlige oplysninger.

Tak for din feedback!

×