Denna funktion returnerar ett värde som motsvarar en tidsmarkör med den sista millisekunden av den sista dagen i det år som innehåller date. Det förvalda utdataformatet blir det DateFormat som har definierats i skriptet.
Med andra ord bestämmer yearend()-funktionen vilket år datumet infaller. Den returnerar sedan en tidsstämpel, i datumformat, för den sista millisekunden av det året. Årets första månad är som standard januari. Du kan dock ändra vilken månad som anges som första månaden genom att använda first_month_of_year-argumentet i yearend()-funktionen.
Anteckning om information yearend()-funktionen tar inte hänsyn till systemvariabeln FirstMonthOfYear. Året börjar den 1 januari om inte first_month_of_year-argumentet används för att ändra det.
Användning
yearend()-funktionen används som en del av ett uttryck när du vill att beräkningen ska använda den del av året som ännu inte har inträffat. Till exempel om du vill beräkna den totala ränta som ännu inte uppkommit under året.
Returnerad datatyp: dual
Argument
Argument
Beskrivning
date
Det datum eller den tidsmarkör som ska utvärderas.
period_no
period_no är ett heltal, där värdet 0 anger det år som innehåller date. Negativa värden i period_no anger föregående år och positiva värden anger efterföljande år.
first_month_of_year
Om du vill arbeta med (budget)år som inte börjar i januari kan du ange ett värde mellan 2 och 12 i first_month_of_year.
Du kan använda följande värden för att ställa in den första månaden på året i argumentet first_month_of_year:
first_month_of_year values
Månad
Värde
februari
2
mars
3
april
4
Maj
5
juni
6
juli
7
augusti
8
september
9
oktober
10
november
11
december
12
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 på funktioner
Exempel
Resultat
yearend('10/19/2001')
Returnerar 12/31/2001 23:59:59.
yearend('10/19/2001', -1)
Returnerar 12/31/2000 23:59:59.
yearend('10/19/2001', 0, 4)
Returnerar 03/31/2002 23:59:59.
Exempel 1 – inga ytterligare argument
Ö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 läses in i en tabell som heter Transactions.
Datumfältet har tillhandahållits i (MM/DD/YYYY)-formatet med systemvariabeln DateFormat.
En föregående LOAD-sats som innehåller följande:
yearend()-funktion som är inställd som year_end-fält.
Timestamp()-funktion som är inställd som year_end_timestamp-fält.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
year_end
year_end_timestamp
Resultattabell
id
date
year_end
year_end_timestamp
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
year_end-fältet skapades i den föregående load-satsen genom att använda yearend()-funktionen och skicka datumfältet som funktionens argument.
Funktionen yearend() identifierar initialt vilket år datumvärdet infaller och returnerar en tidsstämpel för den sista millisekunden av det året.
Transaktion 8199 ägde rum den 23 april 2021. yearend()-funktionen returnerar den sista millisekunden av det året, vilket är den 31 december kl 11:59:59 PM.
Exampel 2 – period_no
Översikt
Samma datauppsättning och scenario som det första exemplet används.
Men i det här exemplet är uppgiften att skapa ett fält, previous_year_end, som returnerar slutdatum och tidsstämpel för året innan det år då en transaktion ägde rum.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
previous_year_end
previous_ year_end_timestamp
Resultattabell
id
date
previous_year_end
previous_year_end_timestamp
8188
01/13/2020
12/31/2019
12/31/2019 11:59:59 PM
8189
02/26/2020
12/31/2019
12/31/2019 11:59:59 PM
8190
03/27/2020
12/31/2019
12/31/2019 11:59:59 PM
8191
04/16/2020
12/31/2019
12/31/2019 11:59:59 PM
8192
05/21/2020
12/31/2019
12/31/2019 11:59:59 PM
8193
08/14/2020
12/31/2019
12/31/2019 11:59:59 PM
8194
10/07/2020
12/31/2019
12/31/2019 11:59:59 PM
8195
12/05/2020
12/31/2019
12/31/2019 11:59:59 PM
8196
01/22/2021
12/31/2020
12/31/2020 11:59:59 PM
8197
02/03/2021
12/31/2020
12/31/2020 11:59:59 PM
8198
03/17/2021
12/31/2020
12/31/2020 11:59:59 PM
8199
04/23/2021
12/31/2020
12/31/2020 11:59:59 PM
8200
05/04/2021
12/31/2020
12/31/2020 11:59:59 PM
8201
06/30/2021
12/31/2020
12/31/2020 11:59:59 PM
8202
07/26/2021
12/31/2020
12/31/2020 11:59:59 PM
8203
12/27/2021
12/31/2020
12/31/2020 11:59:59 PM
8204
06/06/2022
12/31/2021
12/31/2021 11:59:59 PM
8205
07/18/2022
12/31/2021
12/31/2021 11:59:59 PM
8206
11/14/2022
12/31/2021
12/31/2021 11:59:59 PM
8207
12/12/2022
12/31/2021
12/31/2021 11:59:59 PM
Eftersom en period_no på -1 användes som förskjutningsargument i yearend()-funktionen så identifierar funktionen först året då transaktionerna äger rum. Den tittar sedan en vecka innan och identifierar den första millisekunden i den veckan.
Transaktion 8199 ägde rum den 23 april 2021. yearend()-funktionen returnerar den sista millisekunden av det året, vilket är den 31 december 2020, kl. 23:59:59 för previous_year_end-fältet
Exempel 3 – first_month_of_year
Översikt
Samma datauppsättning och scenario som det första exemplet används.
Men i det här exemplet är företagets policy att året ska börja den 1 april.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
year_end
year_end_timestamp
Resultattabell
id
date
year_end
year_end_timestamp
8188
01/13/2020
03/31/2020
3/31/2020 11:59:59 PM
8189
02/26/2020
03/31/2020
3/31/2020 11:59:59 PM
8190
03/27/2020
03/31/2020
3/31/2020 11:59:59 PM
8191
04/16/2020
03/31/2021
3/31/2021 11:59:59 PM
8192
05/21/2020
03/31/2021
3/31/2021 11:59:59 PM
8193
08/14/2020
03/31/2021
3/31/2021 11:59:59 PM
8194
10/07/2020
03/31/2021
3/31/2021 11:59:59 PM
8195
12/05/2020
03/31/2021
3/31/2021 11:59:59 PM
8196
01/22/2021
03/31/2021
3/31/2021 11:59:59 PM
8197
02/03/2021
03/31/2021
3/31/2021 11:59:59 PM
8198
03/17/2021
03/31/2021
3/31/2021 11:59:59 PM
8199
04/23/2021
03/31/2022
3/31/2022 11:59:59 PM
8200
05/04/2021
03/31/2022
3/31/2022 11:59:59 PM
8201
06/30/2021
03/31/2022
3/31/2022 11:59:59 PM
8202
07/26/2021
03/31/2022
3/31/2022 11:59:59 PM
8203
12/27/2021
03/31/2022
3/31/2022 11:59:59 PM
8204
06/06/2022
03/31/2023
3/31/2023 11:59:59 PM
8205
07/18/2022
03/31/2023
3/31/2023 11:59:59 PM
8206
11/14/2022
03/31/2023
3/31/2023 11:59:59 PM
8207
12/12/2022
03/31/2023
3/31/2023 11:59:59 PM
Eftersom first_month_of_year-argumentet för 4 används i yearend()-funktionen, ställer det in årets första dag till 1 april och årets sista dag till 31 mars.
Transaktion 8199 ägde rum den 23 april 2021. Eftersom yearend()-funktionen ställer in början av året till 1 april, returnerar den 31 mars 2022 som year_end-värdet för transaktionen.
Exampel 4 – Diagramobjektexempel
Översikt
Samma datauppsättning och scenario som det första exemplet används.
I det här exemplet är dock datauppsättningen oförändrad och har lästs in i programmet. Beräkningen som returnerar en tidsmarkör för slutdatum för året då en transaktionen ägde rum skapas som ett mått i ett diagramobjekt för programmet.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
För att beräkna vilket år en transaktion ägde rum skapar du följande mått:
=yearend(date)
=timestamp(yearend(date))
Resultattabell
id
date
=yearend(date)
=timestamp(yearend(date))
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
end_of_year-måttet skapades i ett diagramobjektet genom att använda yearend()-funktionen och skicka datumfältet som funktionens argument.
yearend()-funktionen identifierar initialt vilket år datumvärdet infaller och returnerar en tidsstämpel för den sista millisekunden av det året.
Transaktion 8199 ägde rum den 23 april 2021. yearend()-funktionen returnerar den sista millisekunden av det året, vilket är den 31 december kl 11:59:59 PM.
Exempel 5 – Scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning läses in i en tabell som heter Employee_Expenses. Tabellen innehåller följande fält:
Anställnings-ID
Namn för den anställde
genomsnittliga dagliga kostnadsanspråk för varje anställd
Slutanvändaren vill ha ett diagramobjekt som visar, efter anställnings-id och anställds namn, de beräknade kostnadsanspråken som fortfarande återstår för resten av året. Räkenskapsåret börjar i januari.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
employee_id
employee_name
För att beräkna kostnadsanspråken skapar du följande mått:
=(yearend(today(1))-today(1))*avg_daily_claim
Ange måttens Nummerformatering till Pengar.
Resultattabell
employee_id
employee_name
=(yearend(today(1))-today(1))*avg_daily_claim
182
Mark
$3240.00
183
Deryck
$2700.00
184
Dexter
$2700.00
185
Sydney
$5832.00
186
Agatha
$3888.00
Genom att använda dagens datum som enda argument returnerar yearend()-funktionen slutdatumet för det aktuella året. Sedan, genom att subtrahera dagens datum från årets slutdatum, returnerar uttrycket antalet dagar som återstår av detta år.
Detta värde multipliceras sedan med den genomsnittliga dagliga kostnadsanspråket från varje anställd för att beräkna det uppskattade värdet av anspråk som varje anställd förväntas göra under det återstående året.
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!