Forstå og oprette datotabeller i PowerPivot i Excel

Bemærk!: Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Dato tabeller i Power Pivot er afgørende for at gennemse og beregne data over tid. Denne artikel giver et indgående kendskab til dato tabeller, 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 efter datoer og klokkeslæt.

  • Sådan bruges Power Pivot til at føje en datotabel til data modellen.

  • Sådan oprettes nye datokolonner som år, måned og periode i en datotabel.

  • Sådan oprettes relationer mellem dato tabeller og faktatabeller.

  • Sådan arbejder du med tid.

Denne artikel henvender sig til brugere, der er ny i Power Pivot. Det er dog vigtigt, at du allerede har en god forståelse af at importere data, oprette relationer og oprette beregnede kolonner og målinger.

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

Bemærk!: I Power Pivot er navnene "måling" og "beregnet felt" synonymt. Vi brugernavne målingen i denne artikel. Hvis du vil have mere at vide, skal du se mål i Power Pivot.

Indhold

Forstå dato tabeller

Tilføje en datotabel til data modellen

Importere fra en relationsdatabase

Oprette en datotabel i Excel

Sådan gør du: oprette en datotabel i Excel og kopiere den til data modellen

Tilføje nye datokolonner til dato tabellen

DAX-dato-og KlokkeslætsFunktioner

Formel eksempler for et kalenderår

År

Måned

Kvartal

MånedsNavn

Formel eksempler for et regnskabsår

Regnskabsår

Regnskabsmåned

Regnskabskvartal

Helligdage eller Special datoer

Brugerdefineret kalender-13 4-uger

Uge

Periode

Periodens regnskabsår

Periode i regnskabsår

Relationer

Flere relationer

InAktive relationer

Flere dato tabeller

Egenskaben Datotabel

Arbejde med tid

Gør datoer mere brugbare

Appendiks

Konvertere tekstdata typen datoer til datatypen Dato

Yderligere ressourcer

Forstå dato tabeller

Næsten alle dataanalyser involverer søgning og sammenligning af data over datoer og klokkeslæt. Det kan være en god ide at beregne salgsbeløb for den tidligere regnskabskvartal og sammenligne disse totaler med andre kvartaler, eller du vil måske beregne en måneds afslutnings saldo for en konto. I hver af disse tilfælde bruger du datoer som en metode til at gruppere og samle salgsposteringer eller saldi for en bestemt periode i tide.

Power View-rapport

Pivottabel med samlet salg pr. regnskabskvartal

En datotabel kan indeholde mange forskellige repræsentationer af datoer og klokkeslæt. For eksempel vil en datotabel ofte have kolonner som regnskabsår, måned, kvartal eller periode, som du kan vælge som felter fra en feltliste, når du opminder og filtrerer dine data i pivottabeller eller Power View-rapporter.

Power View-Feltliste

Power View-feltliste

For datokolonner som år, måned og kvartal for at medtage alle datoerne inden for deres respektive område skal dato tabellen have mindst én kolonne med et sammenhængende sæt datoer. Det vil være, at kolonnen skal have én række for hver dag for hvert år, der er inkluderet i dato tabellen.

Hvis de data, du vil gennemse, også har datoer fra februar 1, 2010 til og med november 30th 2012, og du rapporterer om et kalenderår, skal du bruge en datotabel med mindst et datointerval fra 1. januar 2010 til og med December 31st 2012. Hvert år i din datotabel skal indeholde alle dage for hvert år. Hvis du jævnligt opdaterer dine data med nyere data, kan det være en god ide at køre slutdatoen med et år eller to, så du ikke behøver at opdatere dato tabellen, efterhånden som tiden går.

Datotabel med et sammenhængende sæt datoer

Datotabel med sammenhængende datoer

Hvis du rapporterer om et regnskabsår, kan du oprette en datotabel med et sammenhængende sæt datoer for hvert regnskabsår. Hvis dit regnskabsår for eksempel starter 1, og du har data for regnskabsårene 2010 op gennem dags dato (f. eks. i FY 2013), kan du oprette en datotabel, der begynder på 3/1/2009, og som mindst hver dag i hvert regnskabsår gennem den sidste dato i regnskabsåret 2013.

Hvis du vil rapportere både fra kalenderåret og regnskabsåret, behøver du ikke at oprette særskilte dato tabeller. En enkelt datotabel kan indeholde kolonner for et kalenderår, et regnskabsår og endda en 13 4-uges periode kalender. Det vigtigste er, at tabellen dato indeholder et sammenhængende sæt datoer for alle år, der er inkluderet.

Tilføje en datotabel til data modellen

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

  • Importér fra en relationsdatabase eller en anden datakilde.

  • Oprette en datotabel i Excel og derefter kopiere eller oprette et link til en ny tabel i Power Pivot.

  • Importér fra Microsoft Azure Marketplace.

Lad os se nærmere på disse ting mere.

