Deze functie retourneert het jaar en weeknummer met een onderliggende numerieke waarde die overeenkomt met een tijdstempel van de eerste milliseconde van de eerste dag van de week die date bevat.
De functie weekname() bepaalt in welke week de datum valt en retourneert het weeknummer en het jaar van die week. De eerste dag van de week wordt bepaald door de systeemvariabeleFirstWeekDay. U kunt echter ook de eerste dag van de week wijzigen door het argument first_week_day in de functie weekname() te gebruiken.
In Qlik Sense worden de landinstellingen opgehaald wanneer de app wordt gemaakt en de bijbehorende instellingen worden als omgevingsvariabelen opgeslagen in het script.
Een Noord-Amerikaanse app-ontwikkelaar krijgt vaak Set BrokenWeeks=1; in het script, wat overeenkomt met gebroken weken. Een Europese app-ontwikkelaar krijgt vaak Set BrokenWeeks=0; in het script, wat overeenkomt met ongebroken weken.
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 echter 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 systeemvariabelen ReferenceDay en FirstWeekDay gebruikt.
Voorbeeld van de functie Weekname
Date
ISO-weeknaam
US-weeknaam
Za 2020 Dec 26
2020/52
2020/52
Zo 2020 Dec 27
2020/52
2020/53
Ma 2020 Dec 28
2020/53
2020/53
Di 2020 Dec 29
2020/53
2020/53
Wo 2020 Dec 30
2020/53
2020/53
Do 2020 Dec 31
2020/53
2020/53
Vr 2021 Jan 1
2020/53
2021/01
Za 2021 Jan 2
2020/53
2021/01
Zo 2021 Jan 3
2020/53
2021/02
Ma 2021 Jan 4
2021/01
2021/02
Di 2021 Jan 5
2021/01
2021/02
Wanneer gebruiken
De functie weekname() is handig als u aggregaties per week wilt vergelijken.
Bijvoorbeeld als u de totale verkoop van producten per week wilt zien. Gebruik weekname() in plaats van lunarweekname() om consistentie te behouden met de omgevingsvariabele BrokenWeeks in de toepassing. 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.
Retourgegevenstypen: dual
Argumenten
Argument
Beschrijving
timestamp
De te evalueren datum of tijdstempel.
period_no
shift is een geheel getal, waarbij de waarde 0 de week aangeeft die date bevat. Negatieve waarden in verschuiving geven voorgaande weken aan en positieve waarden geven volgende weken aan.
first_week_day
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 broken_weeks (gebroken weken) niet specificeert, dan wordt de waarde van variabele BrokenWeeks gebruikt om te definiëren of weken al dan niet gebroken zijn.
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
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. Ga voor meer informatie naar Regionale instellingen voor apps en scripts aanpassen.
Standaard landinstellingen van de app zijn gebaseerd op het gebruikersprofiel. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Cloud. Qlik Cloud wordt weergegeven in dezelfde taal als de browser die u gebruikt.
De onderstaande voorbeelden gaan uit van het volgende:
Set FirstWeekDay=0;
Set BrokenWeeks=0;
Set ReferenceDay=4;
Voorbeelden van functies
Voorbeeld
Resultaat
weekname('01/12/2013')
Retourneert 2013/02.
weekname('01/12/2013', -1)
Retourneert 2013/01.
weekname('01/12/2013', 0, 1)
Retourneert 2013/02.
Voorbeeld 1 – datum zonder aanvullende argumenten
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensverzameling met een set transacties voor de laatste week van 2021 en eerste twee weken van 2022 wordt geladen in een tabel met de naam 'Transactions'.
De systeemvariabele DateFormat die is ingesteld op de indeling MM/DD/YYYY.
De systeemvariabele BrokenWeeks die is ingesteld op 1.
De systeemvariabele FirstWeekDay die is ingesteld op 6.
Een voorgaande lading die het volgende bevat:
De functie weekday() die is ingesteld als het veld, 'week_number', dat het jaar- en weeknummer retourneert wanneer de transacties plaatsvonden.
De functie weekname() die is ingesteld als het veld met de naam 'week_day', om de weekdagwaarde van elke transactiedatum weer te geven.
Load-script
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day,
Weekname(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
2021/53
8184
12/28/2021
Di
2021/53
8185
12/29/2021
Wo
2021/53
8186
12/30/2021
Do
2021/53
8187
12/31/2021
Vr
2021/53
8188
01/01/2022
Za
2022/01
8189
01/02/2022
Zo
2022/02
8190
01/03/2022
Ma
2022/02
8191
01/04/2022
Di
2022/02
8192
01/05/2022
Wo
2022/02
8193
01/06/2022
Do
2022/02
8194
01/07/2022
Vr
2022/02
8195
01/08/2022
Za
2022/02
8196
01/09/2022
Zo
2022/03
8197
01/10/2022
Ma
2022/03
8198
01/11/2022
Di
2022/03
8199
01/12/2022
Wo
2022/03
8200
01/13/2022
Do
2022/03
8201
01/14/2022
Vr
2022/03
Het veld 'week_number' wordt gemaakt in de voorafgaande load-instructie met behulp van de functie weekname() en geeft het datumveld door als het argument van de functie.
De functie weekname() identificeert aanvankelijk in welke week de datumwaarde valt en retourneert het aantal weeknummers en het jaar waarin de transactie plaatsvindt.
De systeemvariabele FirstWeekDay stelt zondag in als de eerste dag van de week. De systeemvariabele BrokenWeeks stelt de toepassing in op het gebruik van gebroken weken, wat betekent dat week 1 op 1 januari begint.
Week 1 begint op 1 januari, wat een zaterdag is, en daarom retourneren transacties die op deze datum plaatsvinden de waarde 2022/01 (het jaar- en weeknummer).
Omdat de toepassing gebroken weken gebruikt en de eerste weekdag zondag is, retourneren transacties die plaatsvinden van 2 januari tot 8 januari de waarde 2022/02 (weeknummer 2 in 2022). Een voorbeeld hiervan is transactie 8192 die plaatsvond op 5 januari en de waarde 2022/02 retourneert voor het veld 'week_number'.
Voorbeeld 2 – period_no
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is het echter de taak om een veld te maken, 'previous_week_number', dat het jaar en het weeknummer retourneert voordat de transacties plaatsvonden.
Open de Editor voor laden van gegevens en voeg het volgende load-script toe aan een nieuw tabblad.
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
2021/52
8184
12/28/2021
Di
2021/52
8185
12/29/2021
Wo
2021/52
8186
12/30/2021
Do
2021/52
8187
12/31/2021
Vr
2021/52
8188
01/01/2022
Za
2021/52
8189
01/02/2022
Zo
2021/53
8190
01/03/2022
Ma
2021/53
8191
01/04/2022
Di
2021/53
8192
01/05/2022
Wo
2021/53
8193
01/06/2022
Do
2021/53
8194
01/07/2022
Vr
2021/53
8195
01/08/2022
Za
2022/01
8196
01/09/2022
Zo
2022/02
8197
01/10/2022
Ma
2022/02
8198
01/11/2022
Di
2022/02
8199
01/12/2022
Wo
2022/02
8200
01/13/2022
Do
2022/02
8201
01/14/2022
Vr
2022/02
Omdat een period_no van -1 werd gebruikt als het offset-argument in de functie weekname(), identificeert de functie eerst de week waarin de transacties plaatsvinden. Het kijkt dan een week eerder en identificeert de eerste milliseconde van die week.
Transactie 8192 vond plaats op 5 januari 2022. De functie weekname() kijkt een week eerder, 30 december 2021, en retourneert het weeknummer en het jaar voor die datum – 2021/53.
Voorbeeld 3 – first_week_day
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is het bedrijfsbeleid echter dat de werkweek op dinsdag begint.
Open de Editor voor laden van gegevens en voeg het volgende load-script toe aan een nieuw tabblad.
Load-script
SET BrokenWeeks=1;
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
weekday(date) as week_day,
weekname(date,0,1) 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
2021/52
8184
12/28/2021
Di
2021/53
8185
12/29/2021
Wo
2021/53
8186
12/30/2021
Do
2021/53
8187
12/31/2021
Vr
2021/53
8188
01/01/2022
Za
2022/01
8189
01/02/2022
Zo
2022/01
8190
01/03/2022
Ma
2022/01
8191
01/04/2022
Di
2022/02
8192
01/05/2022
Wo
2022/02
8193
01/06/2022
Do
2022/02
8194
01/07/2022
Vr
2022/02
8195
01/08/2022
Za
2022/02
8196
01/09/2022
Zo
2022/02
8197
01/10/2022
Ma
2022/02
8198
01/11/2022
Di
2022/03
8199
01/12/2022
Wo
2022/03
8200
01/13/2022
Do
2022/03
8201
01/14/2022
Vr
2022/03
Omdat het argument first_week_date van 1 wordt gebruikt in de functie weekname(), wordt dinsdag als eerste dag van de week gebruikt. De functie bepaalt dus dat week 53 van 2021 begint op dinsdag 28 december; en vanwege de toepassing met gebroken weken begint week 1 op 1 januari 2022 en eindigt op de laatste milliseconde van maandag 3 januari 2022.
Transactie 8192 vond plaats op 5 januari 2022. Daarom, met behulp van een parameter first_week_day van dinsdag, retourneert de functie weekname() de waarde 2022/02 voor het veld 'week_number'.
Voorbeeld 4 – diagramobjectvoorbeeld
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is de gegevensverzameling echter niet gewijzigd en wordt in de applicatie geladen. De berekening die het jaarnummer van de week retourneert maand waarin de transacties plaatsvonden is gemaakt als meting in een diagramobject van de toepassing.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
=week_day (date)
Maak de volgende meting om de start van de week waarin een transactie plaatsvindt te berekenen:
=weekname(date)
Resultatentabel
id
date
=weekday(date)
=weekname(date)
8183
12/27/2021
Ma
2021/53
8184
12/28/2021
Di
2021/53
8185
12/29/2021
Wo
2021/53
8186
12/30/2021
Do
2021/53
8187
12/31/2021
Vr
2021/53
8188
01/01/2022
Za
2022/01
8189
01/02/2022
Zo
2022/02
8190
01/03/2022
Ma
2022/02
8191
01/04/2022
Di
2022/02
8192
01/05/2022
Wo
2022/02
8193
01/06/2022
Do
2022/02
8194
01/07/2022
Vr
2022/02
8195
01/08/2022
Za
2022/02
8196
01/09/2022
Zo
2022/03
8197
01/10/2022
Ma
2022/03
8198
01/11/2022
Di
2022/03
8199
01/12/2022
Wo
2022/03
8200
01/13/2022
Do
2022/03
8201
01/14/2022
Vr
2022/03
Het veld ‘week_number’ wordt gemaakt als een meting in het diagramobject door de functie weekname() te gebruiken en het datumveld door te geven als het argument van de functie.
De functie weekname() identificeert aanvankelijk in welke week de datumwaarde valt en retourneert het aantal weeknummers en het jaar waarin de transactie plaatsvindt.
De systeemvariabele FirstWeekDay stelt zondag in als de eerste dag van de week. De systeemvariabele BrokenWeeks stelt de toepassing in op het gebruik van gebroken weken, wat betekent dat week 1 op 1 januari begint.
Omdat de toepassing gebroken weken gebruikt en de eerste weekdag zondag is, retourneren transacties die plaatsvinden van 2 januari tot 8 januari de waarde 2022/02, weeknummer 2 in 2022. Transactie 8192 vond plaats op 5 januari en de waarde retourneert 2022/02 voor het veld 'week_number'.
Voorbeeld 5 – 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 een tabel met de naam 'Transactions'.
De systeemvariabele BrokenWeeks die is ingesteld op 0.
De systeemvariabele ReferenceDay die is ingesteld op 2.
De systeemvariabele DateFormat die is ingesteld op de indeling MM/DD/YYYY.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel.
Maak een berekende dimensie met behulp van de volgende uitdrukking:
=weekname(date)
Maak de volgende aggregatiemeting om de totale verkoop te berekenen:
=sum(amount)
Stel de Getalnotatie van de meting in op Geld.
Resultatentabel
weekname(date)
=sum(amount)
2019/52
$125.69
2020/01
$346.51
2020/02
$347.57
2020/03
$122.01
Om de resultaten van het gebruik van de functie weekname() in dit scenario te demonstreren, voegt u het volgende veld toe als een dimensie:
date
Resultatentabel met datumveld
weekname(date)
date
=sum(amount)
2019/52
12/27/2019
$58.27
2019/52
12/28/2019
$67.42
2020/01
12/29/2019
$23.80
2020/01
12/30/2019
$82.06
2020/01
12/31/2019
$40.56
2020/01
01/01/2020
$37.23
2020/01
01/02/2020
$17.17
2020/01
01/03/2020
$88.27
2020/01
01/04/2020
$57.42
2020/02
01/05/2020
$53.80
2020/02
01/06/2020
$82.06
2020/02
01/07/2020
$40.56
2020/02
01/08/2020
$53.67
2020/02
01/09/2020
$26.63
2020/02
01/10/2020
$72.48
2020/02
01/11/2020
$18.37
2020/03
01/12/2020
$45.26
2020/03
01/13/2020
$58.23
2020/03
01/14/2020
$18.52
Omdat de toepassing ononderbroken weken gebruikt en week 1 minimaal twee dagen in januari vereist vanwege de systeemvariabele ReferenceDay, bevat week 1 van 2020 transacties vanaf 29 december 2019.
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!