Time Intelligence i PowerPivot i Excel

Gäller för
Excel för Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

DAX (Data Analysis Expressions) har 35 funktioner specifikt för att aggregera och jämföra data över tid. Till skillnad från datum- och tidsfunktionerna i DAX har tidsinformationsfunktionerna egentligen inget liknande i Excel. Det beror på att tidsinformationsfunktionerna arbetar med data som ständigt förändras, beroende på vilket sammanhang du väljer i pivottabeller och Power View-visualiseringar.

För att kunna arbeta med tidsinformationsfunktioner måste du inkludera en datumtabell i datamodellen. Datumtabellen måste innehålla en kolumn med en rad för varje dag under varje år som ingår i dina data. Den här kolumnen anses vara datumkolumnen (även om den kan heta vad du vill). Många tidsinformationsfunktioner kräver datumkolumnen för att beräkningar ska kunna utföras enligt de datum som du väljer som fält i en rapport. Om du till exempel har ett mått som beräknar ett utgående kvartalsslut med funktionen SLUTBALANSKVTR måste det referera till datumkolumnen i datumtabellen för att veta när kvartalet börjar och slutar för att Power Pivot ska veta när kvartalsslutet verkligen infaller. Om du vill veta mer om datumtabeller kan du läsa Förstå och skapa datumtabeller i Power Pivot i Excel.

Funktioner

Funktioner som returnerar ett enstaka datum

Funktioner i den här kategorin returnerar ett enstaka datum. Resultatet kan sedan användas som argument till andra funktioner.

De två första funktionerna i den här kategorin returnerar det första eller sista datumet i Date_Column i det aktuella sammanhanget. Det kan vara användbart när du vill hitta det första eller senaste datum då en viss typ av transaktion genomfördes. De här funktionerna tar bara ett argument, namnet på datumkolumnen i datumtabellen.

De följande två funktionerna i den här kategorin hittar det första eller sista datumet (eller något annat kolumnvärde) där ett uttryck har ett värde som inte är tomt. Detta används oftast i situationer som inventering, där du vill få det senaste inventeringsbeloppet och du inte vet när den senaste inventeringen gjordes.

Ytterligare sex funktioner som returnerar ett enda datum är de funktioner som returnerar det första eller sista datumet i en månad, ett kvartal eller ett år inom den aktuella kontexten för beräkningen.

Funktioner som returnerar en tabell med datum

Det finns sexton tidsinformationsfunktioner som returnerar en tabell med datum. De här funktionerna används oftast som ett SetFilter-argument till funktionen CALCULATE . Precis som alla tidsinformationsfunktioner i DAX använder varje funktion en datumkolumn som ett av sina argument.

De första åtta funktionerna i den här kategorin börjar med en datumkolumn i en aktuell kontext. Om du till exempel använder ett mått i en pivottabell kan det finnas en månad eller ett år på antingen kolumnetiketterna eller radetiketterna. Nettoeffekten är att datumkolumnen filtreras så att endast datumen för den aktuella kontexten visas. Om vi utgår från den aktuella kontexten beräknar de här åtta funktionerna sedan föregående (eller nästa) dag, månad, kvartal eller år och returnerar dessa datum i form av en tabell med en enda kolumn. Funktionerna "föregående" arbetar bakåt från det första datumet i det aktuella sammanhanget och funktionerna "nästa" flyttar framåt från det sista datumet i det aktuella sammanhanget.

De följande fyra funktionerna i den här kategorin liknar varandra, men i stället för att beräkna en föregående (eller nästa) period beräknar de en uppsättning datum i perioden som infaller "månad för datum" (eller hittills i kvartalet, eller hittills i år, eller under samma period föregående år). Alla dessa funktioner utför sina beräkningar med hjälp av det senaste datumet i det aktuella sammanhanget. Observera att SAMEPERIODLASTYEAR kräver att den aktuella kontexten innehåller en sammanhängande uppsättning datum. Om den aktuella kontexten inte är en sammanhängande uppsättning datum returnerar SAMEPERIODLASTYEAR ett fel.

De fyra sista funktionerna i den här kategorin är lite mer komplexa och även lite mer kraftfulla. De här funktionerna används för att växla från den uppsättning datum som finns i det aktuella sammanhanget till en ny uppsättning datum.

  • DATEADD (Date_Column, Number_of_Intervals, intervall)
  • DATUMMELLAN (Date_Column, Start_Date, End_Date)
  • DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, intervall)

DATESBETWEEN beräknar uppsättningen med datum mellan det angivna start- och slutdatumet. De återstående tre funktionerna flyttar ett visst antal tidsintervall från det aktuella sammanhanget. Intervallet kan vara dag, månad, kvartal eller år. De här funktionerna gör det enkelt att flytta tidsintervallet för en beräkning med något av följande:

  • Gå tillbaka två år
  • Gå tillbaka en månad
  • Gå framåt tre fjärdedelar
  • Gå tillbaka 14 dagar
  • Spola framåt 28 dagar

I varje enskilt fall behöver du bara ange vilket intervall och hur många av intervallen som ska skiftas. Ett positivt intervall flyttas framåt i tiden, medan ett negativt intervall flyttas bakåt i tiden. Själva intervallet anges med nyckelordet DAG, MÅNAD, KVARTAL eller ÅR. Dessa nyckelord är inte strängar och ska därför inte vara inom citattecken.

Funktioner som utvärderar uttryck över en tidsperiod

Den här funktionskategorin utvärderar ett uttryck över en angiven tidsperiod. Du kan åstadkomma samma sak med CALCULATE och andra tidsinformationsfunktioner. Exempel:

= TOTALMTD (Uttryck, Date_Column [, SetFilter])

är exakt samma som:

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

Det är dock enklare att använda dessa tidsinformationsfunktioner när de passar det problem som behöver lösas:

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

I den här kategorin finns också en grupp funktioner som beräknar ingående och utgående balanser. Det finns vissa begrepp du bör förstå med dessa specifika funktioner. För det första, som du kanske tycker självklart, är den ingående balansen för en period densamma som den utgående balansen för den föregående perioden. Den utgående balansen inkluderar alla data till och med slutet av perioden, medan den ingående balansen inte inkluderar några data från den aktuella perioden.

De här funktionerna returnerar alltid värdet för ett uttryck som utvärderats för en viss tidpunkt. Den tidpunkt som är viktig är alltid det senast möjliga datumvärdet i en kalenderperiod. Den ingående balansen baseras på det sista datumet i föregående period, medan den utgående balansen baseras på det sista datumet i den aktuella perioden. Den aktuella perioden bestäms alltid av det sista datumet i kontexten för aktuellt datum.

Ytterligare resurser

Artiklar: Förstå och skapa datumtabeller i PowerPivot i Excel

Referens: Funktionsreferens för DAX på Office.com

Exempel: Modellering och analys av vinst- och förlustdata med Microsoft PowerPivot i Excel