Importere 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 dem og resten af de data, du importerer. Datoerne og formatet stemmer sandsynligvis overens med datoerne i faktadataene, og datoerne træder sandsynligvis godt i kraft i fortiden og går langt ud i fremtiden. Den datotabel, du vil importere, kan være meget stor og indeholde en række datoer ud over, hvad du skal medtage i din data model. Du kan bruge avancerede filterfunktioner til tabel import i Power Pivot til at nøjes med at vælge de datoer og bestemte kolonner, du virkelig har brug for. Dette kan reducere størrelsen på din projektmappe betydeligt og forbedre ydeevnen.

Guiden Tabel import

Dialogboksen med guiden Tabelimport

I de fleste tilfælde er det ikke nødvendigt at oprette yderligere kolonner som regnskabsåret, uge, MånedsNavn osv., da de allerede findes i den importerede tabel. Men i nogle tilfælde, når du har importeret dato tabellen i din data model, skal du muligvis oprette yderligere datokolonner, afhængigt af et bestemt rapporteringsbehov. Det er heldigvis let at gøre ved hjælp af DAX. Du kan få mere at vide om oprettelse af datotabel felter senere. Hvert miljø er forskelligt. Hvis du ikke er sikker på, om dine datakilder har en relateret dato eller en kalender tabel, skal du tale med din databaseadministrator.

Oprette en datotabel i Excel

Du kan oprette en datotabel i Excel og derefter kopiere den til en ny tabel i data modellen. Det er meget nemt at gøre, og det giver dig stor fleksibilitet.

Når du opretter en datotabel i Excel, begynder du med en enkelt kolonne med et sammenhængende datointerval. Du kan derefter oprette yderligere kolonner som å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 data modellen, kan du oprette dem som beregnede kolonner. Oprettelse af ekstra datokolonner i Power Pivot er beskrevet i afsnittet føje nye datokolonner til dato tabellen senere i denne artikel.

