Oprette en datotabel
Under oprettelse af rapporter Power BI er et almindeligt forretningskrav at foretage beregninger baseret på dato og klokkeslæt. Organisationer vil vide, hvordan deres forretning klarer sig over måneder, kvartaler, regnskabsår osv. Derfor er det vigtigt, at disse tidsorienteret værdi formateres korrekt. Power BI autodetects for datokolonner og -tabeller. Der kan dog forekomme situationer, hvor du skal gøre ekstra for at hente datoerne i det format, organisationen kræver.
Antag f.eks., at du udvikler rapporter til salgsteamet i organisationen. Databasen indeholder tabeller for salg, ordrer, produkter med mere. Du bemærker, at mange af disse tabeller, herunder Salg og ordrer, indeholder deres egne datokolonner, som det fremgår af kolonnerne ShipDate og OrderDate i tabellerne Salgsordrer og Ordrer. Det er din opgave at udvikle en tabel over de samlede salgsordrer efter år og måned. Hvordan kan du opbygge en visual med flere tabeller, der hver refererer til deres egne datokolonner?
For at løse dette problem kan du oprette en fælles datotabel, der kan bruges af flere tabeller. I følgende afsnit forklares det, hvordan du udfører denne opgave Power BI.
Oprette en fælles datotabel
Du kan opbygge en fælles datotabel på følgende måder:
Kildedata
DAX
Power Query
Kildedata
I enkelte tilfælde har kildedatabaser og datalagersteder allerede deres egne datotabeller. Hvis den administrator, der har designet databasen, har gennemført et grundigt job, kan disse tabeller bruges til at udføre følgende opgaver:
Identifikation af firmaferier
Separat kalender og regnskabsår
Identificer weekender vs. ugedage
Kildedatatabeller er modne og klar til omgående brug. Hvis du har en tabel som sådan, skal du tage den med i din semantiske model og ikke bruge andre metoder, der beskrives i dette afsnit. Det anbefales, at du bruger en kildedatotabel, da den sandsynligvis deles med andre værktøjer, som du bruger sammen med Power BI.
Hvis du ikke har en kildedatatabel, kan du bygge en fælles datotabel på andre måder.
DAX
Du kan bruge DAX-funktionerne KALENDERAUTO() eller KALENDER() til at opbygge din fælles datotabel. Funktionen KALENDER() returnerer et sammenhængende datointerval baseret på en start- og slutdato, der er angivet som argumenter i funktionen. Alternativt returnerer funktionen CALENDARAUTO() et sammenhængende, komplet datointerval, der automatisk bestemmes ud fra din semantiske model. Startdatoen vælges som den tidligste dato, der findes i din semantiske model, og slutdatoen er den seneste dato, der findes i din semantiske model plus data, der er udfyldt i den regnskabsmåned, du kan vælge at medtage som et argumenter i funktionen KALENDERAUTO(). I dette eksempel bruges funktionen KALENDER(), fordi du kun vil have vist data fra 31. maj 2011 (den første dag, hvor Salg begyndte at spore disse data) og fremad for de næste 10 år.
I Power BI Desktop skal du vælge Ny tabel og derefter angive den i følgende DAX-formel:
Dates = CALENDAR(DATE(2011, 5, 31), DATE(2022, 12, 31))
Du har nu en kolonne med datoer, du kan bruge. Men denne kolonne er dog lidt anderledes. Du vil også have vist kolonnerne for kun året, månedsnummeret, ugen i året og ugedagen. Du kan udføre denne opgave ved at vælge Ny kolonne på båndet og indtaste følgende DAX-ligning, der henter året fra datotabellen.
Year = YEAR(Dates[Date])
Du kan udføre samme proces for at hente månedsnummer, ugenummer og dag i ugen:
MonthNum = MONTH(Dates[Date])
WeekNum = WEEKNUM(Dates[Date])
DayoftheWeek = FORMAT(Dates[Date], "DDDD")
Når du er færdig, indeholder tabellen de kolonner, der er vist i følgende figur.
Du har nu oprettet en fælles datotabel ved hjælp af DAX. I denne proces føjes den nye tabel kun til den semantiske model. du vil stadig have brug for at etablere relationer mellem datotabellen og tabellerne Salg og Ordre, og derefter markere tabellen som den officielle datotabel i din semantiske model. Før du udfører disse opgaver, skal du dog overveje en anden måde at opbygge en fælles datotabel på: ved hjælp af denne metode Power Query.
Power Query
Du kan bruge M-sprog, som er det udviklingssprog, der bruges til at opstille forespørgsler i Power Query, til at definere en fælles datotabel.
Vælg Transformer data i Power BI Desktop, som du bliver direkte til Power Query. Højreklik på det tomme område i ruden Forespørgsler i venstre rude for at åbne følgende rullemenu, hvor du skal vælge Ny > tom forespørgsel.
I den nye forespørgselsvisning , der fås som resultat, skal du angive følgende M-formel for at oprette en kalendertabel:
= List.Dates(#date(2011,05,31), 365*10, #duration(1,0,0,0))
Når det kommer til salgsdataene, skal startdatoen afspejle den tidligste dato, du har i dataene: 31. maj 2011. Derudover ønsker du at få vist datoer for de næste 10 år, herunder datoer i fremtiden. Denne indfaldsvinkel sikrer, at du – efterhånden som nye salgsdata flyder ind – ikke behøver oprette denne tabel igen. Du kan også ændre varigheden. I dette tilfælde skal du bruge et datapunkt for hver dag, men du kan også øges med timer, minutter og sekunder. I følgende figur vises resultatet.
Når du har realiseret, at processen er lykkedes, bemærker du, at du har en liste over datoer i stedet for en tabel over datoer. Du kan rette denne fejl ved at gå til fanen Transformering på båndet og vælge Konverter til tabel > . Som navnet foreslår, konverterer denne funktion listen til en tabel. Du kan også omdøbe kolonnen til DateCol.
Derefter skal du føje kolonner til den nye tabel for at få vist datoer i form af år, måned, uge og dag, så du kan opbygge et hierarki i det visuelle udtryk. Din første opgave består i at ændre kolonnetype ved at vælge ikonet ud for navnet på kolonnen og vælge datotypen i den resulterende rullemenu.
Når du er færdig med at vælge datotype , kan du tilføje kolonner for år, måneder, uger og dage. Gå til Tilføj kolonne, vælg rullemenuen under Dato, og vælg derefter År som vist i følgende figur.
Bemærk, Power BI at der er tilføjet en kolonne over alle år, som er trukket fra DateCol.
Udfør den samme proces for måneder, uger og dage. Når du er færdig med denne proces, indeholder tabellen de kolonner, der er vist i følgende figur.
Nu har du brugt til Power Query at opbygge en fælles datotabel.
De foregående trin viser, hvordan tabellen kommer ind i den semantiske model. Nu skal du markere Power BI tabellen som den officielle datotabel, så du kan genkende den for alle fremtidige værdier og sikre, at formateringen er korrekt.
Markeres som den officielle datotabel
Den første opgave ved afmærkning af tabellen som den officielle datotabel er at finde den nye tabel i ruden Felter. Højreklik på navnet på tabellen, og vælg derefter Markér som datotabel som vist i følgende figur.
Når du markerer tabellen som en datotabel, Power BI udføres valideringer for at sikre, at data indeholder null-værdier på nul, er entydige og indeholder fortløbende datoværdier for en periode. Du kan også vælge bestemte kolonner i tabellen, der skal markeres som datoen, hvilket kan være nyttigt, når du har mange kolonner i tabellen. Højreklik på tabellen, vælg Marker som datotabel, og vælg derefter indstillinger for datotabel. Følgende vindue vises, hvor du kan vælge, hvilken kolonne der skal markeres som Dato.
Hvis du vælger Markér som datotabel , fjernes automatisk genererede hierarkier fra feltet Dato i den tabel, du har markeret som en datotabel. I forbindelse med andre datofelter findes det automatiske hierarki stadig, indtil du får vist en relation mellem dette felt og datotabellen, eller indtil du deaktiverer funktionen Auto-dato/- klokkeslæt. Du kan manuelt føje et hierarki til den fælles datotabel ved at højreklikke på kolonnerne for år, måned, uge eller dag i ruden Felter og derefter vælge Nyt hierarki. Denne proces beskrives yderligere senere i dette modul.
Opbyg din grafik
Hvis du vil opbygge grafik mellem tabellerne Salg og Ordrer, skal du oprette en relation mellem denne nye fælles datotabel og tabellerne Salgsordrer og Ordrer. Som følge heraf kan du opbygge visuelle elementer ved hjælp af den nye datotabel. Du kan udføre denne opgave > ved at gå til fanen Administrer relationer for model, hvor du kan oprette relationer mellem den fælles datotabel og tabellerne Ordrer og Salg ved hjælp af kolonnen OrderDate. Følgende skærmbillede viser et eksempel på en sådan relation.
Når du har opbygget relationerne, kan du visualisere det samlede salg og ordreantal med den almindelige datotabel, du har udviklet vha. DAX eller metoden Power Query .
Når du skal fastlægge det samlede salg, skal du tilføje alle salg, fordi kolonnen Beløb i salgstabellen kun kigger på omsætningen for hvert salg og ikke på den samlede salgsindtomsætning. Du kan fuldføre denne opgave ved at bruge følgende beregning af målepunkt, som forklares i senere diskussioner. Den beregning, du skal bruge, når du bygger dette målepunkt, er følgende:
#Total Sales = SUM(Sales[‘Amount’])
Når du er færdig, kan du oprette en tabel ved at vende tilbage til fanen Visualiseringer og vælge tabel visualisering . Du vil have vist totalordrer og salg efter år og måned, så du vil kun medtage kolonnerne År og Måned fra datotabellen, kolonnen OrderQty og #TotalSales måling. Når du får mere at vide om hierarkier, kan du også opbygge et hierarki, der giver Detailudledning fra år til måneder. I dette eksempel kan du få dem vist side om side. Du har nu oprettet en visual med en fælles datotabel.