Deze functie retourneert een waarde die overeenkomt met de tijdstempel van de eerste milliseconde van de periode van een maand, twee maanden, kwartaal, tertiaal of half jaar die een basisdatum bevat. Het is tevens mogelijk om de tijdstempel voor een voorafgaande of volgende tijdsperiode te bepalen.De standaarduitvoernotatie is de DateFormat die is ingesteld in het script.
De functie monthsstart() verdeelt het jaar in segmenten op basis van het opgegeven n_months-argument. De functie bekijkt vervolgens in welk segment elke opgegeven datum valt en retourneert de eerste milliseconde van dat segment in datumnotitie. De functie biedt ook de mogelijkheid om de begintijdstempel van voorgaande of volgende segmenten te retourneren, en om opnieuw te definiëren wat de eerste maand van het jaar is.
De volgende segmenten van het jaar zijn beschikbaar in de functie als n_month-argumenten:
Mogelijke n_month-argumenten
Perioden
Aantal maanden
maandelijks
1
tweemaandelijks
2
kwartaal
3
tertiaal
4
halfjaarlijks
6
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).
date
De te evalueren datum of tijdstempel.
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.
Wanneer gebruiken
De monthsstart()-functie wordt doorgaans gebruikt als onderdeel van een uitdrukking als de gebruiker wil dat in de berekening een deel van de periode wordt gebruikt dat nog niet heeft plaatsgevonden. Dit kan bijvoorbeeld worden gebruikt om een invoervariabele te verstrekken waarmee de gebruiker de totale hoeveelheid rente kan berekenen die tot nu toe in de maand het kwartaal of het halve jaar is opgebouwd.
Voorbeelden van functies
Voorbeeld
Resultaat
monthsstart(4, '10/19/2013')
Retourneert 09/01/2013.
monthsstart(4, '10/19/2013, -1)
Retourneert 05/01/2013.
monthsstart(4, '10/19/2013', 0, 2
)
Retourneert 10/01/2013, omdat het begin van het jaar maand 2 wordt.
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.
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 die wordt geladen in de tabel Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Het maken van een veld, bi_monthly_start, dat transacties groepeert in tweemaandelijkse segmenten en de begintijdstempel van het segment voor elke transactie retourneert.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
bi_monthly_start
bi_monthly_start_timestamp
Resultatentabel
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
01/01/2022
1/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
Het veld bi_monthly_start wordt gemaakt in de vorige load-instructie met behulp van de functie monthsstart(). Het eerste opgegeven argument is 2, waarbij het jaar wordt verdeeld in tweemaandelijkse segmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd.
Transactie 8195 vindt plaats op 22 mei. De functie monthsstart() verdeelt het jaar in eerste instantie in tweemaandelijkse segmenten. Transactie 8195 valt in het segment tussen 1 mei en 30 juni. Daarom retourneert de functie de eerste milliseconde van dit segment: 1 mei 2022 om 12:00:00 AM.
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.
Er wordt een veld gemaakt, prev_bi_monthly_start, dat de eerste milliseconde retourneert van het tweemaandelijkse segment voordat de transactie plaatsvond.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
Resultatentabel
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
2/19/2022
11/01/2021
11/1/2021 12:00:00 AM
3/7/2022
01/01/2022
1/1/2022 12:00:00 AM
3/30/2022
01/01/2022
1/1/2022 12:00:00 AM
4/5/2022
01/01/2022
1/1/2022 12:00:00 AM
4/16/2022
01/01/2022
1/1/2022 12:00:00 AM
5/1/2022
03/01/2022
3/1/2022 12:00:00 AM
5/7/2022
03/01/2022
3/1/2022 12:00:00 AM
5/22/2022
03/01/2022
3/1/2022 12:00:00 AM
6/15/2022
03/01/2022
3/1/2022 12:00:00 AM
6/26/2022
03/01/2022
3/1/2022 12:00:00 AM
7/9/2022
05/01/2022
5/1/2022 12:00:00 AM
7/22/2022
05/01/2022
5/1/2022 12:00:00 AM
7/23/2022
05/01/2022
5/1/2022 12:00:00 AM
7/27/2022
05/01/2022
5/1/2022 12:00:00 AM
8/2/2022
05/01/2022
5/1/2022 12:00:00 AM
8/8/2022
05/01/2022
5/1/2022 12:00:00 AM
8/19/2022
05/01/2022
5/1/2022 12:00:00 AM
9/26/2022
07/01/2022
7/1/2022 12:00:00 AM
10/14/2022
07/01/2022
7/1/2022 12:00:00 AM
10/29/2022
07/01/2022
7/1/2022 12:00:00 AM
Door -1 als het period_no-argument in de monthsstart()-functie te gebruiken, nadat een jaar eerst in tweemaandelijkse segmenten is verdeeld, retourneert de functie de eerste milliseconde van het vorige tweemaandelijkse segment ten opzichte van wanneer een transactie plaatsvindt.
Transactie 8195 vindt plaats in het segment tussen mei en juni. Daarom was het vorige tweemaandelijkse segment tussen 1 maart en 30 april waardoor de functie de eerste milliseconde van dit segment retourneert: 1 maart 2022 om 12:00:00 AM.
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:
Dezelfde gegevensset en het scenario uit het eerste voorbeeld.
Het maken van een veld, bi_monthly_start, dat transacties groepeert in tweemaandelijkse segmenten en de begintijdstempel van de set voor elke transactie retourneert.
In dit voorbeeld moeten we echter ook april instellen als 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
bi_monthly_start
bi_monthly_start_timestamp
Resultatentabel
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
02/01/2022
2/1/2022 12:00:00 AM
3/7/2022
02/01/2022
2/1/2022 12:00:00 AM
3/30/2022
02/01/2022
2/1/2022 12:00:00 AM
4/5/2022
04/01/2022
4/1/2022 12:00:00 AM
4/16/2022
04/01/2022
4/1/2022 12:00:00 AM
5/1/2022
04/01/2022
4/1/2022 12:00:00 AM
5/7/2022
04/01/2022
4/1/2022 12:00:00 AM
5/22/2022
04/01/2022
4/1/2022 12:00:00 AM
6/15/2022
06/01/2022
6/1/2022 12:00:00 AM
6/26/2022
06/01/2022
6/1/2022 12:00:00 AM
7/9/2022
06/01/2022
6/1/2022 12:00:00 AM
7/22/2022
06/01/2022
6/1/2022 12:00:00 AM
7/23/2022
06/01/2022
6/1/2022 12:00:00 AM
7/27/2022
06/01/2022
6/1/2022 12:00:00 AM
8/2/2022
08/01/2022
8/1/2022 12:00:00 AM
8/8/2022
08/01/2022
8/1/2022 12:00:00 AM
8/19/2022
08/01/2022
8/1/2022 12:00:00 AM
9/26/2022
08/01/2022
8/1/2022 12:00:00 AM
10/14/2022
10/01/2022
10/1/2022 12:00:00 AM
10/29/2022
10/01/2022
10/1/2022 12:00:00 AM
Door 4 te gebruiken als het first_month_of_year-argument in de monthsstart()-functie, begint de functie het jaar op 1 april. Het verdeelt vervolgens het jaar in tweemaandelijkse segmenten: apr-mei,jun-jul,aug-sep,okt-nov,dec-jan,feb-mrt.
Transactie 8195 vond plaats op 22 mei en valt in het segment tussen 1 april en 31 mei. Daarom retourneert de functie de eerste milliseconde van dit segment: 1 april 2022 om 12:00:00 AM.
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 transacties groepeert in tweemaandelijkse segmenten en de begintijdstempel van de set retourneert voor elke transactie wordt gemaakt als een meting in een diagramobject van de applicatie.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Maak de volgende metingen:
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
Deze berekeningen halen de begintijdstempel op van het tweemaandelijkse segment waarin iedere transactie plaatsvond.
Resultatentabel
date
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
2/19/2022
01/01/2022
1/1/2021 12:00:00 AM
Transactie 8195 vond plaats op 22 mei. De functie monthsstart() verdeelt het jaar in eerste instantie in tweemaandelijkse segmenten. Transactie 8195 valt in het segment tussen 1 mei en 30 juni. Daarom retourneert de functie de eerste milliseconde van dit segment: 05/01/2022 om 12:00:00 AM.
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 met een set leningsaldo's die wordt geladen in de tabel Loans.
Gegevens bestaan uit lening-id's, het saldo aan het begin van de maand en de enkelvoudige rente die op iedere lening per jaar wordt berekend.
De eindgebruiker wil een diagramobject dat per lening-id de huidige rente weergeeft die is opgebouwd voor de door de gebruiker geselecteerde periode. Het boekjaar begint in januari.
Aan het begin van het load-script is een variabele (vPeriod) gemaakt die wordt gekoppeld aan het besturingselement voor variabeleninvoer. Configureer vervolgens de variabele als een aangepast object in het werkblad.
Doe het volgende:
Klik in het bedrijfsmiddelenvenster op Aangepaste objecten.
Selecteer Qlik Dashboard-bundel en maak een object Variabeleninvoer.
Voer een titel in voor het diagramobject.
Selecteer onder Variabele de optie vPeriod als de naam en stel het object in om als een Vervolgkeuzelijst te worden weergegeven.
Configureer onder Waarden het object om dynamische waarden te gebruiken. Voer het volgende in: ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'
Maak vervolgens de resultatentabel.
Doe het volgende:
Maak een nieuwe tabel. Voeg de volgende velden als dimensies toe.
employee_id
employee_name
Maak een meting om de opgebouwde rente te berekenen:
Stel de Getalnotatie van de meting in op Geld. Klik op Klaar met bewerken. U kunt nu de gegevens in de tabel wijzigen door het tijdsegment in het variabele-object aan te passen.
Dit is hoe de resultatentabel eruit zal zien als de periodeoptie month is geselecteerd:
De monthsstart()-functie maakt gebruik van de invoer van de gebruiker als het eerste argument en de datum van vandaag als het tweede argument om de begindatum van de door gebruiker geselecteerde periode te retourneren. Door dat resultaat af te trekken van de huidige datum, retourneert de uitdrukking het aantal dagen dat in deze periode tot nu toe is verstreken.
Deze waarde wordt vervolgens vermenigvuldigd met het rentepercentage en gedeeld door 365 om het effectieve rentepercentage voor deze periode te retourneren. Het resultaat wordt vervolgens vermenigvuldigd met het beginsaldo van de lening om de rente terug te betalen die deze periode tot nu toe is opgebouwd.
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!