Sådan gør du: oprette en datotabel i Excel og kopiere den til data modellen

  1. I Excel i et tomt regneark i celle a1skal du skrive et navn på en kolonneoverskrift for at identificere et datointerval. Det vil typisk værenoget som dato, DateTime eller DateKey.

  2. Skriv en startdato i celle a2. For eksempel 1/1/2010.

  3. Klik på fyldhåndtaget, og træk det ned til et rækkenummer, der omfatter en slutdato. For eksempel 12/31/2016.

    Datokolonne i Excel

  4. Markér alle rækker i kolonnen dato (inklusive sidehoved navnet i celle a1).

  5. Klik på Formatér som tabeli gruppen typografier , og vælg derefter en typografi.

  6. I dialogboksen Formatér som tabel skal du klikke på OK.

    Datokolonne i Power Pivot

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

  8. Klik på Sæt indunder fanen hjem i Power Pivot.

  9. I Indsæt eksempel _GT_ Tabelnavn skal du skrive et navn som f. eks dato eller kalender. Forlad Brug første række som kolonneoverskriftermarkeret, og klik derefter på OK.

    Indsæt eksempel

    Den nye datotabel (som hedder 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 data model. Men det gør din projektmappe unødvendig stor, fordi projektmappen har to versioner af dato tabellen. en i Excel og en i Power Pivot..

Bemærk!: Navne datoen er et nøgleord i Power Pivot. Hvis du har navn på den tabel, du opretter i Power Pivot-dato, skal du sætte tabelnavnet med enkelte anførselstegn i alle DAX-formler, der refererer til det i et argument. Alle eksempler på billeder og formler i denne artikel refererer til en datotabel, der er oprettet i Power Pivot-navngivet kalender.

Nu har du en datotabel i din data model. Du kan tilføje nye datokolonner, f. eks år, måned osv., ved hjælp af DAX.

Tilføje nye datokolonner til dato tabellen

En datotabel med en enkelt kolonne-kolonne med én række for hver dag for hvert år er vigtigt, for at du kan definere alle datoerne i et datointerval. Det er også nødvendigt at oprette en relation mellem faktatabellen og dato tabellen. Men den samme kolonne med én dato med én række for hver dag er ikke nyttig ved analyse af datoer i en pivottabel-eller Power View-rapport. Du vil have, at din datotabel skal indeholde kolonner, der kan hjælpe dig med at samle dine data for et område eller en gruppe af datoer. F. eks. vil du måske beregne salgsbeløb efter måned eller kvartal, eller du kan oprette en måling, der beregner vækst på år. I hver af disse tilfælde skal dato tabellen have kolonner for år, måned eller kvartal, der giver dig mulighed for at samle dine data for den pågældende periode.

Hvis du har importeret dato tabellen fra en relations datakilde, indeholder den muligvis allerede de forskellige typer af datokolonner, du vil bruge. I nogle tilfælde kan det være en god ide at ændre nogle af kolonnerne eller oprette flere datokolonner. Dette gælder især, hvis du opretter din egen datotabel i Excel og kopierer den til data modellen. Heldigvis er det meget nemt at oprette nye datokolonner i Power Pivot med funktionerne dato og klokkeslæt i DAX.

Tip!: Hvis du endnu ikke har arbejdet med DAX, er et glimrende lokale at starte Learning med hurtig start: Lær om DAX-grundlæggende i 30 minutter på Office.com.

DAX-dato-og KlokkeslætsFunktioner

Hvis du nogensinde har arbejdet med dato-og klokkeslætsfunktioner i Excel-formler, er det sandsynligt, at du kender dato-og klokkeslæts funktionerne. Selvom disse funktioner svarer til deres modstykker i Excel, er der nogle vigtige forskelle:

  • DAX-dato-og klokkeslætsfunktioner bruger en DateTime-datatype.

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

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

Disse funktioner bruges ofte til at oprette brugerdefinerede datokolonner i en datotabel, så de er vigtige at forstå. Vi vil bruge en række af disse funktioner til at oprette kolonner for år, kvartal, FiscalMonth osv.

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

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

Der er mange andre DAX-funktioner, du kan bruge i dine formler. F. eks. bruger mange af de formler, der er beskrevet her, matematiske og trigonometriske funktioner som mod og Afkort, logiske funktioner som Hvisog tekst fungerer som format for flere oplysninger om andre DAX-funktioner, skal du se afsnittet flere ressourcer senere i denne artikel.

Formel eksempler for et kalenderår

Følgende eksempler beskriver formler, der bruges til at oprette ekstra kolonner i en datotabel med navnet kalender. Én kolonne, navngivet dato, findes allerede og indeholder et sammenhængende datointerval fra 1/1/2010 til 12/31/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

= MONTH ([dato])

I denne formel kan vi blot bruge funktionen måned til at returnere en måneds værdi fra kolonnen dato.

Kolonnen Måned

Kvartal

= INT (([måned] + 2)/3)

I denne formel bruger vi funktionen int 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 den derefter med 3 for at få vores kvartal, 1 til 4.

Kolonnen Kvartal

MånedsNavn

= FORMAT ([dato]; "mmmm")

Hvis du vil hente månedsnavnet i denne formel, skal du bruge funktionen format til at konvertere en numerisk værdi fra kolonnen dato til tekst. Vi angiver datokolonnen 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 du vil returnere det månedsnavn, der forkortes til tre bogstaver, skal du bruge "mmm" i argumentet format.

Ugedag

= FORMAT ([dato]; "DDD")

I denne formel bruger vi funktionen FORMAT til at hente dagens navn. Da du blot vil have et forkortet dags navn, skal du angive "DDD" i argumentet format.

Kolonnen Ugedag
Eksempel på pivottabel

Når du har felter for datoer som år, kvartal, måned osv., kan du bruge dem i en pivottabel eller rapport. Følgende billede viser for eksempel feltet Salgsbeløb fra tabellen salg i tabellen salg i værdier og år og kvartal fra tabellen kalender dimension i rækker. Salgsbeløb er samlet for år-og kvartals kontekst.

Eksempel på pivottabel

Formel eksempler for et regnskabsår

Regnskabsår

= Hvis ([måned] < = 6, [år], [år] + 1)

I dette eksempel begynder regnskabsåret den 1.

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 et kalenderår. For at få regnskabsåret skal vi først bruge en Hvis -funktion til at teste, om værdien for måned er mindre end eller lig med 6. Hvis værdien for måned er mindre end eller lig med 6 i det andet argument, returneres værdien fra kolonnen år. Hvis ikke, skal du returnere værdien fra år og tilføje 1.

Kolonnen Regnskabsår

En anden måde at angive en slut måneds værdi for et regnskabsår på er at oprette et mål, der blot angiver måneden. F. eks. FYE: = 6. Du kan derefter henvise til målingens navn i det ønskede månedsnummer. For eksempel = hvis ([måned] < = [FYE], [år], [år] + 1). Dette giver mere fleksibilitet, når du refererer til regnskabsårets slut måned i flere forskellige formler.

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, derefter tager 6 og tilføjer værdien fra måned, ellers Subtraher seks fra værdien fra [måned].

Kolonnen Regnskabsmåned

Regnskabskvartal

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

Den formel, vi bruger til FiscalQuarter, er meget lig det, der var for kvartalet i vores kalender år. Den eneste forskel er, at vi angiver [FiscalMonth] i stedet for [måned].

Kolonnen Regnskabskvartal

Helligdage eller Special datoer

Det kan være en god ide at medtage en datokolonne, der angiver, at bestemte datoer er helligdage eller en anden speciel dato. F. eks. vil du måske beregne salgstotaler for nye år, ved at føje et helligdags felt til en pivottabel, som et udsnitsværktøj eller et filter. I andre tilfælde vil du muligvis udelade disse datoer fra andre datokolonner eller i et mål.

Det er meget nemt at medtage 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 opslagsværdi til at returnere værdier.

Nedenfor er et eksempel på en tabel, der er oprettet i Excel, og som indeholder helligdage, der skal føjes til dato tabellen:

Dato

Helligdag

1/1/2010

Nye år

11/25/2010

Efterår

12/25/2010

Ånden

01-01-2011

Nye år

11/24/2011

Efterår

12/25/2011

Ånden

01-01-2012

Nye år

22-11-2012

Efterår

12/25/2012

Ånden

1/1/2013

Nye år

11/28/2013

Efterår

12/25/2013

Ånden

11/27/2014

Efterår

12/25/2014

Ånden

01-01-2014

Nye år

11/27/2014

Efterår

12/25/2014

Ånden

1/1/2015

Nye år

11/26/2014

Efterår

12/25/2015

Ånden

01-01-2016

Nye år

11/24/2016

Efterår

12/25/2016

Ånden

I tabellen dato opretter vi en kolonne med navnet ferie og bruger en formel som denne:

= OpSLAGsværdi (helligdage (helligdage), helligdage [dato], kalender [dato])

Lad os se på formlen mere omhyggeligt.

Vi bruger funktionen opSLAGsværdi til at hente værdier fra kolonnen ferie i tabellen ferier. I det første argument angiver vi den kolonne, hvor vores resultat værdi er. Vi angiver kolonnen ferie i tabellen ferie , fordi det er den værdi, der skal returneres.

= OpSLAGsværdi (helligdage (helligdage), helligdage [dato], kalender [dato])

Derefter skal du angive det andet argument, der er den søgekolonne, der indeholder de datoer, der skal søges efter. Vi angiver dato kolonnen i tabellen feriedage som denne:

= OpSLAGsværdi (helligdage (helligdage),helligdage [dato], kalender [dato])

Til sidst angiver vi den kolonne i tabellen kalender , der indeholder de datoer, der skal søges efter i tabellen ferie . Dette kursus er kolonnen dato i tabellen kalender .

= OpSLAGsværdi (helligdage (helligdage), helligdage [dato],Kalender [dato])

Kolonnen ferie returnerer hellig dagens navn for hver række, der indeholder en datoværdi, der svarer til en dato i tabellen med helligdage.

Tabellen Helligdag

Brugerdefineret kalender-13 4-uger

Nogle organisationer kan som detail-eller fødevare tjeneste ofte rapportere om forskellige perioder, såsom 13 4-ugers perioder. Med en 13 4-uges periode kalender er der hver periode på 28 dage. hver periode indeholder derfor fire mandag, fire Tuesdays, fire onsdag osv. Hver periode indeholder det samme antal dage, og helligdagene vil typisk falde inden for samme periode hvert år. Du kan vælge at starte en periode på en hvilken som helst ugedag. Ligesom med datoerne i en kalender eller et regnskabsår kan du bruge DAX til at oprette yderligere kolonner med brugerdefinerede datoer.

I eksemplerne nedenfor starter den første fulde 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 starter den første hele uge om søndag, så den første uge i det første regnskabsår i tabellen kalender starter reelt på 7/4/2010 og fortsætter med den sidste hele uge i kalender tabellen. Selvom denne værdi ikke er relevant i analyse, er det nødvendigt at beregne til brug i andre 28 dages periode formler.

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

Lad os se på formlen mere omhyggeligt.

Først skal vi oprette en formel, der returnerer værdier fra datokolonnen som et heltal som f. eks.:

= INT ([dato])

Vi vil derefter lede efter den første søndag i det første regnskabsår. Vi kan se, at det er 7/4/2010.

Kolonnen Uge

Nu skal du subtrahere 40356 (som er heltallet for 6/27/2010, den sidste søndag fra det forrige regnskabsår) fra den pågældende værdi for at få antallet af dage siden dagens startdato i tabellen kalender på følgende måde:

= INT ([dato]-40356)

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

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

Resultatet ser sådan ud:

Kolonnen Uge

Periode

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

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

Lad os se på formlen mere omhyggeligt.

Først skal vi oprette en formel, der returnerer en værdi fra kolonnen uge som et heltal, således:

=Int ([uge])

Føj derefter 3 til denne værdi, som denne:

= INT ([uge]+ 3)

Dividerer derefter resultatet med 4, som vist her:

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

Resultatet ser sådan ud:

Kolonnen periode

Periodens regnskabsår

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

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

Lad os se på formlen mere omhyggeligt.

Først skal vi oprette en formel, der returnerer en værdi fra periode og tilføjer 12:

= ([Periode] + 12)

Vi deler resultatet med 13, fordi der er 13 28 dage i regnskabsåret:

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

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

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

Endelig bruger du funktionen heltal til at fjerne enhver brøkdel af resultatet og returnere et helt tal, når de divideres med 13, som dette:

=Int(([period] + 12)/13)+2010

Resultatet ser sådan ud:

Kolonne Periode regnskabsår

Periode i regnskabsår

Denne værdi returnerer periodens nummer, 1 – 13, der starter med den første fulde periode (startende søndag) i hvert regnskabsår.

= Hvis (rest ([periode]; 13); rest ([periode]; 13); 13)

Denne formel er lidt mere kompleks, så vi vil beskrive den først på et sprog, som vi bedre forstår. Denne formel angiver, division værdien fra [punktum] med 13 for at få et periode nummer (1-13) i året. Hvis tallet er 0, returneres 13.

Først skal vi oprette en formel, der returnerer resten af værdien fra perioden 13. Vi kan bruge funktionerne rest (matematiske og trigonometriske funktioner) på følgende måde:

=Rest ([periode]; 13)

Dette giver os det resultat, vi ønsker, undtagen hvor værdien af perioden 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å tabellen kalenderdato. Vi kan gøre dette med en hvis-funktion. Hvis vores resultat er 0, returneres 13 som følger:

=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 Salgsbeløb fra tabellen salgs fakta i værdier og PeriodFiscalYear og PeriodInFiscalYear felter fra tabellen kalenderdato dimension i rækker. Salgsbeløb er aggregeret for konteksten efter regnskabsåret og den 28-dages periode i regnskabsåret.

Eksempel på pivottabel for regnskabsår

Relationer

Når du har oprettet en datotabel i din data model, skal du starte med at gennemse dine data i pivottabeller og rapporter og for at indsamle data baseret på kolonnerne i tabellen datodimension, skal du oprette en relation mellem faktatabellen med dine transaktions data og dato tabellen.

Da du har brug for at oprette en relation, der er baseret på datoer, skal du sikre dig, at du opretter relationen mellem kolonner, hvis værdier er af datatypen DateTime (Date).

For hver datoværdi i faktatabellen skal den relaterede opslagskolonne i tabellen dato indeholde tilsvarende værdier. F. eks. skal en række (transaktionspost) i tabellen salgs fakta med en værdi på 8/15/2012 12:00 AM i kolonnen DateKey have en tilsvarende værdi i kolonnen relateret dato i tabellen Date (navngivet kalender). Dette er en af de vigtigste årsager til, at datokolonnen i dato tabellen skal indeholde et sammenhængende datointerval, der omfatter en hvilken som helst dato i faktatabellen.

Relationer i diagramvisning

Bemærk!: Mens kolonnen dato i hver tabel skal have samme datatype (dato), er formatet for hver kolonne ikke noget..

Bemærk!: Hvis Power Pivot ikke gør det muligt at oprette relationer mellem de to tabeller, gemmer datofelterne muligvis ikke dato og klokkeslæt på samme præcisionsniveau. Afhængigt af kolonne formateringen kan værdierne Se ens ud, men gemmes anderledes. Læs mere om , hvordan du arbejder med tiden.

Bemærk!: Undgå at bruge heltals erstatnings nøgler i relationer. Når du importerer data fra en relations datakilde, repræsenteres kolonnerne for dato og klokkeslæt af en erstatnings nø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 dato-og klokkeslæts nøgler for heltal og i stedet bruge kolonner, der indeholder entydige værdier, med en datodata type. Selvom brugen af erstatnings nøgler betragtes som bedste fremgangsmåde i traditionelle data warehouses, er heltals nøglerne ikke nødvendige i Power Pivot, og det kan gøre det svært at gruppere værdier i pivottabeller med forskellige datoperioder.

Hvis du får en type uoverensstemmelsesfejl, når du forsøger at oprette en relation, skyldes det sandsynligvis, at kolonnen i faktatabellen ikke er af datatypen dato. Dette kan ske, når Power Pivot ikke automatisk kan konvertere en ikke-dato (som regel med en tekstdatatype) til en datodata type. Du kan stadig bruge kolonnen i faktatabellen, men du skal konvertere dataene med en DAX-formel i en ny beregnet kolonne. Se konvertering af datatype datoer for tekst til en datodata type senere i tillægget.

Flere relationer

I nogle tilfælde kan det være nødvendigt at oprette flere relationer eller oprette flere dato tabeller. Hvis der for eksempel er flere datofelter i tabellen salgs fakta, såsom DateKey, Forsendelsesdato og ReturnDate, kan de alle have relationer til datofeltet i tabellen kalenderdato, men kun én af dem kan være en aktiv relation. Hvis DateKey repræsenterer datoen for transaktionen, og derfor den vigtigste dato, fungerer det bedst 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]), er placeret i værdier, og regnskabsår-og FiscalQuarter-felter fra tabellen kalenderdato placeres i rækker.

