Det datum eller den tidsmarkör som ska utvärderas.
first_week_day
Anger dagen då veckan startar. Om utelämnat används värdet för variabeln FirstWeekDay.
De möjliga värdena first_week_day är 0 för måndag, 1 för tisdag, 2 för onsdag, 3 för torsdag, 4 för fredag, 5 för lördag och 6 för söndag.
Se FirstWeekDay för mer information om systemvariabeln.
broken_weeks
Om du inte anger broken_weeks används värdet för variabeln BrokenWeeks till att definiera om veckor är brutna eller inte.
Se BrokenWeeks för mer information om systemvariabeln
reference_day
Om du inte specificerar reference_day används värdet för variabeln ReferenceDay till att definiera vilken dag i januari som ska ställas in som referensdag för att definiera vecka 1. Qlik Sense-funktioner använder som standard 4 som referensdag. Det betyder att vecka 1 måste innehålla 4 januari, eller med andra ord, vecka 1 måste alltid bestå av minst 4 dagar i januari.
Se ReferenceDay för mer information om systemvariabeln
week()-funktionen bestämmer i vilken vecka datumet infaller och returnerar veckans nummer.
I Qlik Sense, hämtas de regionala inställningarna när appen skapas, och motsvarande inställningar lagras i skriptet som miljövariabler. Dessa används för att fastställa veckonumret.
Detta innebär att de flesta europeiska apputvecklare får följande miljövariabler, vilket motsvarar ISO 8601-definitionen:
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; // Use unbroken weeks
Set ReferenceDay =4; // Jan 4th is always in week 1
En nordamerikansk apputvecklare får ofta följande miljövariabler:
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; // Use broken weeks
Set ReferenceDay =1; // Jan 1st is always in week 1
Veckans första dag bestäms av systemvariabeln FirstWeekDay. Du kan även ändra den första veckodagen genom att använda argumentet first_week_day i week()-funktionen.
Om ditt program använder brutna veckor, börjar veckoräkningen den 1 januari och slutar dagen före systemvariabeln FirstWeekDay oavsett hur många dagar som har förlöpt.
Om ditt program använder obrutna veckor kan vecka 1 börja föregående år eller under de första dagarna i januari. Detta beror på hur du använder miljövariablerna FirstWeekDay och ReferenceDay.
Användning
Funktionen The week() är användbar när du vill jämföra sammanställningar efter veckor. Den kan till exempel användas om du vill se den totala försäljningen av produkter per vecka. week()-funktionen väljs före weekname() när användaren inte nödvändigtvis vill att beräkningen ska använda programmets systemvariabler BrokenWeeks, FirstWeekDay eller ReferenceDay.
Till exempel om du vill se den totala försäljningen av produkter per vecka.
Om programmet använder obrutna veckor kan vecka 1 innehålla datum från december föregående år eller exkludera datum i januari innevarande år. Om programmet använder brutna veckor kan vecka 1 innehålla färre än sju dagar.
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.
Exemplen nedan antar
Set DateFormat= 'MM/DD/YYYY';
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Exempel på funktioner
Exempel
Resultat
week('12/28/2021')
Returnerar 52.
week(44614)
Returnerar 8, eftersom detta är serienumret för 2022-02-22.
week('01/03/2021')
Returnerar 53.
week('01/03/2021',6)
Returnerar 1.
Exempel 1 – Standardsystemvariabler
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner för sista veckan år 2021 och de två första veckorna år 2022, som läses in i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
Ett fält week_number skapas som returnerar det år och veckonummer då transaktionen ägde rum.
Ett fält week_day skapas som visar veckodagsvärdet för varje transaktionsdatum.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2021,58.27
8184,12/28/2021,67.42
8185,12/29/2021,23.80
8186,12/30/2021,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
week_day
week_number
Resultattabell
id
date
week_day
week_number
8183
12/27/2021
mån
53
8184
12/28/2021
tis
53
8185
12/29/2021
ons
53
8186
12/30/2021
tors
53
8187
12/31/2021
fre
53
8188
01/01/2022
lör
1
8189
01/02/2022
sön
2
8190
01/03/2022
mån
2
8191
01/04/2022
tis
2
8192
01/05/2022
ons
2
8193
01/06/2022
tors
2
8194
01/07/2022
fre
2
8195
01/08/2022
lör
2
8196
01/09/2022
sön
3
8197
01/10/2022
mån
3
8198
01/11/2022
tis
3
8199
01/12/2022
ons
3
8200
01/13/2022
tors
3
8201
01/14/2022
fre
3
week_number-fältet skapades i den föregående load-satsen genom att använda week()-funktionen och skicka date-fältet som funktionens argument.
Inga andra parametrar skickas till funktoinen och därför gäller följande standardvariabler som påverkar week()-funktionen:
BrokenWeeks: Veckoräkningen börjar 1 januari
FirstWeekDay: Veckans första dag är söndag
Eftersom programmet använder standardsystemvariabeln BrokenWeeks börjar vecka 1 den 1 januari, en lördag.
På grund av standardsystemvariabeln FirstWeekDay börjar veckorna på en söndag. Den första söndagen efter 1 januari inträffar 2 januari. Därför börjar vecka 2 då.
Exempel 2 – first_week_day
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Ett fält week_number skapas som returnerar det år och veckonummer då transaktionen ägde rum.
Ett fält week_day skapas som visar veckodagsvärdet för varje transaktionsdatum.
I det här exemplet vill vi ställa in att arbetsveckan börjar på tisdagar.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
week_day
week_number
Resultattabell
id
date
week_day
week_number
8183
12/27/2021
mån
52
8184
12/28/2021
tis
53
8185
12/29/2021
ons
53
8186
12/30/2021
tors
53
8187
12/31/2021
fre
53
8188
01/01/2022
lör
1
8189
01/02/2022
sön
1
8190
01/03/2022
mån
1
8191
01/04/2022
tis
2
8192
01/05/2022
ons
2
8193
01/06/2022
tors
2
8194
01/07/2022
fre
2
8195
01/08/2022
lör
2
8196
01/09/2022
sön
2
8197
01/10/2022
mån
2
8198
01/11/2022
tis
3
8199
01/12/2022
ons
3
8200
01/13/2022
tors
3
8201
01/14/2022
fre
3
Programmet använder fortfarande brutna veckor. Men argumentet first_week_day har ställts in till 1 i week()-funktionen. Detta ställer in veckans första dag till en tisdag.
Programmet använder standardsystemvariabeln BrokenWeeks, så vecka 1 börjar 1 januari, en lördag.
first_week_day-argumentet week()-funktionen ställer in veckans första dag till en tisdag. Därför börjar vecka 53 den 28 december 2021.
Men eftersom funktionen fortfarande använder brutna veckor kommer vecka 1 bara att vara två dagar lång, eftersom den första tisdagen efter 1 januari inträffar 3 januari.
Exempel 3 – unbroken_weeks
Ö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 använder vi obrutna veckor.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,6,0) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
week_day
week_number
Resultattabell
id
date
week_day
week_number
8183
12/27/2021
mån
52
8184
12/28/2021
tis
52
8185
12/29/2021
ons
52
8186
12/30/2021
tors
52
8187
12/31/2021
fre
52
8188
01/01/2022
lör
52
8189
01/02/2022
sön
1
8190
01/03/2022
mån
1
8191
01/04/2022
tis
1
8192
01/05/2022
ons
1
8193
01/06/2022
tors
1
8194
01/07/2022
fre
1
8195
01/08/2022
lör
1
8196
01/09/2022
sön
2
8197
01/10/2022
mån
2
8198
01/11/2022
tis
2
8199
01/12/2022
ons
2
8200
01/13/2022
tors
2
8201
01/14/2022
fre
2
Parametern first_week_date sätts till 1, vilket innebär att tisdag blir första dagen i veckan. Parametern broken_weeks sätts till 0, vilket tvingar funktionen att använda obrutna veckor. Slutligen sätter den tredje parametern reference_day till 2.
Parametern first_week_date sätts till 6, vilket innebär att söndag blir första dagen i veckan. Parametern broken_weeks sätts till 0, vilket tvingar funktionen att använda obrutna veckor.
Eftersom obrutna veckor används börjar inte vecka 1 nödvändigtvis 1 januari, men den måste i stället ha minst fyra dagar. I datauppsättningen slutar vecka 52 därför på lördag 1 januari 2022. Vecka 1 börjar sedan vid systemvariabeln FirstWeekDay, som är söndag 2 januari. Den här veckan slutar följande lördag, 8 januari.
Exempel 4 – reference_day
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma datauppsättning och scenario som i det tredje exemplet.
Ett fält week_number skapas som returnerar det år och veckonummer då transaktionen ägde rum.
Ett fält week_day skapas som visar veckodagsvärdet för varje transaktionsdatum.
Dessutom måste följande villkor vara uppfyllda:
Arbetsveckan börjar på en tisdag.
Företaget använder obrutna veckor.
reference_day-värdet är2. Med andra ord kommer det minsta möjliga antalet dagar i januari i vecka 1 vara 2.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
Transactions:
Load
*,
WeekDay(date) as week_day,
Week(date,1,0,2) as week_number
;
Load
*
Inline
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,82.06
8187,12/31/2021,40.56
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.56
8195,01/08/2022,53.67
8196,01/09/2022,26.63
8197,01/10/2022,72.48
8198,01/11/2022,18.37
8199,01/12/2022,45.26
8200,01/13/2022,58.23
8201,01/14/2022,18.52
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
week_day
week_number
Resultattabell
id
date
week_day
week_number
8183
12/27/2021
mån
52
8184
12/28/2021
tis
1
8185
12/29/2021
ons
1
8186
12/30/2021
tors
1
8187
12/31/2021
fre
1
8188
01/01/2022
lör
1
8189
01/02/2022
sön
1
8190
01/03/2022
mån
1
8191
01/04/2022
tis
2
8192
01/05/2022
ons
2
8193
01/06/2022
tors
2
8194
01/07/2022
fre
2
8195
01/08/2022
lör
2
8196
01/09/2022
sön
2
8197
01/10/2022
mån
2
8198
01/11/2022
tis
3
8199
01/12/2022
ons
3
8200
01/13/2022
tors
3
8201
01/14/2022
fre
3
Parametern first_week_date sätts till 1, vilket innebär att tisdag blir första dagen i veckan. Parametern broken_weeks sätts till 0, vilket tvingar funktionen att använda obrutna veckor. Slutligen sätter den tredje parametern reference_day-parametern till 2.
Eftersom funktionen använder obrutna veckor och ett reference_day-värde på 2 som parameter behöver det bara ingå två dagar i januari i vecka 1. Eftersom den första dagen i veckan är tisdag börjar vecka 1 den 28 december 2021 och slutar måndag 3 januari 2022.
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 returnerar veckonumret skapas som ett mått i ett diagramobjekt.
Skapa ett mått, week_day som visar veckodagsvärdet vör varje transaktionsdatum:
=weekday(date)
Resultattabell
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
mån
8184
12/28/2021
53
tis
8185
12/29/2021
53
ons
8186
12/30/2021
53
tors
8187
12/31/2021
53
fre
8188
01/01/2022
1
lör
8189
01/02/2022
2
sön
8190
01/03/2022
2
mån
8191
01/04/2022
2
tis
8192
01/05/2022
2
ons
8193
01/06/2022
2
tors
8194
01/07/2022
2
fre
8195
01/08/2022
2
lör
8196
01/09/2022
3
sön
8197
01/10/2022
3
mån
8198
01/11/2022
3
tis
8199
01/12/2022
3
ons
8200
01/13/2022
3
tors
8201
01/14/2022
3
fre
week_number-fältet skapades i den föregående load-satsen genom att användaweek() -funktionen och skicka date-fältet som funktionens argument.
Inga andra parametrar skickas till funktoinen och därför gäller följande standardvariabler som påverkar week()-funktionen:
BrokenWeeks: Veckoräkningen börjar 1 januari
FirstWeekDay: Veckans första dag är söndag
Eftersom programmet använder standardsystemvariabeln BrokenWeeks börjar vecka 1 den 1 januari, en lördag.
På grund av standardsystemvariabeln FirstWeekDay börjar veckorna på en söndag. Den första söndagen efter 1 januari inträffar 2 januari. Därför börjar vecka 2 då.
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 för sista veckan år 2019 och de två första veckorna år 2020 som läses in i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
Programmet använder främst brutna veckor i sin instrumentpanel. Slutanvändaren vill emellertid ha ett diagramobjekt som visar den totala försäljningen per vecka med obrutna veckor. Referensdagen ska vara 2 januari, med veckans början på tisdag. Detta kan uppnås även när denna dimension inte är tillgänglig i datamodellen, med hjälp av week()-funktionen som en beräknad dimension i diagrammet.
Välj sorteringsmenyn och ta bort anpassad sortering för den beräknade dimensionen.
Avmarkera alternativen Sortera numeriskt och Sortera alfabetiskt.
Resultattabell
week(date)
sum(amount)
52
$125.69
53
$146.42
1
$200.09
2
$347.57
3
$122.01
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!