Met deze functie wordt bepaald of timestamp binnen het gedeelte van de maanweek ligt tot en met de laatste milliseconde van base_date. 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.
In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
De inlunarweektodate()-functie functioneert als het eindpunt van de maanweek. Daarentegen bepaalt de inlunarweek()-functie in welke maanweek de base_date valt. Bijvoorbeeld: als de base_date 5 januari was, dan zou een tijdstempel tussen 1 januari en 5 januari een booleaans resultaat voor TRUE retourneren. Datums zoals 6 en 7 januari en zouden een booleaans resultaat voor FALSE retourneren.
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.
Wanneer gebruiken
De functie inlunarweektodate() retourneert een booleaanse waarde. Dit type functie wordt doorgaans gebruikt als voorwaarde in een IF-uitdrukking. De inlunarweektodate()-functie zou worden gebruikt wanneer de gebruiker wil dat de berekening een aggregatie of berekening retourneert, afhankelijk van of de geëvalueerde datum in een bepaald deel van de week in kwestie heeft plaatsgevonden.
De functie inlunarweektodate() kan bijvoorbeeld worden gebruikt om alle materieel te identificeren die in een bepaalde week t/m een bepaalde datum is geproduceerd.
Voorbeelden van functies
Voorbeeld
Resultaat
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Retourneert TRUE, omdat de waarde van timestamp, 01/12/2013, in het deel van de week van 01/08/2013 tot 01/13/2013 valt.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Retourneert FALSE omdat de waarde timestamp later is dan de waarde base_date hoewel de twee datums in dezelfde maanweek vallen vóór 01/12/2012.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Retourneert TRUE. Als een waarde van 1 wordt opgegeven voor period_no, wordt de base_date één week vooruit geschoven, zodat de waarde van timestamp in het deel van de maanweek valt.
De functie inlunarweektodate() 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 een set transacties voor de maand januari die wordt geladen in de tabel Transactions. De standaard DateFormat-systeemvariabele mm/dd/jjjj wordt gebruikt.
Maak een veld, in_lunar_week_to_date, dat bepaalt welke transacties in de maanweek tot de datum 10 januari plaatsvonden.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
in_lunar_week_to_date
Resultatentabel
date
in_lunar_week_to_date
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Het in_lunar_week_to_date-veld wordt gemaakt in de voorafgaande load-instructie met behulp van de inlunarweektodate()-functie en geeft het date-veld door, een vastgelegde tijdstempel voor 10 januari als onze base_date en een offset van 0 als de argumenten van de functie.
Omdat maanweken beginnen op 1 januari, zou 10 januari in de maakweek vallen die op 8 januari begint, en omdat we de inlunarweektodate()-functie gebruiken zou die maanweek eindigen op de 10e. 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 scenario als het eerste voorbeeld. Maar in dit voorbeeld, is de taak om een veld te maken, 2_lunar_weeks_later, dat bepaalt of de transacties al dan niet twee weken na de maanweek van 1 januari plaatsvonden.
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/1/2022
0
1/4/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
-1
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
In deze instantie bepaalt de inlunarweektodate()-functie dat de maanweek tot 10 januari gelijk is aan drie dagen (8, 9 en 10 januari). Omdat er een period_no van 2 is gebruikt als het offset-argument, wordt deze maanweek met 14 dagen verschoven. Dit zorgt er daarom voor dat de definitie van deze driedaagse maanweek bestaat uit 22, 23 en 24 januari. Iedere transactie die plaatsvindt tussen 22 januari en 24 januari zal 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 bevat:
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
De standaard DateFormat-systeemvariabele mm/dd/jjjj wordt gebruikt.
Een first_week_date-argument van 3. Dit stelt het begin van de maanweken in op 3 januari
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
in_lunar_week_to_date
Resultatentabel
date
in_lunar_week_to_date
1/1/2022
0
1/4/2022
-1
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
In deze instantie loopt de eerste maanweek van 3 januari t/m 10 januari omdat het the first_week_date-argument 3 is gebruikt in de inlunarweek()-functie. Omdat 10 januari tevens de base_date is, retourneert iedere transactie die tussen deze twee datums valt, een booleaanse waarde van TRUE.
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 bepaalt of transacties plaatsvonden in de maanweek tot 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:
=inlunarweektodate(date,'01/10/2022', 0)
Resultatentabel
date
=inlunarweektodate(date,'01/10/2022', 0)
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
De meting in_lunar_week_to_date wordt gemaakt in het diagramobject met behulp van de inlunarweektodate()-functie en geeft het datumveld door, een vastgelegde tijdstempel voor 10 januari als onze base_date en een offset van 0 als de argumenten van de functie.
Omdat maanweken beginnen op 1 januari, zou 10 januari in de maakweek vallen die op 8 januari begint. Omdat we de inlunarweektodate()-functie gebruiken zou die maanweek eindigen op de 10e. Daarom zouden alle transacties die tussen deze datums in januari plaatsvinden, de booleaanse waarde TRUE retourneren. Dit wordt gevalideerd in de resultatentabel.
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. Op 13 januari is het probleem opgelost. De eindgebruiker wil graag een diagramobject dat op week de status toont of de geproduceerde producten 'defect' of 'foutloos' zijn en de kosten van de producten die in die week zijn geproduceerd.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel.
Maak een dimensie om de weeknamen weer te geven:
=weekname(manufacture_date)
Maak vervolgens een dimensie om te maken die de inlunarweektodate()-functie gebruikt om te identificeren welke van de producten defect zijn en welke foutloos zijn:
De functie inlunarweektodate() retourneert een booleaanse waarde bij het evalueren van de productiedatums van elk product. Voor degenen die een booleaanse waarde van TRUE retourneren, markeert het de producten als ‘Defective’. Voor elk product dat een waarde retourneert van FALSE, en dus niet gemaakt in de maanweek tot en met 12 januari, markeert het de producten als ‘Faultless’.
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!