Pivottabel med samlet salg efter regnskabskvartal Feltliste for pivottabel

Denne direkte fremstilling af pivottabeller fungerer korrekt, fordi vi vil beregne summen af det samlede salg efter transaktionsdatoen i DateKey. Vores samlede salgs måling anvender datoerne i DateKey og opsummeres efter regnskabsåret og regnskabs kvartalet, fordi der er en relation mellem DateKey i tabellen salg og kolonnen dato i tabellen kalenderdato.

InAktive relationer

Men hvad nu, hvis vi vil beregne det samlede salg, der ikke er en transaktionsdato, men efter Forsendelsesdato? Vi har brug for en relation mellem kolonnen Forsendelsesdato i tabellen salg og kolonnen dato i tabellen kalender. Hvis vi ikke opretter relationen, er vores sammenlægninger altid baseret på posteringsdatoen. Vi kan dog have flere relationer, selvom der kun er én, der kan være aktive, og fordi posteringsdatoen er den vigtigste, bliver den aktive relation til tabellen kalender.

I dette tilfælde har Forsendelsesdato en inaktiv relation, så alle de måleenheds formler, der oprettes til at aggregere data baseret på afsendelsesdatoer, skal angive den inaktive relation ved hjælp af funktionen USERELATIONSHIP .

