In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
De inweek()-functie gebruikt het argument base_date om te identificeren in welke zevendaagse periode dag valt. De begindag van de week wordt gebaseerd op de systeemvariabele FirstWeekDay. U kunt echter ook de eerste dag van de week wijzigen door het first_week_day-argument in de inweek()-functie te gebruiken.
Nadat de geselecteerde week is gedefinieerd, retourneert de functie booleaanse resultaten bij het vergelijken van de voorgeschreven datumwaarden met dat weeksegment.
Wanneer gebruiken
De functie inweek() retourneert een booleaanse waarde. Dit type functie wordt doorgaans gebruikt als voorwaarde in een if expression. De inweek()-functie retourneert een aggregatie of berekening die afhankelijk is van of een geëvalueerde datum in de week valt met de geselecteerde datum van het base_date-argument.
De inweek()-functie kan bijvoorbeeld worden gebruikt om alle materieel te identificeren dat in een specifieke week is geproduceerd.
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.
waarden first_week_day
Dag
Waarde
Maandag
0
Dinsdag
1
Woensdag
2
Donderdag
3
Vrijdag
4
Zaterdag
5
Zondag
6
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
inweek ('01/12/2006', '01/14/2006', 0)
Retourneert TRUE
inweek ('01/12/2006', '01/20/2006', 0 )
Retourneert FALSE
inweek ('01/12/2006', '01/14/2006', -1 )
Retourneert FALSE
inweek ('01/07/2006', '01/14/2006', -1)
Retourneert TRUE
inweek ('01/12/2006', '01/09/2006', 0, 3)
Retourneert FALSE omdat first_week_day is gespecificeerd als 3 (donderdag), waardoor 01/12/2006 de eerste dag van de week is na de week waarin 01/09/2006 valt.
Deze onderwerpen kunnen u helpen bij het werken met deze functie:
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
week_day
in_week
Resultatentabel
date
week_day
in_week
01/02/2022
Zo
0
01/05/2022
Wo
0
01/06/2022
Do
0
01/08/2022
Za
0
01/09/2022
Zo
-1
01/10/2022
Ma
-1
01/11/2022
Di
-1
01/12/2022
Wo
-1
01/13/2022
Do
-1
01/14/2022
Vr
-1
01/15/2022
Za
-1
01/16/2022
Zo
0
01/17/2022
Ma
0
01/18/2022
Di
0
01/26/2022
Wo
0
01/27/2022
Do
0
01/28/2022
Vr
0
01/29/2022
Za
0
01/30/2022
Zo
0
01/31/2022
Ma
0
Het veld in_week wordt gemaakt in de vorige load-instructie met behulp van de functie inweek(). Het eerste argument identificeert welk veld wordt geëvalueerd. Het tweede argument is een vastgestelde datum, 14 januari, wat de base_date is. Het base_date-argument werkt met de FirstWeekDay-systeemvariabele om de week te bepalen waarmee moet worden vergeleken. 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 15 januari de geldige periode vormen voor de inweek() berekening:
Elke transactie die tussen 9 januari en 15 januari plaatsvindt, retourneert een booleaans resultaat voor TRUE.
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 met een set transacties voor 2022 wordt in de tabel Transactions geladen.
De systeemvariabele FirstWeekDay die is ingesteld op 6 (zondag).
Een voorgaande lading die het volgende bevat:
De inweek ()-functie die is ingesteld als het prev_week-veld dat bepaalt welke transacties hebben plaatsgevonden in de week voorafgaand aan de week waarin 14 januari 2022 valt.
De weekday()-functie, ingesteld als het veld week_day, toont welke dag van de week overeenkomt met iedere datum.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
week_day
prev_week
Resultatentabel
date
week_day
prev_week
01/02/2022
Zo
-1
01/05/2022
Wo
-1
01/06/2022
Do
-1
01/08/2022
Za
-1
01/09/2022
Zo
0
01/10/2022
Ma
0
01/11/2022
Di
0
01/12/2022
Wo
0
01/13/2022
Do
0
01/14/2022
Vr
0
01/15/2022
Za
0
01/16/2022
Zo
0
01/17/2022
Ma
0
01/18/2022
Di
0
01/26/2022
Wo
0
01/27/2022
Do
0
01/28/2022
Vr
0
01/29/2022
Za
0
01/30/2022
Zo
0
01/31/2022
Ma
0
Door -1 als het period_no-argument in de inweek()-functie te gebruiken, verschuift de functie de grenzen van de vergelijkingsweek terug met zeven dagen. Met een period_no van 0, zou de week tussen 9 en 15 januari vallen. Maar in dit voorbeeld verschuift de period_no van -1 de begin- en eindgrens van dit segment terug met één week. De datumgrenzen worden 2 t/m 8 januari.
Daarom zal elke transactie die plaatsvindt tussen 2 januari en 8 januari een booleaans resultaat voor 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 met een set transacties voor 2022 wordt in de tabel Transactions geladen.
De systeemvariabele FirstWeekDay die is ingesteld op 6 (zondag).
Een voorgaande lading die het volgende bevat:
De inweek()-functie die is ingesteld als het in_week-veld dat bepaalt welke transacties hebben plaatsgevonden in de week tot en met 14 januari 2022.
De weekday()-functie, ingesteld als het veld week_day, toont welke dag van de week overeenkomt met iedere datum.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
week_day
in_week
Resultatentabel
date
week_day
in_week
01/02/2022
Zo
0
01/05/2022
Wo
0
01/06/2022
Do
0
01/08/2022
Za
0
01/09/2022
Zo
0
01/10/2022
Ma
-1
01/11/2022
Di
-1
01/12/2022
Wo
-1
01/13/2022
Do
-1
01/14/2022
Vr
-1
01/15/2022
Za
-1
01/16/2022
Zo
-1
01/17/2022
Ma
0
01/18/2022
Di
0
01/26/2022
Wo
0
01/27/2022
Do
0
01/28/2022
Vr
0
01/29/2022
Za
0
01/30/2022
Zo
0
01/31/2022
Ma
0
Door 0 te gebruiken als het first_week_day-argument in de inweek()-functie, wordt de FirstWeekDay-systeemvariabele vervangen en maandag ingesteld als de eerste dag van de week.
Daarom zal elke transactie die plaatsvindt tussen 10 en 16 januari een booleaans resultaat voor TRUE retourneren.
Voorbeeld 4 – 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. Maak een meting in de resultatentabel om te bepalen welke transacties plaatsvonden in de week van 14 januari 2022.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:
date
Maak de volgende metingen:
=inweek (date,'01/14/2022',0) om te bepalen of transacties in de week van 14 januari plaatsvonden.
=weekday(date) om aan te geven welke dag van de week overeenkomt met elke datum.
Resultatentabel
date
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
Zo
0
01/05/2022
Wo
0
01/06/2022
Do
0
01/08/2022
Za
0
01/09/2022
Zo
-1
01/10/2022
Ma
-1
01/11/2022
Di
-1
01/12/2022
Wo
-1
01/13/2022
Do
-1
01/14/2022
Vr
-1
01/15/2022
Za
-1
01/16/2022
Zo
0
01/17/2022
Ma
0
01/18/2022
Di
0
01/26/2022
Wo
0
01/27/2022
Do
0
01/28/2022
Vr
0
01/29/2022
Za
0
01/30/2022
Zo
0
01/31/2022
Ma
0
De meting in_week wordt in het diagram gemaakt met behulp van de inweek()-functie. Het eerste argument identificeert welk veld wordt geëvalueerd. Het tweede argument is een vastgestelde datum, 14 januari, wat de base_date is. Het base_date-argument werkt met de FirstWeekDay-systeemvariabele om de week te bepalen waarmee moet worden vergeleken. Een period_no van 0 is het laatste argument.
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 15 januari de geldige periode vormen voor de inweek() berekening:
Elke transactie die tussen 9 januari en 15 januari plaatsvindt, retourneert een booleaans resultaat voor TRUE.
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 in de tabel Products wordt geladen.
De tabel bevat de volgende velden:
product ID
producttype
productiedatum
cost price
Er is vastgesteld dat producten die in de week van 12 januari zijn geproduceerd defect zijn vanwege een materieelfout. De eindgebruiker wil graag een diagram dat op week de status toont welke geproduceerde producten de status 'defect' of 'foutloos' hadden en de kosten van de producten die in die week zijn geproduceerd.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:
=weekname(manufacture_date)
Maak de volgende metingen:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless'), om te identificeren welke van de producten defect zijn en welke foutloos zijn met behulp van de inweek()-functie.
=sum(cost_price), om de som van de kosten van elk product te tonen.
De functie inweek() retourneert een booleaanse waarde bij het evalueren van de productiedatums van elk product. Voor elk product dat op 12 januari is geproduceerd, retourneert de inweek()-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!