Deze functie retourneert het jaar waarbij het weeknummer hoort conform ISO 8601. Het weeknummer varieert van 1 tot ongeveer 52.
Syntaxis:
weekyear(expression)
Retourgegevenstypen: geheel getal
De weekyear()-functie bepaalt welke week van een jaar de datum in valt. Hij retourneert vervolgens het jaar dat bij dat weeknummer hoort.
Qlik-apps maken standaard gebruik van opgesplitste weken (gedefinieerd door de systeemvariabele BrokenWeeks) en weeknummer 1 begint op 1 januari en het jaar eindigt na week 52. Daarom retourneert de weekyear()-functie altijd dezelfde waarde als de week()-functie wanneer de applicatie opgesplitste weken gebruikt.
Maar als de BrokenWeeks-systeemvariabele is ingesteld op gebruik van niet-opgesplitste weken, mag week 1 alleen een bepaald aantal dagen in januari omvatten op basis van de waarde die is gespecificeerd in de ReferenceDay-systeemvariabele.
Als bijvoorbeeld een ReferenceDay-waarde van 4 wordt gebruikt, moet week 1 ten minste vier dagen in januari omvatten. Het is mogelijk dat week 1 datums in december van het voorgaande jaar bevat of dat het laatste weeknummer van een jaar datums in januari van het volgende jaar bevat. In situaties zoals deze, retourneert de weekyear()-functie een andere waarde dan de year()-functie.
Wanneer gebruiken
De weekyear()-functie is handig als u aggregaties per jaar wilt vergelijken. Bijvoorbeeld als u de totale verkoop van producten per jaar wilt zien. De weekyear()-functie wordt verkozen boven de year()-functie wanneer de gebruiker consistent wil blijven met de BrokenWeeks-systeemvariabele in de app.
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.
Voorbeelden van functies
Voorbeeld
Resultaat
weekyear('12/30/1996')
Retourneert 1997, omdat week 1 van 1997 begint op 12/30/1996
weekyear('01/02/1997')
retourneert 1997
weekyear('12/28/1997')
retourneert 1997
weekyear('12/30/1997')
Retourneert 1998, omdat week 1 van 1998 begint op 12/29/1997
weekyear('01/02/1999')
Retourneert 1998, omdat week 53 van 1998 eindigt op 01/03/1999
Retourneert een geheel getal dat het jaar representeert als de uitdrukking wordt geïnterpreteerd als een datum volgens de standaardinterpretatie van getallen.
Voorbeeld 1 - Opgesplitste weken
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 2020 en de eerste week van 2021 wordt geladen in de tabel Transactions.
De variabele BrokenWeeks is ingesteld op 1.
Een voorgaande lading die het volgende bevat:
De weekyear()-functie die is ingesteld als het veld, week_year, dat het jaar retourneert waarin de transacties hebben plaatsgevonden.
De week()-functie, ingesteld als het veld week, dat het weeknummer toont van elke transactiedatum.
Load-script
SET BrokenWeeks=1;
Transactions:
Load
*,
week(date) as week,
weekyear(date) as week_year
;
Load
*
Inline
[
id,date,amount
8176,12/28/2020,19.42
8177,12/29/2020,23.80
8178,12/30/2020,82.06
8179,12/31/2020,40.56
8180,01/01/2021,37.23
8181,01/02/2021,17.17
8182,01/03/2021,88.27
8183,01/04/2021,57.42
8184,01/05/2021,67.42
8185,01/06/2021,23.80
8186,01/07/2021,82.06
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
week
week_year
Resultatentabel
id
date
week
week_year
8176
12/28/2020
53
2020
8177
12/29/2020
53
2020
8178
12/30/2020
53
2020
8179
12/31/2020
53
2020
8180
01/01/2021
1
2021
8181
01/02/2021
1
2021
8182
01/03/2021
2
2021
8183
01/04/2021
2
2021
8184
01/05/2021
2
2021
8185
01/06/2021
2
2021
8186
01/07/2021
2
2021
Het veld week_year wordt gemaakt in de voorafgaande load-instructie met behulp van de functie weekyear() en geeft het datumveld door als het argument van de functie.
De systeemvariabele BrokenWeeks is ingesteld op 1 wat inhoudt dat de app opgesplitste weken gebruikt. Week 1 begint op 1 januari.
Transactie 8181 vindt plaats op 2 januari. Deze datum valt in week 1. Daarom wordt de waarde 2021 geretourneerd voor het veld week_year.
Voorbeeld 2 - Niet-opgesplitste weken
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 2020 en de eerste week van 2021 wordt geladen in de tabel Transactions.
De BrokenWeeks-variabele is ingesteld op 0.
Een voorgaande lading die het volgende bevat:
De weekyear()-functie die is ingesteld als het veld, week_year, dat het jaar retourneert waarin de transacties hebben plaatsgevonden.
De week()-functie, ingesteld als het veld week, dat het weeknummer toont van elke transactiedatum.
Maar in dit voorbeeld is het bedrijfsbeleid om niet-opgesplitste weken te gebruiken.
Load-script
SET BrokenWeeks=0;
Transactions:
Load
*,
week(date) as week,
weekyear(date) as week_year
;
Load
*
Inline
[
id,date,amount
8176,12/28/2020,19.42
8177,12/29/2020,23.80
8178,12/30/2020,82.06
8179,12/31/2020,40.56
8180,01/01/2021,37.23
8181,01/02/2021,17.17
8182,01/03/2021,88.27
8183,01/04/2021,57.42
8184,01/05/2021,67.42
8185,01/06/2021,23.80
8186,01/07/2021,82.06
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
week
week_year
Resultatentabel
id
date
week
week_year
8176
12/28/2020
53
2020
8177
12/29/2020
53
2020
8178
12/30/2020
53
2020
8179
12/31/2020
53
2020
8180
01/01/2021
53
2020
8181
01/02/2021
53
2020
8182
01/03/2021
1
2021
8183
01/04/2021
1
2021
8184
01/05/2021
1
2021
8185
01/06/2021
1
2021
8186
01/07/2021
1
2021
De systeemvariabele BrokenWeeks is ingesteld op 0 wat inhoudt dat de applicatie niet-opgesplitste weken gebruikt. Daarom hoeft week 1 niet te beginnen op 1 januari.
Week 53 van 2020 gaat verder tot het eind van 2 januari 2021, waarbij week 1 van 2020 op zondag, 3 januari 2021 valt.
Transactie 8181 vindt plaats op 2 januari. Deze datum valt in week 1. Daarom wordt de waarde 2021 geretourneerd voor het veld week_year.
Voorbeeld 3 - 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
Maak de volgende meting om de week waarin een transactie plaatsvindt te berekenen:
=week(date)
Maak de volgende meting om het jaar waarin een transactie plaatsvindt te berekenen op basis van het weeknummer:
=weekyear(date)
Resultatentabel
id
date
week
week_year
8176
12/28/2020
53
2020
8177
12/29/2020
53
2020
8178
12/30/2020
53
2020
8179
12/31/2020
53
2020
8180
01/01/2021
1
2021
8181
01/02/2021
1
2021
8182
01/03/2021
2
2021
8183
01/04/2021
2
2021
8184
01/05/2021
2
2021
8185
01/06/2021
2
2021
8186
01/07/2021
2
2021
Het veld week_year wordt gemaakt in de voorafgaande load-instructie met behulp van de functie weekyear() en geeft het datumveld door als het argument van de functie.
De systeemvariabele BrokenWeeks is ingesteld op 1 wat inhoudt dat de app opgesplitste weken gebruikt. Week 1 begint op 1 januari.
Transactie 8181 vindt plaats op 2 januari. Deze datum valt in week 1. Daarom wordt de waarde 2021 geretourneerd voor het veld week_year.
Voorbeeld 4 - 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 2020 en de eerste week van 2021 wordt geladen in de tabel Transactions.
De BrokenWeeks-variabele is ingesteld op 0. Dit betekent dat de app niet-opgesplitste weken gebruikt.
De ReferenceDay-variabele is ingesteld op 2. Dit betekent dat het jaar op 2 januari begint en ten minste twee dagen in januari bevat.
De FirstWeekDay-variabele is ingesteld op 1. Dit betekent dat dinsdag de eerste dag van de week is.
Het bedrijfsbeleid is om opgesplitste weken te gebruiken. De eindgebruiker wil graag een diagram dat de totale verkoop per jaar weergeeft. De app gebruikt niet-opgesplitste weken waarbij week 1 ten minste twee dagen in januari bevat.
Load-script
SET BrokenWeeks=0;
SET ReferenceDay=2;
SET FirstWeekDay=1;
Transactions:
Load
*
Inline
[
id,date,amount
8176,12/28/2020,19.42
8177,12/29/2020,23.80
8178,12/30/2020,82.06
8179,12/31/2020,40.56
8180,01/01/2021,37.23
8181,01/02/2021,17.17
8182,01/03/2021,88.27
8183,01/04/2021,57.42
8184,01/05/2021,67.42
8185,01/06/2021,23.80
8186,01/07/2021,82.06
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel.
Maak de volgende meting om het jaar waarin een transactie plaatsvindt te berekenen op basis van het weeknummer:
=weekyear(date)
Maak de volgende meting om de totale verkoop te berekenen:
sum(amount)
Stel de Getalnotatie van de meting in op Geld.
Resultatentabel
weekyear(date)
=sum(amount)
2020
19.42
2021
373.37
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!