F. eks. fordi der er en inaktiv relation mellem kolonnen Forsendelsesdato i tabellen salg og kolonnen dato i tabellen kalender, kan vi oprette et mål, der opsummerer samlet salg efter forsendelsesdato. Vi bruger en formel som denne til at angive den relation, der skal bruges:

Samlet salg efter AfsendelsesDato: = BEREGN (SUM (salg [salgsbeløb]), USERELATIONSHIP (salg [Forsendelsesdato], kalender [dato]))

Denne formel angiver ganske enkelt: Beregn en sum for salgsbeløb, men filtrerer ved hjælp af relationen mellem kolonnen Forsendelsesdato i tabellen salg og kolonnen dato i tabellen kalender.

Hvis vi nu opretter en pivottabel og placerer det samlede salg efter ForsendelsesDato målpunkt i værdier og regnskabsåret og regnskabs kvartalet på rækker, får vi vist samme hoved total, men alle andre beløb for regnskabsåret og regnskabs kvartalet er forskellige, fordi de er baseret på leveringsdatoen og ikke posteringsdatoen.

Pivottabel med samlet salg efter forsendelsesdato Feltliste for pivottabel

Ved hjælp af inaktive relationer kan du kun bruge én datotabel, men det kræver, at alle mål (som samlet salg efter AfsendelsesDato) henviser til den inaktive relation i sin formel. Der er et andet alternativ, der bruger flere dato tabeller.

