Geeft de dag op waarop de week begint. Bij weglating wordt de waarde van de variabele FirstWeekDay gebruikt.
De mogelijke first_week_day-waarden zijn 0 voor maandag, 1 voor dinsdag, 2 voor woensdag, 3 voor donderdag, 4 voor vrijdag, 5 voor zaterdag en 6 voor zondag.
Zie FirstWeekDay voor meer informatie over de systeemvariabele.
broken_weeks
Als u niet broken_weeks opgeeft, wordt de waarde van de variabele BrokenWeeks gebruikt om te definiëren of weken worden opgesplitst of niet.
Zie BrokenWeeks voor meer informatie over de systeemvariabele
reference_day
Als u reference_day (referentiedag) niet specificeert, dan wordt de waarde van variabele ReferenceDay gebruikt om te definiëren welke dag in januari wordt ingesteld als referentiedag om week 1 te definiëren. Standaard wordt in Qlik Sense-functies 4 gebruikt als de referentiedag. Dit betekent dat week 1 4 januari moet bevatten of, anders gezegd, dat week 1 altijd ten minste 4 dagen in januari moet hebben.
Zie ReferenceDay voor meer informatie over de systeemvariabele
De functie week() bepaalt in welke week de datum valt en retourneert het weeknummer.
In Qlik Sense worden de landinstellingen opgehaald wanneer de app wordt gemaakt en de bijbehorende instellingen worden als omgevingsvariabelen opgeslagen in het script. Deze worden gebruikt om het weeknummer te bepalen.
Dit betekent dat de meeste Europese app-ontwikkelaars de volgende omgevingsvariabelen krijgen, in overeenstemming met de definitie van ISO 8601:
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; // Use unbroken weeks
Set ReferenceDay =4; // Jan 4th is always in week 1
Een Noord-Amerikaanse app-ontwikkelaar krijgt meestal de volgende omgevingsvariabelen:
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; // Use broken weeks
Set ReferenceDay =1; // Jan 1st is always in week 1
De eerste dag van de week wordt bepaald door de systeemvariabele FirstWeekDay. U kunt ook de eerste dag van de week wijzigen door het argument first_week_day in de functie week() te gebruiken.
Als uw applicatie gebroken weken gebruikt, dan begint het weeknummer op 1 januari en eindigt op de dag voorafgaand aan de systeemvariabele FirstWeekDay, ongeacht hoeveel dagen er zijn verstreken.
Als uw toepassing ononderbroken weken gebruikt, kan week 1 in het voorgaande jaar of in de eerste paar dagen van januari beginnen. Dit hangt af van hoe u de omgevingsvariabelen FirstWeekDay en ReferenceDay gebruikt.
Wanneer gebruiken
De The week()-functie is handig als u aggregaties per week wilt vergelijken. Hij kan bijvoorbeeld worden gebruikt om de totale verkoop van producten per week te bekijken. De week()-functie wordt verkozen boven weekname() wanneer de gebruiker wil dat de berekening niet per se de systeemvariabelen BrokenWeeks, FirstWeekDay of ReferenceDay gebruikt.
Bijvoorbeeld als u de totale verkoop van producten per week wilt zien.
Als de toepassing ononderbroken weken gebruikt, kan week 1 datums van december van het voorgaande jaar bevatten of datums in januari van het lopende jaar uitsluiten. Als de toepassing gebruikmaakt van gebroken weken, kan week 1 minder dan zeven dagen bevatten.
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
De onderstaande voorbeelden gaan uit van het volgende:
Set DateFormat= 'MM/DD/YYYY';
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Voorbeelden van functies
Voorbeeld
Resultaat
week('12/28/2021')
Retourneert 52.
week(44614)
Retourneert 8, aangezien dit het serienummer is voor 02/22/2022.
week('01/03/2021')
Retourneert 53.
week('01/03/2021',6)
Retourneert 1.
Voorbeeld 1 – Standaardsysteemvariabelen
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een set transacties voor de laatste week van 2021 en de eerste twee weken van 2022 wordt geladen in de tabel Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Het veld week_number wordt gemaakt en retourneert het jaar- en weeknummer waarin de transacties plaatsvonden.
Het veld week_day wordt gemaakt om de weekdagwaarde van iedere transactiedatum weer te geven.
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
week_day
week_number
Resultatentabel
id
date
week_day
week_number
8183
12/27/2021
Ma
53
8184
12/28/2021
Di
53
8185
12/29/2021
Wo
53
8186
12/30/2021
Do
53
8187
12/31/2021
Vr
53
8188
01/01/2022
Za
1
8189
01/02/2022
Zo
2
8190
01/03/2022
Ma
2
8191
01/04/2022
Di
2
8192
01/05/2022
Wo
2
8193
01/06/2022
Do
2
8194
01/07/2022
Vr
2
8195
01/08/2022
Za
2
8196
01/09/2022
Zo
3
8197
01/10/2022
Ma
3
8198
01/11/2022
Di
3
8199
01/12/2022
Wo
3
8200
01/13/2022
Do
3
8201
01/14/2022
Vr
3
Het veld week_number wordt gemaakt in de voorafgaande load-instructie met behulp van de functie week() en geeft het veld date door als het argument van de functie.
Er worden geen andere parameters doorgegeven in de functie en daarom zijn de volgende standaardvariabelen die invloed hebben op de week()-functie van kracht:
BrokenWeeks: De weeknummering begint op 1 januari
FirstWeekDay: De eerste dag van de week is zondag
Omdat de applicatie de standaardsysteemvariabele BrokenWeeks gebruikt, begint week 1 op 1 januari, een zaterdag.
Vanwege de standaardsysteemvariabele FirstWeekDay begint de week op een zondag. De eerste zondag na 1 januari valt op 2 januari en daarom begint week 2 op 2 januari.
Voorbeeld 2 – first_week_day
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Het veld week_number wordt gemaakt en retourneert het jaar- en weeknummer waarin de transacties plaatsvonden.
Het veld week_day wordt gemaakt om de weekdagwaarde van iedere transactiedatum weer te geven.
In dit voorbeeld willen we het begin van de werkweek instellen op dinsdag.
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
week_day
week_number
Resultatentabel
id
date
week_day
week_number
8183
12/27/2021
Ma
52
8184
12/28/2021
Di
53
8185
12/29/2021
Wo
53
8186
12/30/2021
Do
53
8187
12/31/2021
Vr
53
8188
01/01/2022
Za
1
8189
01/02/2022
Zo
1
8190
01/03/2022
Ma
1
8191
01/04/2022
Di
2
8192
01/05/2022
Wo
2
8193
01/06/2022
Do
2
8194
01/07/2022
Vr
2
8195
01/08/2022
Za
2
8196
01/09/2022
Zo
2
8197
01/10/2022
Ma
2
8198
01/11/2022
Di
3
8199
01/12/2022
Wo
3
8200
01/13/2022
Do
3
8201
01/14/2022
Vr
3
De applicatie past nog steeds opgesplitste weken toe. Maar het first_week_day-argument is in de week()-functie ingesteld op 1. Hierdoor wordt de eerste dag van de week ingesteld op dinsdag.
De applicatie gebruikt de standaardsysteemvariabele BrokenWeeks en daarom begint week 1 op 1 januari, een zaterdag.
Het first_week_day-argument van de week()-functie stelt de eerste weekdag in op een dinsdag. Daarom begint week 53 op 28 december 2021.
Maar omdat de functie nog steeds opgesplitste weken toepast, duurt week 1 slechts twee dagen omdat de eerste dinsdag na 1 januari op 3 januari valt.
Voorbeeld 3 – unbroken_weeks
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat dezelfde gegevensset en scenario als het eerste voorbeeld.
In dit voorbeeld gebruiken we niet-opgesplitste weken.
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
week_day
week_number
Resultatentabel
id
date
week_day
week_number
8183
12/27/2021
Ma
52
8184
12/28/2021
Di
52
8185
12/29/2021
Wo
52
8186
12/30/2021
Do
52
8187
12/31/2021
Vr
52
8188
01/01/2022
Za
52
8189
01/02/2022
Zo
1
8190
01/03/2022
Ma
1
8191
01/04/2022
Di
1
8192
01/05/2022
Wo
1
8193
01/06/2022
Do
1
8194
01/07/2022
Vr
1
8195
01/08/2022
Za
1
8196
01/09/2022
Zo
2
8197
01/10/2022
Ma
2
8198
01/11/2022
Di
2
8199
01/12/2022
Wo
2
8200
01/13/2022
Do
2
8201
01/14/2022
Vr
2
De parameter first_week_date is ingesteld op 1, waardoor dinsdag de eerste dag van de week is. De parameter broken_weeks is ingesteld op 0 waardoor de functie wordt gedwongen niet-opgesplitste weken toe te passen. De derde parameter stelt de reference_day in op 2.
De parameter first_week_date is ingesteld op 6, waardoor zondag de eerste dag van de week is. De parameter broken_weeks is ingesteld op 0 waardoor de functie wordt gedwongen niet-opgesplitste weken toe te passen.
Door niet-opgesplitste weken te gebruiken, begint week 1 niet noodzakelijkerwijs op 1 januari. In plaats daarvan moet de week ten minste vier dagen bevatten. Daarom eindigt week 52 in de gegevensset op een zaterdag, 1 januari 2022. Week 1 begint vervolgens op de FirstWeekDay-systeemvariabele. Dit is zaterdag 2 januari. Deze week eindigt op de volgende zaterdag, 8 januari.
Voorbeeld 4 – reference_day
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde gegevensset en het scenario uit het derde voorbeeld.
Het veld week_number wordt gemaakt en retourneert het jaar- en weeknummer waarin de transacties plaatsvonden.
Het veld week_day wordt gemaakt om de weekdagwaarde van iedere transactiedatum weer te geven.
Daarnaast moet worden voldaan aan de volgende voorwaarden:
De werkweek begint op een dinsdag.
Het bedrijf gebruikt niet-opgesplitste weken.
De reference_day-waarde is 2. Met andere woorden: het minimumaantal dagen in januari in week 1, wordt 2.
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
week_day
week_number
Resultatentabel
id
date
week_day
week_number
8183
12/27/2021
Ma
52
8184
12/28/2021
Di
1
8185
12/29/2021
Wo
1
8186
12/30/2021
Do
1
8187
12/31/2021
Vr
1
8188
01/01/2022
Za
1
8189
01/02/2022
Zo
1
8190
01/03/2022
Ma
1
8191
01/04/2022
Di
2
8192
01/05/2022
Wo
2
8193
01/06/2022
Do
2
8194
01/07/2022
Vr
2
8195
01/08/2022
Za
2
8196
01/09/2022
Zo
2
8197
01/10/2022
Ma
2
8198
01/11/2022
Di
3
8199
01/12/2022
Wo
3
8200
01/13/2022
Do
3
8201
01/14/2022
Vr
3
De first_week_date-parameter is ingesteld op 1, waardoor dinsdag de eerste dag van de week is. De broken_weeks -parameter is ingesteld op 0 waardoor de functie wordt gedwongen niet-opgesplitste weken toe te passen. De derde parameter stelt de reference_day-parameter in op 2.
Met de functie met niet-opgesplitste weken en een reference_day-waarde van 2 als een parameter, hoeft week 1 slechts twee dagen in januari te bevatten. Omdat de eerste dag van de week dinsdag is, begint week 1 op 28 december 2021 en eindigt hij op maandag 3 januari 2022.
Voorbeeld 5 – Diagramobjectvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat dezelfde gegevensset en scenario als het eerste voorbeeld.
In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die het weeknummer retourneert, wordt gemaakt als een meting in een diagramobject.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel.
Voeg de volgende velden als dimensies toe:
id
date
Maak nu de volgende meting:
=week (date)
Maak een , week_day-meting om de weekdagwaarde per transactiedatum weer te geven:
=weekday(date)
Resultatentabel
id
date
=week(date)
=weekday(date)
8183
12/27/2021
53
Ma
8184
12/28/2021
53
Di
8185
12/29/2021
53
Wo
8186
12/30/2021
53
Do
8187
12/31/2021
53
Vr
8188
01/01/2022
1
Za
8189
01/02/2022
2
Zo
8190
01/03/2022
2
Ma
8191
01/04/2022
2
Di
8192
01/05/2022
2
Wo
8193
01/06/2022
2
Do
8194
01/07/2022
2
Vr
8195
01/08/2022
2
Za
8196
01/09/2022
3
Zo
8197
01/10/2022
3
Ma
8198
01/11/2022
3
Di
8199
01/12/2022
3
Wo
8200
01/13/2022
3
Do
8201
01/14/2022
3
Vr
Het veld week_number wordt gemaakt in de voorafgaande load-instructie met behulp van de functie week() en geeft het veld date door als het argument van de functie.
Er worden geen andere parameters doorgegeven in de functie en daarom zijn de volgende standaardvariabelen die invloed hebben op de week()-functie van kracht:
BrokenWeeks: De weeknummering begint op 1 januari
FirstWeekDay: De eerste dag van de week is zondag
Omdat de applicatie de standaardsysteemvariabele BrokenWeeks gebruikt, begint week 1 op 1 januari, een zaterdag.
Vanwege de standaardsysteemvariabele FirstWeekDay begint de week op een zondag. De eerste zondag na 1 januari valt op 2 januari en daarom begint week 2 op 2 januari.
Voorbeeld 6 – Scenario
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een set transacties voor de laatste week van 2019 en eerste twee weken van 2020 wordt geladen in de tabel Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
De applicatie gebruikt voornamelijk opgesplitste weken op het dashboard. Maar de eindgebruiker wil een diagramobject dat de totale verkoop per week weergeeft met niet-opgesplitste weken. De referentiedag moet 2 januari zijn en de weken moeten beginnen op een dinsdag. Dit kan zelfs worden bereikt als deze dimensie niet beschikbaar is in het gegevensmodel, door de functie week() te gebruiken als een berekende dimensie in het diagram.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel.
Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:
=week(date)
Maak nu de volgende aggregatiemeting:
=sum(amount)
Stel de Getalnotatie van de meting in op Geld.
Selecteer het menu Sorteren en verwijder Aangepaste sortering voor de berekende dimensie.
Hef de selecties Numeriek sorteren en Alfabetisch sorteren op.
Resultatentabel
week(date)
sum(amount)
52
$125.69
53
$146.42
1
$200.09
2
$347.57
3
$122.01
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!