In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
De functie inweektodate() gebruikt de parameter base_date om een maximale grensdatum van een weeksegment te identificeren, evenals de bijbehorende datum voor het begin van de week, die is gebaseerd op de systeemvariabele FirstWeekDay (of door de gebruiker gedefinieerde parameter first_week_day). Zodra dit weeksegment is gedefinieerd, retourneert de functie booleaanse resultaten bij het vergelijken van de voorgeschreven datumwaarden met dat segment.
Wanneer gebruiken
De functie inweektodate() 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 een geëvalueerde datum plaatsvond in de week tot en met een bepaalde datum.
De functie inweektodate() kan bijvoorbeeld worden gebruikt om alle verkopen te berekenen die in een bepaalde week tot een bepaalde datum zijn gedaan.
Argumenten
Argument
Beschrijving
timestamp
De datum die u wilt vergelijken met base_date.
base_date
Datum op basis waarvan de week wordt geëvalueerd.
period_no
De week kan worden verschoven met period_no. period_no is een geheel getal, waarbij de waarde 0 de week aangeeft die base_date bevat. Negatieve waarden in period_no geven voorgaande weken aan en positieve waarden geven volgende weken aan.
first_week_day
Standaard is de eerste dag van de week zondag (zoals bepaald door de systeemvariabele FirstWeekDay), beginnend om middernacht tussen zaterdag en zondag. De parameter first_week_day vervangt de variabele FirstWeekDay. Geef aan dat de week op een andere dag begint door een vlag tussen 0 en 6 op te geven.
Gebruik voor een week die begint op maandag en eindigt op zondag een vlag van 0 voor maandag, 1 voor dinsdag, 2 voor woensdag, 3 voor donderdag, 4 voor vrijdag, 5 voor zaterdag en 6 voor zondag.
Voorbeelden van functies
Voorbeeld
Interactie
inweektodate('01/12/2006', '01/12/2006', 0)
Retourneert TRUE.
inweektodate('01/12/2006', '01/11/2006', 0)
Retourneert FALSE.
inweektodate('01/12/2006', '01/18/2006', -1)
Retourneert FALSE. omdat period_no is opgegeven als -1, vormt 01/11/2006 de daadwerkelijke datum waartegen timestamp wordt afgezet.
inweektodate('01/11/2006', '01/12/2006', 0, 3 )
Retourneert FALSE, omdat first_week_day is opgegeven als 3 (donderdag), waardoor 01/12/2006 de eerste dag van de week wordt na de week die 01/12/2006 bevat.
Deze onderwerpen kunnen u helpen bij het werken met deze functie:
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 2022 die wordt geladen in de tabel Transactions.
Het gegevensveld in de TimestampFormat='M/D/YYYY h:mm:ss[.fff]'-indeling.
Het aanmaken van een veld, in_week_to_date, dat bepaalt welke transacties hebben plaatsgevonden in de week tot en met 14 januari 2022.
Het maken van een extra veld met de naam weekday met behulp van de functie weekday(). Dit nieuwe veld is gemaakt om aan te geven welke dag van de week overeenkomt met elke datum.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
week_day
in_week_to_date
Resultatentabel
date
week_day
in_week_to_date
2022-01-02 12:22:06
Zo
0
2022-01-05 01:02:30
Wo
0
2022-01-06 15:36:20
Do
0
2022-01-08 10:58:35
Za
0
2022-01-09 08:53:32
Zo
-1
2022-01-10 21:13:01
Ma
-1
2022-01-11 00:57:13
Di
-1
2022-01-12 09:26:02
Wo
-1
2022-01-13 15:05:09
Do
-1
2022-01-14 18:44:57
Vr
-1
2022-01-15 06:10:46
Za
0
2022-01-16 06:39:27
Zo
0
2022-01-17 10:44:16
Ma
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Wo
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Vr
0
2022-01-30 11:56:56
Zo
0
2022-01-30 14:40:19
Zo
0
2022-01-31 05:28:21
Ma
0
Het veld in_week_to_date wordt gemaakt in de vorige load-instructie met behulp van de functie inweektodate(). Het eerste verstrekte argument geeft aan welk veld wordt geëvalueerd. Het tweede argument is een vastgestelde datum voor 14 januari, de base_date die aangeeft welke week moet worden gesegmenteerd en de eindgrens van dat segment definieert. Een period_no van 0 is het laatste argument, wat betekent dat de functie geen kwartalen voor of na het gesegmenteerde kwartaal vergelijkt.
De systeemvariabele FirstWeekDay bepaalt dat weken beginnen op een zondag en eindigen op een zaterdag. Daarom zou januari worden opgedeeld in weken volgens het onderstaande diagram, waarbij de datums tussen 9 en 14 januari de geldige periode vormen voor de inweekdodate() berekening:
Elke transactie die tussen 9 januari en 14 januari plaatsvindt, retourneert een booleaans resultaat van TRUE. Transacties voor en na de datums retourneren een booleaans resultaat van FALSE.
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 aanmaken van een veld, prev_week_to_date, dat bepaalt welke transacties een volledige week voor het einde van het weeksegment op 14 januari 2022 hebben plaatsgevonden.
Het maken van een extra veld met de naam weekday met behulp van de functie weekday(). Dit is om aan te geven welke dag van de week overeenkomt met elke datum.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
week_day
prev_week_to_date
Resultatentabel
date
week_day
prev_week_to_date
2022-01-02 12:22:06
Zo
-1
2022-01-05 01:02:30
Wo
-1
2022-01-06 15:36:20
Do
-1
2022-01-08 10:58:35
Za
0
2022-01-09 08:53:32
Zo
0
2022-01-10 21:13:01
Ma
0
2022-01-11 00:57:13
Di
0
2022-01-12 09:26:02
Wo
0
2022-01-13 15:05:09
Do
0
2022-01-14 18:44:57
Vr
0
2022-01-15 06:10:46
Za
0
2022-01-16 06:39:27
Zo
0
2022-01-17 10:44:16
Ma
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Wo
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Vr
0
2022-01-30 11:56:56
Zo
0
2022-01-30 14:40:19
Zo
0
2022-01-31 05:28:21
Ma
0
Een period_no-waarde van -1 geeft aan dat de functie inweektodate () het invoerkwartaalsegment vergelijkt met de voorgaande week. Het weeksegment komt aanvankelijk overeen met tussen 9 januari en 14 januari. De period_no verschuift vervolgens zowel de begin- als de eindgrens van dit segment naar een week eerder, waardoor de datumgrenzen van 2 januari tot 7 januari worden.
Daarom zal elke transactie die plaatsvindt tussen 2 januari en 8 januari (niet inclusief 8 januari zelf) 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.
Het aanmaken van een veld, in_week_to_date, dat bepaalt welke transacties hebben plaatsgevonden in de week tot en met 14 januari 2022.
Het maken van een extra veld met de naam weekday met behulp van de functie weekday(). Dit is om aan te geven welke dag van de week overeenkomt met elke datum.
In dit voorbeeld beschouwen we maandag als de eerste dag van de week.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
week_day
in_week_to_date
Resultatentabel
date
week_day
in_week_to_date
2022-01-02 12:22:06
Zo
0
2022-01-05 01:02:30
Wo
0
2022-01-06 15:36:20
Do
0
2022-01-08 10:58:35
Za
0
2022-01-09 08:53:32
Zo
0
2022-01-10 21:13:01
Ma
-1
2022-01-11 00:57:13
Di
-1
2022-01-12 09:26:02
Wo
-1
2022-01-13 15:05:09
Do
-1
2022-01-14 18:44:57
Vr
-1
2022-01-15 06:10:46
Za
0
2022-01-16 06:39:27
Zo
0
2022-01-17 10:44:16
Ma
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Wo
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Vr
0
2022-01-30 11:56:56
Zo
0
2022-01-30 14:40:19
Zo
0
2022-01-31 05:28:21
Ma
0
Door 0 te gebruiken als het first_week_day-argument in de inweektodate()-functie, vervangt het functie-argument de FirstWeekDay-systeemvariabele en stelt het maandag in als de eerste dag van de week.
Daarom zal elke transactie die plaatsvindt tussen 10 en 14 januari een booleaans resultaat van TRUE retourneren, terwijl transacties met datums buiten deze grenzen een waarde van FALSE zullen retourneren.
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 welke transacties plaatsvonden in de week tot en met 14 januari 2022 is gemaakt als een meting in het diagramobject.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Om te berekenen of transacties in dezelfde week tot 14 januari hebben plaatsgevonden, maakt u de volgende meting aan:
=inweektodate(date,'01/14/2022',0)
Om aan te geven welke dag van de week overeenkomt met elke datum, maakt u een aanvullende meting:
=weekday(date)
Resultatentabel
date
week_day
in_week_to_date
2022-01-02 12:22:06
Zo
0
2022-01-05 01:02:30
Wo
0
2022-01-06 15:36:20
Do
0
2022-01-08 10:58:35
Za
0
2022-01-09 08:53:32
Zo
-1
2022-01-10 21:13:01
Ma
-1
2022-01-11 00:57:13
Di
-1
2022-01-12 09:26:02
Wo
-1
2022-01-13 15:05:09
Do
-1
2022-01-14 18:44:57
Vr
-1
2022-01-15 06:10:46
Za
0
2022-01-16 06:39:27
Zo
0
2022-01-17 10:44:16
Ma
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Wo
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Vr
0
2022-01-30 11:56:56
Zo
0
2022-01-30 14:40:19
Zo
0
2022-01-31 05:28:21
Ma
0
Het veld in_week_to_date wordt in een diagramobject gemaakt als een meting met behulp van de functie inweektodate(). Het eerste opgegeven argument geeft aan welk veld wordt geëvalueerd. Het tweede argument is een vastgestelde datum voor 14 januari, de base_date die aangeeft welke week moet worden gesegmenteerd en de eindgrens van dat segment definieert. Een period_no van 0 is het laatste argument, wat betekent dat de functie geen kwartalen voor of na het gesegmenteerde kwartaal vergelijkt.
De systeemvariabele FirstWeekDay bepaalt dat weken beginnen op een zondag en eindigen op een zaterdag. Daarom zou januari worden opgedeeld in weken volgens het onderstaande diagram, waarbij de datums tussen 9 en 14 januari de geldige periode vormen voor de inweekdodate() berekening:
Elke transactie die tussen 9 januari en 14 januari plaatsvindt, retourneert een booleaans resultaat van TRUE. Transacties voor en na de datums retourneren een booleaans resultaat van FALSE.
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 over product-id, productiedatum en kostprijs.
Er is vastgesteld dat producten die in de week 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.
De functie inweektodate() 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 week 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!