Deze functie bepaalt of timestamp binnen de maanweek valt die base_date bevat. Maanweken in Qlik Sense worden gedefinieerd door het feit dat 1 januari wordt gezien als de eerste dag van de week. Met uitzondering van de laatste week van het jaar, bevat elke week precies zeven dagen.
In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
De inlunarweek()-functie bepaalt welke maanweek de base_date in valt. Er wordt vervolgens een booleaanse waarde geretourneerd zodra de functie heeft bepaald of iedere tijdstempelwaarde binnen dezelfde maanweek valt als de base_date.
Wanneer gebruiken
De functie inlunarweek() retourneert een booleaanse waarde. Dit type functie wordt doorgaans gebruikt als voorwaarde in een IF-uitdrukking. Dit retourneert een aggregatie of berekening afhankelijk van of de geëvalueerde datum plaatsvond in de betreffende maanweek.
De functie inlunarweek() kan bijvoorbeeld worden gebruikt om alle materieel te identificeren die in een bepaalde maanweek is geproduceerd.
Argumenten
Argument
Beschrijving
timestamp
De datum die u wilt vergelijken met base_date.
base_date
Datum op basis waarvan de maanweek wordt geëvalueerd.
period_no
De maanweek kan worden verschoven met period_no. period_no is een geheel getal, waarbij de waarde 0 de maanweek aangeeft die base_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.
Voorbeelden van functies
Voorbeeld
Resultaat
inlunarweek('01/12/2013', '01/14/2013',
0)
Retourneert TRUE, omdat de waarde van timestamp, 01/12/2013, in de week van 01/08/2013 tot 01/14/2013 valt.
inlunarweek('01/12/2013', '01/07/2013',
0)
Retourneert FALSE, omdat de base_date01/07/2013 in de maanweek valt die is ingesteld op 01/01/2013 tot 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Retourneert FALSE. Door het opgeven van een waarde van period_no als -1 wordt de week naar de vorige week verschoven, van 01/01/2013 t/m 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Retourneert TRUE. In vergelijking met het voorafgaande voorbeeld ligt de timestamp in de volgende week daarna als wordt rekening gehouden met de terugwaartse verschuiving.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Retourneert FALSE. Door een waarde van 3 op te geven voor first_week_day, wordt het begin van het jaar berekend vanaf 01/04/2013. Daarom valt de waarde van base_date in de eerste week en de waarde van timestamp in de week van 01/11/2013 t/m 01/17/2013.
De functie inlunarweek() wordt vaak gebruikt in combinatie met de volgende functies:
Deze functie wordt gebruikt om het maanweeknummer te bepalen van het jaar waarin een invoerdatum valt.
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 – Geen 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 transacties voor de maand januari die wordt geladen in de tabel Transactions.
Het datumveld is opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Maak een veld, in_lunar_week, dat bepaalt of de transacties in dezelfde maanweek plaatsvonden als 10 januari.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
in_lunar_week
Resultatentabel
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Het veld in_lunar_week wordt gemaakt in de voorafgaande load-instructie met behulp van de inlunarweek()-functie en geeft vervolgens het volgende door als de argumenten van de functie:
Het date-veld
Een vastgelegde datum van 10 januari als de base_date
Een period_no van 0
Omdat maanweken op 1 januari beginnen, zou 10 januari in de maanweek vallen die begint op 8 januari en eindigt op 14 januari. Daarom zouden alle transacties die tussen deze datums in januari plaatsvinden, de booleaanse waarde TRUE retourneren. Dit wordt gevalideerd in de resultatentabel.
Voorbeeld 2 – period_no
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 datumveld is opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Maak een veld, 2_lunar_weeks_later, dat bepaalt of de transacties in dezelfde maanweek plaatsvonden als 10 januari.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
2_lunar_weeks_later
Resultatentabel
date
2_lunar_weeks_later
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
In dit voorbeeld definieert de functie de week die begint op 22 januari als de maanweek op basis waarvan transacties moeten worden gevalideerd omdat een period_no van 2 is gebruikt als het offset-argument in de inlunarweek()-functie. Daarom zal elke transactie die plaatsvindt tussen 22 januari en 28 januari een booleaans resultaat van TRUE retourneren.
Voorbeeld 3 – 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 gebruikt dezelfde gegevensset en scenario als het eerste voorbeeld. Maar in dit voorbeeld stellen we het begin van de maanweek in op 6 januari.
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
De standaard DateFormat-systeemvariabele mm/dd/jjjj wordt gebruikt.
Een first_week_day-argument van 5. Dit stelt het begin van de maanweken in op 5 januari.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
in_lunar_week
Resultatentabel
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
In dit geval wordt het begin van de maanweekkalender verschoven naar 6 januari omdat in het first_week_date-argument van 5 wordt gebruikt in de functie inlunarweek(). Daarom valt 10 januari in de maanweek die begint op 6 januari en eindigt op 12 januari. Iedere transactie die tussen deze twee datums valt, retourneert een booleaanse waarde voor TRUE.
Voorbeeld 4 – Diagramobject
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 datumveld is opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die bepaalt of transacties plaatsvonden in dezelfde maanweek als 10 januari, is gemaakt als meting in een diagramobject van de toepassing.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Maak de volgende meting om te berekenen of een transactie plaatsvindt in de maanweek waarin 10 januari valt:
= inlunarweek(date,'01/10/2022', 0)
Resultatentabel
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
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 die wordt geladen in een tabel met de naam Products.
Informatie met daarin product-id, productiedatum en kostprijs.
Er is vastgesteld dat producten die in de maanweek van 12 januari zijn geproduceerd defect zijn vanwege een materieelfout. De eindgebruiker wil graag een diagramobject dat op maanweeknaam de status toont of de geproduceerde producten 'defect' of 'foutloos' zijn en de kosten van de producten die in die maand zijn geproduceerd.
De functie inlunarweek() retourneert een booleaanse waarde bij het evalueren van de productiedatums van elk product. Voor elk product dat wordt geproduceerd in de maanweek waarin 10 januari valt, retourneert de inlunarweek()-functie een booleaanse waarde voor TRUE en markeert de producten als 'Defect'. Voor elk product dat de waarde voor FALSE retourneert, en dus niet in die week is geproduceerd, wordt het product als 'Foutloos' gemarkeerd.
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!