Flere dato tabeller

En anden måde at arbejde med flere datokolonner i faktatabellen er at oprette flere dato tabeller og oprette separate aktive relationer mellem dem. Lad os se på eksemplet med salgs tabellen igen. Vi har tre kolonner med datoer, som vi kan bruge til at indsamle data om:

  • En DateKey med salgs datoen for hver transaktion.

  • En Forsendelsesdato – med dato og klokkeslæt for, hvornår de solgte varer blev leveret til kunden.

  • En ReturnDate – med dato og klokkeslæt for modtagelse af et eller flere returnerede elementer.

Husk, at feltet DateKey med transaktionsdatoen er vigtigst. Vi foretager de fleste af vores sammenlægninger, der er baseret på disse datoer, så vi bedst vil have et forhold mellem dem og kolonnen dato i tabellen kalender. Hvis vi ikke vil oprette inaktive relationer mellem Forsendelsesdato og ReturnDate, og det datofelt, der er angivet i tabellen kalender, og som kræver specielle mål-formler, kan vi oprette ekstra dato tabeller for afsendelsesdato og returdato. Vi kan derefter oprette aktive relationer mellem dem.

Relationer med flere datotabeller i diagramvisning

I dette eksempel har vi oprettet endnu en datotabel med navnet ShipCalendar. Det betyder selvfølgelig også, at du opretter yderligere datokolonner, og da disse datokolonner er i en anden datotabel, vil vi gerne navngive dem på den måde, der adskiller dem fra de samme kolonner i tabellen kalender. For eksempel har vi oprettet kolonner med navnet ShipYear, ShipMonth, ShipQuarter osv.

Hvis vi opretter vores pivottabel og anfører vores samlede salgs måling i værdier, og ShipFiscalYear og ShipFiscalQuarter på rækker, får vi vist de samme resultater, der blev vist, da vi oprettede en inaktiv relation og et særligt samlet salg efter AfsendelsesDato beregnet felt.

Pivottabel med forsendelseskalender over Samlet salg efter Forsendelsesdato Feltliste for pivottabel

Hver af disse fremgangsmåder kræver omhyggelig overvejelse. Når du bruger flere relationer med en enkelt datotabel, er du muligvis nødt til at oprette særlige mål, der afsejler inaktive relationer ved hjælp af funktionen USERELATIONSHIP. På den anden side kan det være forvirrende at oprette flere dato tabeller på en feltliste, og da du har flere tabeller i data modellen, skal du bruge mere hukommelse. Eksperimenter med det, der fungerer bedst for dig.

Egenskaben Datotabel

Egenskaben Datotabel angiver de metadata, der er nødvendige for tids Intelligence-funktioner som TOTALYTD, PREVIOUSMONTH og DATESBETWEEN, for at fungere korrekt. Når en beregning udføres ved hjælp af en af disse funktioner, ved hjælp af formel programmet Power Pivot, hvor du skal gå til for at få de nødvendige datoer.

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

