Denna funktion räknar ut om indatatidsmarkören hamnar inom året för datumet då skriptet senast laddades och returnerar True om så är fallet, False om så inte är fallet.
I Qlik Sense, representeras det booleska sanna värdet av -1, och det falska värdet representeras av 0.
Om ingen av de valfria parametrarna används, omfattar definitionen alla datum inom ett kalenderår från den 1 januari t.o.m. datumet för senaste skriptexekvering.
Med andra ord används yeartodate()-funktionen, när den utlöses utan ytterligare parametrar, för att utvärdera en tidsmarkör och returnerar ett booleskt resultat baserat på huruvida datumet inträffade inom kalenderåret fram till och inklusive det datum då laddningen ägde rum.
Men det är också möjligt att ersätta årets startdatum med firstmonth-argumentet, och att göra jämförelser med föregående eller efterföljande år med yearoffset-argumentet.
Slutligen har yeartodate()-funktionen en parameter för att ställa in todaydate för historiska datauppsättningar. Den kommer då i stället att jämföra tidsmarkörer för kalenderåret fram till och med det datum som anges i todaydate-argumentet.
Argument
Argument
Beskrivning
timestamp
Tidsmarkören som ska utvärderas, exempelvis 2012-10-12.
yearoffset
Genom att ange en yearoffset, yeartodate returneras True för samma period ett annat år. Ett negativt värde på yearoffset indikerar ett tidigare år, ett positivt värde ett framtida år. Det senaste året uppnås genom att ange yearoffset = -1. Om det utelämnas, antas 0.
firstmonth
Genom att ange en firstmonth mellan 1 och 12 (1 om parametern utelämnas), kan årets början flyttas till första dagen på valfri månad. Om du exempelvis vill börja ett budgetår den 1 maj, sätter du firstmonth. Ett värde på 1 anger att budgetåret börjar 1 januari och ett värde på 12 anger att budgetåret börjar 1 december.
todaydate
Genom att ange todaydate (tidsmarkör för senaste skriptexekveringen om parametern utelämnas), kan du flytta dagen som används som periodens övre gräns.
Användning
Funktionen yeartodate() returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i ett if-uttryck. Detta returnerar en aggregering eller beräkning beroende på om det utvärderade datumet inträffade i året fram till och med det senaste laddningsdatumet för programmet.
Till exempel kan YearToDate()-funktionen användas för att identifiera all utrustning som har tillverkats hittills under det nuvarande året.
I följande exempel antas att senaste laddningstillfället är 2011-11-18.
Exempel på funktioner
Exempel
Resultat
yeartodate( '11/18/2010')
returnerar False
yeartodate( '02/01/2011')
returnerar True
yeartodate( '11/18/2011')
returnerar True
yeartodate( '11/19/2011')
returnerar False
yeartodate( '11/19/2011', 0, 1, '12/31/2011')
returnerar True
yeartodate( '11/18/2010', -1)
returnerar True
yeartodate( '11/18/2011', -1)
returnerar False
yeartodate( '04/30/2011', 0, 5)
returnerar False
yeartodate( '05/01/2011', 0, 5)
returnerar True
Lokala inställningar
Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/ÅÅÅÅ. Datumformatet anges i SET DateFormat-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel.
Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.
Exempel 1 – Grundläggande exempel
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller en uppsättning transaktioner mellan 2020 och 2022 som laddas i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
Ett fält year_to_date skapas som bestämmer vilka transaktioner som ägde rum samma kalenderår fram datumet för den senaste laddningen.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
year_to_date
Resultattabell
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
year_to_date-fältet skapades i den föregående load-satsen genom att använda yeartodate()-funktionen och skicka date-fältet som funktionens argument.
Eftersom inga ytterligare parametrar skickas till funktionenen identifierar yeartodate()-funktionen först laddningsdatumet och därmed gränserna för det aktuella kalenderåret (med början 1 januari) som returnerar ett booleskt resultat på TRUE.
Därför kommer alla transaktioner som sker mellan 1 januari och 26 april, laddningsdatumet, att returnera ett booleskt resultat som är TRUE. Alla transaktioner som inträffar innan 2022 börjar returnerar det booleska värdet FALSE.
Exempel 2 – yearoffset
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma datauppsättning och scenario som i det första exemplet.
Ett fält two_years_prior skapas, som bestämmer vilka transaktioner som ägde rum två hela år innan nuvarande kalenderår.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
two_years_prior
Resultattabell
date
two_years_prior
01/10/2020
-1
02/28/2020
-1
04/09/2020
-1
04/16/2020
-1
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
0
02/26/2022
0
03/07/2022
0
03/11/2022
0
Genom att använda -2 som yearoffset-argument i yeartodate()-funktionen skiftar funktionerna gränserna för segmentet i jämförelsekalenderåret med två hela år. Initialt motsvarar årssegmentet 1 januari till 26 april 2022. yearoffset-argumentet förskjuter sedan det här segmentet till två år tidigare. Datumgränserna kommer då att inträffa mellan 1 januari och 26 april 2020.
Därför kommer alla transaktioner som sker mellan 1 januari och 26 april 2020 returnera ett booleskt resultat som är TRUE. Alla transaktioner som inträffar före eller efter det här segmentet returnerar FALSE.
Exempel 3 – firstmonth
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma datauppsättning och scenario som i det första exemplet.
Ett fält year_to_date skapas som bestämmer vilka transaktioner som ägde rum samma kalenderår fram datumet för den senaste laddningen.
I det här exempel sätter vi budgetårets början till 1 juli.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
year_to_date
Resultattabell
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
-1
12/27/2021
-1
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Eftersom firstmonth-argumentet på 7 används i yeartodate()-funktionen, ställer den in årets första dag till 1 juli och årets sista dag till 30 juni.
Därför kommer alla transaktioner som sker mellan 1 juli och 26 april, laddningsdatumet, att returnera ett booleskt resultat som är TRUE. Alla transaktioner som inträffar före 1 juli 2021 returnerar det booleska värdet FALSE.
Exempel 4 – todaydate
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma datauppsättning och scenario som i det första exemplet.
Ett fält year_to_date skapas som bestämmer vilka transaktioner som ägde rum samma kalenderår fram datumet för den senaste laddningen.
Men i det här exemplet behöver vi identifiera alla transaktioner som ägde rum under kalenderåret fram till och med 1 mars 2022.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
year_to_date
Resultattabell
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
0
03/11/2022
0
Eftersom todaydate-argumentet 2022-03-01 används i yeartodate()-funktionen i det här fallet sätter den slutgränsen för det jämförande kalenderårssegmentet till 1 mars 2022. Det är mycket viktigt att firstmonth-parametern (mellan 1 och 12) tillhandahålls; i annat fall returnerar funktionen resultatet null.
Därför kommer alla transaktioner som sker mellan 1 januari 2022 och 1 mars 2022, todaydate-parametern, att returnera det booleska resultatet TRUE. Alla transaktioner som inträffar före 1 januari 2022 eller efter 1 mars 2022 returnerar det booleska värdet FALSE.
Exempel 5 – exempel på diagramobjekt
Översikt
Öppna skriptredigeraren och lägg till laddningsskriptet nedan i en ny flik.
Laddningsskriptet innehåller samma datauppsättning och scenario som i det första exemplet.
I det här exemplet har dock den oförändrade datauppsättningen skickats till programmet. Beräkningen som avgör vilka transaktioner som har skett under kalenderåret fram till datumet för den senaste laddningen skapas som ett mått i ett diagramobjekt i programmet.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: date.
Lägg till följande mått:
=yeartodate(date)
Resultattabell
date
=yeartodate(date)
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
year_to_date-måttet skapas i diagramobjektet genom att använda yeartodate()-funktionen och skicka date-fältet som funktionens argument.
Eftersom inga ytterligare parametrar skickas till funktionenen identifierar yeartodate()-funktionen först laddningsdatumet och därmed gränserna för det aktuella kalenderåret (med början 1 januari) som returnerar ett booleskt resultat på TRUE.
Alla transaktioner som sker mellan 1 januari och 26 april, laddningsdatumet, att returnera ett booleskt resultat som är TRUE. Alla transaktioner som inträffar innan 2022 börjar returnerar det booleska värdet FALSE.
Exempel 6 – scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner mellan år 2020 och 2022 som laddas i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
Användaren vill ha ett KPI-objekt som presenterar den totala försäljningen för motsvarande period under 2021 som aktuellt år och vid senaste laddningstiden.
Skapa följande aggregeringsmått för att beräkna total försäljning:
=sum(if(yeartodate(date,-1),amount,0))
Ange måttens Nummerformatering till Pengar.
Funktionen yeartodate() returnerar ett booleskt värde vid utvärdering av datum för varje transaktions-ID. Eftersom laddningen skedde 16 juni 2022 segmenterar yeartodate-funktionen årsperioden till mellan 2022-01-01 och 2022-06-16. Men eftersom ett period_no-värde på -1 användes i funktionen skiftas de här gränserna sedan till föregående år. Därför returnerar yeartodate()-funktionen ett booleskt värde på TRUE och summerar beloppet för alla transaktioner mellan 2021-01-01 och 2021-06-16.
Var den här sidan till hjälp för dig?
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!