Deze functie bepaalt of een tijdstempel valt binnen dezelfde periode van de maand, twee maanden, kwartaal, tertiaal of half jaar als basisdatum. Het is tevens mogelijk om te bepalen of de tijdstempel binnen een voorafgaande of volgende tijdsperiode valt.
In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
De functie inmonths() verdeelt het jaar in segmenten op basis van het opgegeven n_months-argument. Het bepaalt vervolgens of een geëvalueerde tijdstempel in hetzelfde segment valt als het base_date-argument. Als er echter een period_no-argument is opgegeven, bepaalt de functie of de tijdstempels in een vorige of volgende periode vallen ten opzichte van de base_date.
De volgende segmenten van het jaar zijn beschikbaar in de functie als n_month-argumenten:
n_month-argumenten
Periode
Aantal maanden
maandelijks
1
tweemaandelijks
2
kwartaal
3
tertiaal
4
halfjaarlijks
6
Wanneer gebruiken
De functie inmonths() retourneert een booleaanse waarde. Dit type functie wordt doorgaans gebruikt als voorwaarde in een if expression. Door de inmonths()-functie te gebruiken, kunt u de periode selecteren die u wilt laten evalueren. Bijvoorbeeld: door de gebruiker producten te laten identificeren die in de maand, het kwartaal of de jaarhelft van een bepaalde periode zijn geproduceerd.
Retourgegevenstypen: Booleaanse waarde
In Qlik Sense wordt de booleaanse waarde Waar vertegenwoordigd door -1 en de waarde Onwaar door 0.
Argumenten
Argument
Beschrijving
n_months
Het aantal maanden dat de periode definieert. Een geheel getal of uitdrukking die wordt herleid tot een geheel getal dat een van de volgende waarden moet hebben: 1 (equivalent aan de functie inmonth()), 2 (2 maanden), 3 (equivalent aan de functie inquarter()), 4 (tertiaal) of 6 (half jaar).
timestamp
De datum die u wilt vergelijken met base_date.
base_date
Datum op basis waarvan de periode wordt geëvalueerd.
period_no
De periode kan worden verschoven met period_no, een geheel getal of een uitdrukking die wordt herleid tot een geheel getal, waarbij de waarde 0 de periode aangeeft die base_date bevat. Negatieve waarden in period_no geven voorafgaande perioden aan en positieve waarden geven volgende perioden aan.
first_month_of_year
Als u wilt werken met (boek)jaren die niet in januari beginnen, geeft u een waarde op tussen 2 en 12 in first_month_of_year.
U kunt de volgende waarden gebruiken om de eerste maand van het jaar in te stellen in het argument first_month_of_year:
waarden first_month_of_year
Month
Waarde
Februari
2
Maart
3
April
4
May
5
Juni
6
Juli
7
Augustus
8
September
9
Oktober
10
November
11
December
12
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. Ga voor meer informatie naar Regionale instellingen voor apps en scripts aanpassen.
Standaard landinstellingen van de app zijn gebaseerd op het gebruikersprofiel. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Cloud. Qlik Cloud wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Retourneert TRUE. Omdat de waarde van timestamp, 25/01/2013, binnen de periode van vier maanden van 01/01/2013 t/m 30/04/2013 ligt, waarin de waarde van base_date, 25/04/2013 ligt.
inmonths(4, '05/25/2013', '04/25/2013', 0)
Retourneert FALSE. Omdat 25/05/2013 buiten dezelfde periode als het voorafgaande voorbeeld ligt.
inmonths(4, '11/25/2012', '02/01/2013', -1 )
Retourneert TRUE. Omdat de waarde van period_no, -1, de zoekperiode één periode van vier maanden (de waarde van n-months) terugschuift, waardoor de zoekperiode valt van 01/09/2012 t/m 31/12/2012.
inmonths(4, '05/25/2006', '03/01/2006', 0, 3)
Retourneert TRUE. Aangezien de waarde van first_month_of_year is ingesteld op 3, waardoor de zoekperiode 03/01/2006 tot 07/30/2006 wordt in plaats van 01/01/2006 tot 04/30/2006.
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 2022 wordt in de tabel Transactions geladen.
Een voorafgaande lading met een extra variabele, in_months, die bepaalt of transacties in hetzelfde kwartaal hebben plaatsgevonden als het kwartaal waarin 15 mei 2022 valt.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
in_months
Resultatentabel
date
in_months
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Het veldin_months wordt gemaakt in de vorige load-instructie met behulp van de functie inmonths(). Het eerste opgegeven argument is 3, waarbij het jaar wordt verdeeld in kwartaalsegmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd; het datumveld in dit voorbeeld. Het derde argument is een vastgestelde datum voor 15 mei. Dit is de base_date en een period_no van 0 is het laatste argument.
Mei valt in het tweede kwartaal van het jaar. Daarom zal elke transactie die plaatsvindt tussen 1 april en 30 juni een booleaans resultaat voor 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:
Een gegevensset met een set transacties voor 2022 wordt in de tabel Transactions geladen.
Een voorafgaande lading met een extra variabele, previous_quarter, die bepaalt of transacties hebben plaatsgevonden in het kwartaal voorafgaand aan het kwartaal waarin 15 mei 2022 valt.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
previous_quarter
Resultatentabel
date
vorig kwartaal
2/19/2022
-1
3/7/2022
-1
3/30/2022
-1
4/5/2022
0
4/16/2022
0
5/1/2022
0
5/7/2022
0
5/22/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
De functie stelt vast of transacties in het eerste kwartaal van het jaar hebben plaatsgevonden met -1 als het period_no-argument in de inmonths()-functie. 15 Mei is de base_date en valt in het tweede kwartaal van het jaar (april-juni).
Daarom zal elke transactie die plaatsvindt tussen januari en maart een booleaans resultaat voor TRUE retourneren.
Voorbeeld 3 - first_month_of_year
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 wordt in de tabel Transactions geladen.
Een voorafgaande lading met een extra variabele, in_months, die bepaalt of transacties in hetzelfde kwartaal hebben plaatsgevonden als het kwartaal waarin 15 mei 2022 valt.
In dit voorbeeld is maart volgens het organisatiebeleid de eerste maand van het boekjaar.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
in_months
Resultatentabel
date
in_months
2/19/2022
0
3/7/2022
-1
3/30/2022
-1
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Door 3 te gebruiken als het first_month_of_year-argument in de inmonths()-functie, begint het jaar op 1 maart. De inmonths()-functie verdeelt het jaar vervolgens in kwartalen. Maa-mei, jun-aug, sep-nov, dec-feb. Daarom valt 15 mei in het eerste kwartaal van het jaar (maart-mei).
Een transactie die in deze maanden plaatsvindt, retourneert een booleaans resultaat voor TRUE.
Voorbeeld 4 – Diagramobjectvoorbeeld
Overzicht
Dezelfde gegevensset en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is de gegevensverzameling echter niet gewijzigd en wordt in de applicatie geladen. De berekening die bepaalt welke transacties plaatsvonden in hetzelfde kwartaal als 15 mei, wordt gemaakt als een meting in een diagram in de app.
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 hetzelfde kwartaal hebben plaatsgevonden als het kwartaal waarin 15 mei valt, maakt u de volgende meting:
=inmonths(3,date,'05/15/2022', 0)
Resultatentabel
date
=inmonths(3,date,'05/15/2022', 0)
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Het veld in_months wordt in een diagram gemaakt met behulp van de functie inmonths(). Het eerste opgegeven argument is 3, waarbij het jaar wordt verdeeld in kwartaalsegmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd; het datumveld in dit voorbeeld. Het derde argument is een vastgestelde datum voor 15 mei. Dit is de base_date en een period_no van 0 is het laatste argument.
Mei valt in het tweede kwartaal van het jaar. Daarom zal elke transactie die plaatsvindt tussen 1 april en 30 juni een booleaans resultaat voor 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 in de tabel Products wordt geladen.
De tabel bevat de volgende velden:
product ID
producttype
productiedatum
cost price
De eindgebruiker wil een diagram dat de kosten per producttype weergeeft van de producten die in het eerste segment van 2021 zijn geproduceerd. De gebruiker wil de duur van dit segment kunnen definiëren.
De inmonths()-functie gebruikt de invoer van de gebruiker als argument om de omvang van het beginsegment van het jaar te definiëren. De functie passeert in de productiedatum van elk van de producten als het tweede argument van de inmonths()-functie. Door 1 januari als het derde argument in de inmonths()-functie te gebruiken, zullen producten met productiedatums die in het beginsegment van het jaar vallen, een booleaanse waarde voor TRUE retourneren. Daarom zal de somfunctie de kosten van die producten optellen.
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!