Deze functie retourneert een weergavewaarde voor het jaar en maanweeknummer dat overeenkomt met een tijdstempel van de eerste milliseconde van de eerste dag van de week die date bevat. Maanweken in Qlik Sense worden gedefinieerd door het feit dat 1 januari wordt gezien als de eerste dag van de week en, met uitzondering van de laatste week van het jaar, bevat elke week precies zeven dagen.
De lunarweekname()-functie bepaalt in welke maanweek de datum valt, waarbij de weektelling begint op 1 januari. Er wordt vervolgens een waarde geretourneerd die bestaat uit de year/weekcount.
Argumenten
Argument
Beschrijving
date
De te evalueren datum of tijdstempel.
period_no
period_no is een geheel getal, of een uitdrukking die wordt herleid tot een geheel getal, waarbij de waarde 0 de maanweek aangeeft die date bevat. Negatieve waarden in period_no geven voorafgaande maanweken aan en positieve waarden geven volgende maanweken aan.
first_week_day
Een verschuiving kan groter of kleiner zijn dan nul. Hiermee wordt het begin van het jaar gewijzigd met het opgegeven aantal dagen en/of fracties van een dag.
Wanneer gebruiken
De lunarweekname()-functie is handig als u aggregaties per maanweek wilt vergelijken. Bijvoorbeeld: de functie kan worden gebruikt om de totale verkoop van producten per maanweek te bepalen. Maanweken zijn handig wanneer u er zeker van wilt zijn dat alle waarden uit de eerste week van het jaar, alleen de waarden vanaf 1 januari omvatten.
Deze dimensies kunnen in het load-script worden gemaakt door de functie te gebruiken om een veld in een masterkalendertabel te maken. De functie kan ook rechtstreeks in een diagram worden gebruikt als een berekende dimensie.
Voorbeelden van functies
Voorbeeld
Resultaat
lunarweekname('01/12/2013')
Retourneert 2006/02.
lunarweekname('01/12/2013', -1)
Retourneert 2006/01.
lunarweekname('01/12/2013', 0, 1)
Retourneert 2006/02.
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.
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 gegevensset met een set transacties voor 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Het veld lunar_week_name wordt gemaakt en retourneert het jaar- en weeknummer voor de maanweek waarin de transacties plaatsvonden.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
lunar_week_name
Resultatentabel
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
Het lunar_week_name-veld wordt gemaakt in de voorafgaande load-instructie met behulp van de lunarweekname()-functie en geeft het date-veld door als het argument van de functie.
De lunarweekname()-functie identificeert in welke maanweek de datumwaarde valt en retourneert het jaar- en weeknummer van die datum.
Transactie 8189 vond plaats op 19 januari. De lunarweekname()-functie identificeert dat deze datum in de maanweek valt die op 15 januari begint. Dit is de derde maanweek van het jaar. Daarom is de lunar_week_name-waarde die voor deze transactie wordt geretourneerd 2022/03.
Voorbeeld 2 – Datum met period_no argument
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 eerste voorbeeld.
Het veld previous_lunar_week_name wordt gemaakt en retourneert het jaar- en weeknummer voor de maanweek voorafgaand aan de week waarin de transacties plaatsvonden.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
previous_lunar_week_name
Resultatentabel
date
previous_lunar_week_name
1/7/2022
2021/52
1/19/2022
2022/02
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/10
4/1/2022
2022/12
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/23
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/28
7/23/2022
2022/29
7/27/2022
2022/29
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/32
9/26/2022
2022/38
10/14/2022
2022/40
10/29/2022
2022/43
In dit geval, omdat een period_no van -1 werd gebruikt als het offset-argument in de lunarweekname()-functie, identificeert de functie eerst de maanweek waarin de transacties plaatsvonden. De functie retourneert vervolgens het jaar en het nummer van één week eerder.
Transactie 8189 vond plaats op 19 januari. De lunarweekname()-functie identificeert dat deze transactie in de derde maanweek van het jaar plaatsvond en retourneert daarom het jaar en de waarde voor één week eerder, 2022/02, voor het previous_lunar_week_name-veld.
Voorbeeld 3 – Datum met first_week_day-argument
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 stellen we het begin van de maanweek in op 5 januari.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
lunar_week_name
Resultatentabel
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/24
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/29
7/23/2022
2022/29
7/27/2022
2022/30
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/33
9/26/2022
2022/38
10/14/2022
2022/41
10/29/2022
2022/43
In dit geval verschuift het begin van de maanweken van 1 januari naar 5 januari omdat het first_week_date-argument 4 in de lunarweekname()-functie is gebruikt.
Transactie 8188 vond plaats op 7 januari. Omdat maanweken op 5 januari beginnen, identificeert de lunarweekname()-functie dat de maanweek waarin 7 januari valt, de eerste maanweek van het jaar is. Daarom is de lunar_week_name-waarde die voor deze transactie wordt geretourneerd 2022/01.
Voorbeeld 4 – 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 maanweeknunmer en het jaar retourneert waarin de transacties plaatsvonden, is gemaakt als meting in een diagramobject van de applicatie.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Om de begindatum van de maanweek te berekenen waarin een transactie heeft plaatsgevonden, maakt u de volgende meting:
=lunarweekname(date)
Resultatentabel
date
=lunarweekname(date)
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
De meting lunar_week_name wordt gemaakt in het diagramobject met behulp van de functie lunarweekname() en geeft het veld date door als het argument van de functie.
De lunarweekname()-functie identificeert in welke maanweek de datumwaarde valt en retourneert het jaar- en weeknummer van die datum.
Transactie 8189 vond plaats op 19 januari. De lunarweekname()-functie identificeert dat deze datum in de maanweek valt die op 15 januari begint. Dit is de derde maanweek van het jaar. Daarom is de lunar_week_name-waarde voor deze transactie 2022/03.
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 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
De eindgebruiker wil graag een diagramobject dat de totale verkoop per week voor het huidige jaar weergeeft. Week 1, met een lengte van zeven dagen, zou op 1 januari moeten beginnen. Dit kan zelfs worden bereikt als deze dimensie niet beschikbaar is in het gegevensmodel, door de functie lunarweekname() te gebruiken als een berekende dimensie in het diagram.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel.
Maak een berekende dimensie met behulp van de volgende uitdrukking:
=lunarweekname(date)
Bereken de totale verkoop met de volgende aggregatiemeting:
=sum(amount)
Stel de Getalnotatie van de meting in op Geld.
Resultatentabel
=lunarweekname(date)
=sum(amount)
2022/01
$17.17
2022/03
$37.23
2022/06
$57.42
2022/09
$88.27
2022/11
$53.80
2022/13
$82.06
2022/19
$40.39
2022/20
$87.21
2022/24
$95.93
2022/26
$45.89
2022/28
$36.23
2022/29
$25.66
2022/30
$152.75
2022/31
$76.11
2022/32
$25.12
2022/33
$46.23
2022/39
$84.21
2022/41
$96.24
2022/44
$67.67
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!