Når du indstiller egenskaben Datotabel, skal du angive en datotabel og en datokolonne for datatypen Dato (DateTime).

Dialogboksen Markér som datotabel

Sådan gør du: angive egenskaben Datotabel

  1. Vælg tabellen kalender i PowerPivot-vinduet.

  2. Klik på Markér som Datotabelunder fanen design .

  3. I dialogboksen Markér som dato skal du vælge en kolonne med entydige værdier og datatypen dato.

Arbejde med tid

Alle datoværdier med en datodata type i Excel eller SQL Server er faktisk et tal. Tal, der er medtaget i det pågældende tal, refererer til et tidspunkt. I mange tilfælde er det tid for hver række, og hver række er midnat. Hvis et DateTimeKey-felt i en tabel med salgs fakta har værdier som 10/19/2010 12:00:00 AM, betyder det, at værdierne er for en præcision på dagen. Hvis der er en tid i DateTimeKey-feltværdierne, der er inkluderet i 10/19/2010 8:44:00, betyder det, at værdierne er til minut niveauet for nøjagtighed. Værdier kan også være til præcision på timer niveau eller på samme niveau som minut nøjagtighed. Præcisions niveauet i tidsværdien vil have stor betydning for, hvordan du opretter dato tabellen og relationerne mellem dem og faktatabellen.

Du skal finde ud af, om du vil aggregere dine data på en dag med præcision eller til et tidsniveau med præcision. Med andre ord kan det være en god ide at bruge kolonner i dato tabellen som morgen, eftermiddag eller time som tids datofelter i en pivottabels række-, kolonne-eller filtrerings områder.

Bemærk!: Dage er den mindste tidsenhed, som DAX-tidens intelligens-funktioner kan arbejde med. Hvis du ikke har brug for at arbejde med Tidsværdier, skal du reducere præcisionen af dine data for at bruge dage som minimum enhed.

Hvis du vil samle dine data til tids niveauet, skal din datotabel bruge en datokolonne med den tid, der er inkluderet. Faktisk skal det have en datokolonne med én række for hver time, eller måske endda hver 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 dato tabellen, skal du have tilsvarende værdier. Du kan forestille dig, at hvis du inkluderer mange år, kan dette gøres til en meget stor datotabel.

I de fleste tilfælde vil du kun indsamle data til dagen. Med andre ord skal du bruge kolonner som år, måned, uge eller ugedag som felter i en pivottabels række-, kolonne-eller filtrerings områder. I dette tilfælde skal kolonnen dato i tabellen dato kun indeholde én række for hver dag i et år, som vi har beskrevet tidligere.

Hvis datokolonnen indeholder et tidsniveau med præcision, men du kun vil aggregere for et dag-niveau, kan du oprette relationen mellem faktatabellen og dato tabellen ved at oprette en ny kolonne, der afkorter værdierne i dato c olumn til en dags værdi. Du kan med andre ord konvertere en værdi som 10/19/2010 8:44:00AM til 10/19/2010 12:00:00 am. Du kan derefter oprette relationen mellem denne nye kolonne og datokolonnen i dato tabellen, fordi værdierne stemmer overens.

Lad os se på et eksempel. Dette billede viser en DateTimeKey-kolonne i faktatabellen salg. Alle sammenlægninger for dataene i denne tabel skal kun være dags niveau ved hjælp af kolonner i tabellen kalenderdato som år, måned, kvartal osv. Den tid, der er inkluderet i værdien, er ikke relevant, kun den faktiske dato.

Kolonnen DateTimeKey

Da vi ikke har brug for at analysere disse data til tids niveauet, har vi ikke brug for kolonnen dato i tabellen kalenderdato for at medtage én række for hver time og hvert minut hver dag i hvert år. Det ser ud til, at kolonnen dato i tabellen dato 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 tabellen salgs fakta og bruge funktionen Afkort til at afkorte dato-og klokkeslætsværdien i DateTimeKey kolonne til en datoværdi, der svarer til værdierne i kolonnen dato i tabellen kalender. Formlen ser således ud:

= Afkort ([DateTimeKey]; 0)

Dette giver os en ny kolonne (vi har navn DateKey) med datoen fra kolonnen DateTimeKey og et klokkeslæt på 12:00:00 AM for hver række:

Kolonnen DateKey

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

På samme måde kan vi oprette en beregnet kolonne i tabellen salg, der reducerer tids præcisionen i kolonnen DateTimeKey til time niveauet for nøjagtighed. Hvis det er tilfældet, 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 til en time grad af præcision. Vi kan bruge en formel som denne:

= DATO (år ([DateTimeKey]), måned ([DateTimeKey]), dag ([DateTimeKey])) + tid (time ([DateTimeKey]), 0, 0)

Den nye kolonne ser således ud:

