Time Intelligence i PowerPivot i Excel

Gælder for
Excel til Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

DAX (Data Analysis Expressions) har 35 funktioner, der er specifikt beregnet til aggregering og sammenligning af data over tid. I modsætning til DAX's dato- og klokkeslætsfunktioner har tidsintelligensfunktioner ikke rigtig noget lignende i Excel. Dette skyldes, at tidsintelligente funktioner arbejder med data, der er i konstant forandring, afhængigt af den kontekst, du vælger i pivottabeller og Power View-visualiseringer.

Hvis du vil arbejde med tidsintelligente funktioner, skal du have en datotabel inkluderet i datamodellen. Datotabellen skal indeholde en kolonne med én række for hver dag i hvert år, der medtages i dine data. Denne kolonne betragtes som kolonnen Dato (selvom den kan navngives, hvad du vil). Mange tidsintelligente funktioner kræver datokolonnen for at kunne beregnes i henhold til de datoer, du vælger som felter i en rapport. Hvis du f.eks. har en måling, der beregner en ultimissionssaldo ved hjælp af funktionen LUKKEBALANCEKVTR, skal Power Pivot referere til datokolonnen i datotabellen for at vide, hvornår kvartalet starter og slutter, for at Power Pivot kan se, hvornår slutningen af kvartalet virkelig er. Du kan få mere at vide om datotabeller ved at se nærmere på Forstå og oprette datotabeller i Power Pivot i Excel.

Funktioner

Funktioner, der returnerer en enkelt dato

Funktioner i denne kategori returnerer en enkelt dato. Resultatet kan derefter bruges som argumenter i andre funktioner.

De første to funktioner i denne kategori returnerer den første eller sidste dato i Date_Column i den aktuelle kontekst. Dette kan være nyttigt, hvis du vil finde den første eller sidste dato, hvor du havde en transaktion af en bestemt type. Disse funktioner kræver kun ét argument, nemlig navnet på datokolonnen i din datotabel.

De næste to funktioner i denne kategori finder den første eller sidste dato (eller enhver anden kolonneværdi), hvor et udtryk har en værdi, der ikke er tom. Dette bruges oftest i situationer som lagerbeholdning, hvor du vil have den sidste lagerbeholdning, og du ikke ved, hvornår den sidste lagerbeholdning blev anvendt.

Yderligere seks funktioner, der returnerer en enkelt dato, er de funktioner, der returnerer den første eller sidste dato i en måned, et kvartal eller et år inden for den aktuelle kontekst af beregningen.

Funktioner, der returnerer en tabel med datoer

Der er seksten tidsintelligente funktioner, som returnerer en tabel med datoer. Disse funktioner bruges oftest som et SetFilter-argument til funktionen CALCULATE . Ligesom alle tidsintelligente funktioner i DAX bruger hver funktion en datokolonne som et af sine argumenter.

De første otte funktioner i denne kategori starter med en datokolonne i den aktuelle kontekst. Hvis du f.eks. bruger en måling i en pivottabel, kan der være en måned eller et år på enten kolonnenavnene eller rækkenavnene. Nettoeffekten er, at datokolonnen filtreres til kun at medtage datoerne i den aktuelle kontekst. Med udgangspunkt i den aktuelle kontekst beregner disse otte funktioner derefter den forrige (eller næste) dag, måned, kvartal eller år og returnerer disse datoer i form af en tabel med en enkelt kolonne. De "forrige" funktioner arbejder bagud fra den første dato i den aktuelle kontekst, og "næste"-funktionerne bevæger sig fremad fra den sidste dato i den aktuelle kontekst.

De næste fire funktioner i denne kategori ligner hinanden, men i stedet for at beregne en forrige (eller næste) periode beregner de sættet af datoer i perioden, der er "måned til dato" (eller kvartal til dato, år til dato eller i samme periode i det forrige år). Disse funktioner udfører alle deres beregninger ved hjælp af den sidste dato i den aktuelle kontekst. Bemærk, at SAMEPERIODLASTYEAR kræver, at den aktuelle kontekst indeholder et sammenhængende sæt datoer. Hvis den aktuelle kontekst ikke er et sammenhængende sæt datoer, returnerer SAMEPERIODLASTYEAR en fejl.

De sidste fire funktioner i denne kategori er lidt mere komplekse og også lidt mere effektive. Disse funktioner bruges til at skifte fra det sæt datoer, der er i den aktuelle kontekst, til et nyt sæt datoer.

  • DATEADD (Date_Column, Number_of_Intervals, interval)
  • DATESBETWEEN (Date_Column, Start_Date End_Date)
  • DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, interval)

DATESBETWEEN beregner sættet af datoer mellem den angivne startdato og slutdato. De resterende tre funktioner forskyder et antal tidsintervaller fra den aktuelle kontekst. Intervallet kan være dag, måned, kvartal eller år. Disse funktioner gør det nemt at ændre tidsintervallet for en beregning ved hjælp af følgende:

  • Gå to år tilbage
  • Gå en måned tilbage
  • Gå tre fjerdedele frem
  • Gå 14 dage tilbage
  • Gå 28 dage frem

I hvert enkelt tilfælde behøver du kun at angive, hvilket interval og hvor mange af disse intervaller, der skal skiftes. Et positivt interval bevæger sig frem i tiden, mens et negativt interval bevæger sig tilbage i tiden. Selve intervallet er angivet ved nøgleordet DAG, MÅNED, KVARTAL eller ÅR. Disse nøgleord er ikke strenge, så de bør ikke være i anførselstegn.

Funktioner, der evaluerer udtryk over en tidsperiode

Denne kategori af funktioner evaluerer et udtryk over en bestemt tidsperiode. Du kan opnå det samme med CALCULATE og andre time intelligence-funktioner. For eksempel

= TOTALMTD (Expression, Date_Column [, SetFilter])

er præcis det samme som:

= CALCULATE (Expression, DATESMTD (Date_Column)[, SetFilter])

Det er dog nemmere at bruge disse tidsintelligente funktioner, når de passer godt til det problem, der skal løses:

  • TOTALMTD (Udtryk, Date_Column [, SetFilter])
  • TOTALQTD (Udtryk, Date_Column [, SetFilter])
  • TOTALYTD (Udtryk, Date_Column [, SetFilter] [,YE_Date]) *

I denne kategori findes også en gruppe funktioner, der beregner primo- og ultimosaldi. Der er visse begreber, du skal forstå i forbindelse med disse særlige funktioner. For det første er primosaldoen for en hvilken som helst periode den samme som ultimosaldoen for den forrige periode. Ultimobalancen omfatter alle data frem til slutningen af perioden, mens primosaldoen ikke indeholder data fra den aktuelle periode.

Disse funktioner returnerer altid værdien af et udtryk, der evalueres på et bestemt tidspunkt. Det tidspunkt, der er vigtigt for os, er altid den sidst mulige datoværdi i en kalenderperiode. Primosaldoen er baseret på den sidste dato i den forrige periode, mens ultimosaldoen er baseret på den sidste dato i den aktuelle periode. Den aktuelle periode bestemmes altid af den sidste dato i konteksten for dags dato.

Yderligere ressourcer

Artikler: Forstå og oprette datotabeller i PowerPivot i Excel

Reference: DAX-funktionsreferencen på Office.com

Eksempler: Modellering og analyse af resultatdata med Microsoft PowerPivot i Excel