Kolonnen DateTimeKey

Hvis kolonnen dato i tabellen dato har værdier til time niveauet for nøjagtighed, kan vi oprette en relation mellem dem.

Gør datoer mere brugbare

Mange af de datokolonner, du opretter i dato tabellen, er nødvendige for andre felter, men det er ikke altid alt, hvad der kan være nyttigt i analyse. For eksempel er feltet DateKey i tabellen salg, som vi har henvist til, og som er vist i denne artikel, vigtig, fordi den pågældende transaktion registreres på en bestemt dato og et bestemt tidspunkt. Men fra et analyse-og rapporterings punkt i visningen er det ikke alle brugbare, fordi vi ikke kan bruge det som række-, kolonne-eller filterfelt i en Pivot tabel eller rapport.

På samme måde gælder det i vores eksempel, at kolonnen dato i tabellen kalender er meget nyttig, meget vigtig, men du kan ikke bruge den som en dimension i en pivottabel.

Hvis du vil beholde tabeller og kolonner i dem så nyttigt som muligt, og for at gøre det nemmere at navigere i pivottabel-eller Power View-rapportfelter vises, er det vigtigt at skjule unødvendige kolonner fra klientværktøjer. Du vil muligvis også skjule visse tabeller. Tabellen helligdage vises tidligere indeholder helligdags datoer, der er vigtige for bestemte kolonner i kalender tabellen, men du kan ikke bruge dato-og ferie kolonnerne i tabellen med helligdage som felter i en pivottabel. Hvis du igen vil gøre det nemmere at navigere på feltlister, kan du skjule tabellen hele helligdage.

Et andet vigtigt aspekt i at arbejde med datoer er navngivningskonventioner. Du kan navngive tabeller og kolonner i Power Pivot, uanset hvad du har lyst til. Men vær opmærksom, især hvis du vil dele din projektmappe med andre brugere, er det en god navngivningskonvention, der gør det nemmere at identificere tabeller og datoer, ikke kun i feltlister, men også i Power Pivot og i DAX-formler.

Når du har en datotabel i din data model, kan du begynde at oprette mål, der kan hjælpe dig med at få mest muligt ud af dine data. Nogle kan være så simple som at summere salgstotaler for det aktuelle år, og andre kan være mere komplekse, hvor du skal filtrere efter et bestemt interval af entydige datoer. Få mere at vide under foranstaltninger i Power Pivot og Time Intelligence-funktioner.

Appendiks

Konvertere tekstdata typen datoer til datatypen Dato

I nogle tilfælde kan en faktatabel med transaktionsdata indeholde datoer af datatypen tekst. Det vil være, en dato, der vises som 2012-12-04T11:47:09 er faktisk ikke en dato, eller i det mindste ikke typen af dato Power Pivot kan forstå. Det er meget enkelt tekst, der læses som en dato. Hvis du vil oprette en relation mellem en datokolonne i faktatabellen og en datokolonne i en datotabel, skal begge kolonner være af datatypen dato .

Når du forsøger at ændre datatypen for en kolonne af datoer, der er tekstdatatype til en datodata type, kan Power Pivot typisk fortolke datoerne og konvertere den til en sand dato-datatype automatisk. Hvis Power Pivot ikke kan foretage en datatypekonvertering, får du en type uoverensstemmelsesfejl.

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

I dette eksempel har vi importeret en faktatabel med navnet salg i Power Pivot. Den indeholder en kolonne med navnet DateTime. Værdier ser sådan ud:

DateTime-kolonne i en faktatabel.

Hvis vi ser på datatype under fanen Startside for formatering af gruppen 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 tabellen dato, da datatyperne ikke stemmer overens. Hvis vi forsøger at ændre datatypen til dato, får vi en type uoverensstemmelsesfejl:

Uoverensstemmelsesfejl

I dette tilfælde kunne Power Pivot ikke konvertere datatypen fra tekst til dato. Vi kan stadig bruge denne kolonne, men hvis du vil have den i en datatype, der er sand, skal du oprette en ny kolonne, der analyserer teksten og gendanner den i en værdi Power Pivot kan oprette en datodata type.

Husk fra sektionen arbejde med tid tidligere i denne artikel. medmindre det er nødvendigt, at din analyse er et tidsinterval med præcisions niveauet, skal du konvertere datoer i faktatabellen til en dag med præcision. Med det i tanke vil vi gerne have, at værdierne i den nye kolonne skal være på dagen i præcisionen (undtagen tid). Vi kan begge konvertere værdierne i kolonnen DateTime til en datodata type og fjerne tids niveauet for nøjagtigheden ved hjælp af 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 selv værdier, der skal være datoer og indstiller datatypen automatisk til dato.

Datokolonne i faktatabel

Hvis vi vil bevare tids niveauet for nøjagtigheden, udvider vi formlen for at medtage timer, minutter og sekunder.

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

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

Nu hvor vi har en datokolonne med 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 data analyse udtryk

DAX-ressource center

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×