Deze functie retourneert een waarde die overeenkomt met de tijdstempel van de laatste milliseconde van de periode van een maand, twee maanden, kwartaal, vier maanden of half jaar die een basisdatum bevat. Het is tevens mogelijk om de tijdstempel voor het eind van een voorafgaande of volgende tijdsperiode te bepalen. De standaarduitvoernotatie is de DateFormat die is ingesteld in het script.
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.
De functie monthsend() 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 laatste milliseconde van dat segment in datumnotitie. De functie kan de eindtijdstempel retourneren van voorgaande of volgende segmenten en kan de eerste maand van het jaar opnieuw instellen.
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 gebruikt u monthsend
De monthsend()-functie wordt gebruikt als onderdeel van een uitdrukking als de gebruiker wil dat in de berekening het deel van de maand wordt gebruikt dat al is geweest. De gebruiker heeft de mogelijkheid om met gebruik van een variabele, de gewenste periode te selecteren. De monthsend()-functie kan bijvoorbeeld een invoervariabele geven waarmee de gebruiker de totale hoeveelheid rente kan berekenen die nog niet is opgebouwd gedurende de maand, het kwartaal of het halve jaar.
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.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
bi_monthly_end
bi_monthly_end_timestamp
Resultatentabel
id
date
bi_monthly_end
bi_monthly_end_timestamp
8188
1/7/2022
02/28/2022
2/28/2022 11:59:59 PM
8189
1/19/2022
02/28/2022
2/28/2022 11:59:59 PM
8190
2/5/2022
02/28/2022
2/28/2022 11:59:59 PM
8191
2/28/2022
02/28/2022
2/28/2022 11:59:59 PM
8192
3/16/2022
04/30/2022
4/30/2022 11:59:59 PM
8193
4/1/2022
04/30/2022
4/30/2022 11:59:59 PM
8194
5/7/2022
06/30/2022
6/30/2022 11:59:59 PM
8195
5/22/2022
06/30/2022
6/30/2022 11:59:59 PM
8196
6/15/2022
06/30/2022
6/30/2022 11:59:59 PM
8197
6/26/2022
06/30/2022
6/30/2022 11:59:59 PM
8198
7/9/2022
08/31/2022
8/31/2022 11:59:59 PM
8199
7/22/2022
08/31/2022
8/31/2022 11:59:59 PM
8200
7/23/2022
08/31/2022
8/31/2022 11:59:59 PM
8201
7/27/2022
08/31/2022
8/31/2022 11:59:59 PM
8202
8/2/2022
08/31/2022
8/31/2022 11:59:59 PM
8203
8/8/2022
08/31/2022
8/31/2022 11:59:59 PM
8204
8/19/2022
08/31/2022
8/31/2022 11:59:59 PM
8205
9/26/2022
10/31/2022
10/31/2022 11:59:59 PM
8206
10/14/2022
10/31/2022
10/31/2022 11:59:59 PM
8207
10/29/2022
10/31/2022
10/31/2022 11:59:59 PM
Het veld bi_monthly_end wordt gemaakt in de vorige load-instructie met behulp van de functie monthsend(). Het eerste opgegeven argument is 2, waarbij het jaar wordt verdeeld in tweemaandelijkse segmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd.
Diagram van de monthsend-functie met tweemaandelijkse segmenten.
Transactie 8195 vindt plaats op 22 mei. De functie monthsend() verdeelt het jaar in eerste instantie in tweemaandelijkse segmenten. Transactie 8195 valt in het segment tussen 1 mei en 30 juni. Het resultaat is dat de functie de laatste milliseconde van dit segment retourneert: 06/30/2022 11:59:59 PM.
Voorbeeld 2 – period_no
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld wordt een veld gemaakt, prev_bi_monthly_end, 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:
id
date
prev_bi_monthly_end
prev_bi_monthly_end_timestamp
Resultatentabel
id
date
prev_bi_monthly_end
prev_bi_monthly_end_timestamp
8188
1/7/2022
12/31/2021
12/31/2021 11:59:59 PM
8189
1/19/2022
12/31/2021
12/31/2021 11:59:59 PM
8190
2/5/2022
12/31/2021
12/31/2021 11:59:59 PM
8191
2/28/2022
12/31/2021
12/31/2021 11:59:59 PM
8192
3/16/2022
02/28/2022
2/28/2022 11:59:59 PM
8193
4/1/2022
02/28/2022
2/28/2022 11:59:59 PM
8194
5/7/2022
04/30/2022
4/30/2022 11:59:59 PM
8195
5/22/2022
04/30/2022
4/30/2022 11:59:59 PM
8196
6/15/2022
04/30/2022
4/30/2022 11:59:59 PM
8197
6/26/2022
04/30/2022
4/30/2022 11:59:59 PM
8198
7/9/2022
06/30/2022
6/30/2022 11:59:59 PM
8199
7/22/2022
06/30/2022
6/30/2022 11:59:59 PM
8200
7/23/2022
06/30/2022
6/30/2022 11:59:59 PM
8201
7/27/2022
06/30/2022
6/30/2022 11:59:59 PM
8202
8/2/2022
06/30/2022
6/30/2022 11:59:59 PM
8203
8/8/2022
06/30/2022
6/30/2022 11:59:59 PM
8204
8/19/2022
06/30/2022
6/30/2022 11:59:59 PM
8205
9/26/2022
08/31/2022
8/31/2022 11:59:59 PM
8206
10/14/2022
08/31/2022
8/31/2022 11:59:59 PM
8207
10/29/2022
08/31/2022
8/31/2022 11:59:59 PM
Door -1 als het period_no-argument in de monthsend()-functie te gebruiken, nadat een jaar eerst in tweemaandelijkse segmenten is verdeeld, retourneert de functie de laatste milliseconde van het vorige tweemaandelijkse segment ten opzichte van wanneer een transactie plaatsvindt.
Diagram van de monthsend-functie die het vorige tweemaandelijkse segment retourneert.
Transactie 8195 vindt plaats in het segment tussen mei en juni. Het resultaat is dat het vorige tweemaandelijkse segment tussen 1 maart en 30 april ligt en de functie daarom de laatste milliseconde van dit segment retourneert: 04/30/2022 11:59:59 PM.
Voorbeeld 3 – first_month_of_year
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is april volgens het organisatiebeleid de eerste maand van het financiële boekjaar.
Maak een veld, bi_monthly_end, dat transacties groepeert in tweemaandelijkse segmenten en de laatste milliseconde-tijdstempel 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:
id
date
bi_monthly_end
bi_monthly_end_timestamp
Resultatentabel
id
date
bi_monthly_end
bi_monthly_end_timestamp
8188
1/7/2022
01/31/2022
1/31/2022 11:59:59 PM
8189
1/19/2022
01/31/2022
1/31/2022 11:59:59 PM
8190
2/5/2022
03/31/2022
3/31/2022 11:59:59 PM
8191
2/28/2022
03/31/2022
3/31/2022 11:59:59 PM
8192
3/16/2022
03/31/2022
3/31/2022 11:59:59 PM
8193
4/1/2022
05/31/2022
5/31/2022 11:59:59 PM
8194
5/7/2022
05/31/2022
5/31/2022 11:59:59 PM
8195
5/22/2022
05/31/2022
5/31/2022 11:59:59 PM
8196
6/15/2022
07/31/2022
7/31/2022 11:59:59 PM
8197
6/26/2022
07/31/2022
7/31/2022 11:59:59 PM
8198
7/9/2022
07/31/2022
7/31/2022 11:59:59 PM
8199
7/22/2022
07/31/2022
7/31/2022 11:59:59 PM
8200
7/23/2022
07/31/2022
7/31/2022 11:59:59 PM
8201
7/27/2022
07/31/2022
7/31/2022 11:59:59 PM
8202
8/2/2022
09/30/2022
9/30/2022 11:59:59 PM
8203
8/8/2022
09/30/2022
9/30/2022 11:59:59 PM
8204
8/19/2022
09/30/2022
9/30/2022 11:59:59 PM
8205
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
8206
10/14/2022
11/30/2022
11/30/2022 11:59:59 PM
8207
10/29/2022
11/30/2022
11/30/2022 11:59:59 PM
Door 4 te gebruiken als het first_month_of_year-argument in de monthsend()-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.
Diagram van functie monthsend met april ingesteld als de eerste maand van het jaar.
Transactie 8195 vond plaats op 22 mei en valt in het segment tussen 1 april en 31 mei. Het resultaat is dat de functie de laatste milliseconde van dit segment retourneert: 05/31/2022 11:59:59 PM.
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 app geladen.
In dit voorbeeld is de taak om een berekening te maken die transacties groepeert in tweemaandelijkse segmenten en de laatste milliseconde-tijdstempel van het segment voor iedere transactie retourneert als een meting in een diagramobject van een app.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:
date
Maak de volgende metingen om de laatste milliseconde-tijdstempel van het tweemaandelijkse segment waarin de transactie plaatsvond op te halen:
=monthsEnd(2,date)
=timestamp(monthsend(2,date))
Resultatentabel
id
date
=monthsend(2,date)
=timestamp(monthsend(2,date))
8188
1/7/2022
02/28/2022
2/28/2022 11:59:59 PM
8189
1/19/2022
02/28/2022
2/28/2022 11:59:59 PM
8190
2/5/2022
02/28/2022
2/28/2022 11:59:59 PM
8191
2/28/2022
02/28/2022
2/28/2022 11:59:59 PM
8192
3/16/2022
04/30/2022
4/30/2022 11:59:59 PM
8193
4/1/2022
04/30/2022
4/30/2022 11:59:59 PM
8194
5/7/2022
06/30/2022
6/30/2022 11:59:59 PM
8195
5/22/2022
06/30/2022
6/30/2022 11:59:59 PM
8196
6/15/2022
06/30/2022
6/30/2022 11:59:59 PM
8197
6/26/2022
06/30/2022
6/30/2022 11:59:59 PM
8198
7/9/2022
08/31/2022
8/31/2022 11:59:59 PM
8199
7/22/2022
08/31/2022
8/31/2022 11:59:59 PM
8200
7/23/2022
08/31/2022
8/31/2022 11:59:59 PM
8201
7/27/2022
08/31/2022
8/31/2022 11:59:59 PM
8202
8/2/2022
08/31/2022
8/31/2022 11:59:59 PM
8203
8/8/2022
08/31/2022
8/31/2022 11:59:59 PM
8204
8/19/2022
08/31/2022
8/31/2022 11:59:59 PM
8205
9/26/2022
10/31/2022
10/31/2022 11:59:59 PM
8206
10/14/2022
10/31/2022
10/31/2022 11:59:59 PM
8207
10/29/2022
10/31/2022
10/31/2022 11:59:59 PM
Het veld bi_monthly_end wordt in een diagramobject gemaakt als een meting met behulp van de functie monthsend(). Het eerste opgegeven argument is 2, dat het jaar verdeelt in tweemaandelijkse segmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd.
Diagram van de monthsend-functie met tweemaandelijkse segmenten.
Transactie 8195 vindt plaats op 22 mei. De functie monthsend() verdeelt het jaar in eerste instantie in tweemaandelijkse segmenten. Transactie 8195 valt in het segment tussen 1 mei en 30 juni. Het resultaat is dat de functie de eerste milliseconde van dit segment retourneert: 06/30/2022 11:59:59 PM.
Voorbeeld 5 – Scenario
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
In dit voorbeeld wordt een gegevensset geladen in de tabel ‘Employee_Expenses’. De tabel bevat de volgende velden:
Werknemers-id's
Werknemersnamen
De gemiddelde dagelijkse onkostendeclaraties van elke werknemer.
De eindgebruiker wil graag een diagram dat per werknemer-id en werknemersnaam de geschatte onkostendeclaraties voor de rest van een periode naar keuze weergeeft. Het boekjaar begint in januari.
De monthsend()-functie gebruikt de invoer van de gebruiker als het eerste argument en de datum van vandaag als het tweede argument. Dit retourneert de einddatum voor de door de gebruiker geselecteerde tijdperiode. De uitdrukking retourneert vervolgens het aantal dagen dat nog resteert in de geselecteerde periode door de datum van vandaag af te trekken van deze einddatum.
Deze waarde wordt vervolgens vermenigvuldigd met de gemiddelde dagelijkse onkostendeclaratie van elke werknemer om de geschatte waarde te berekenen van de declaraties die elke werknemer naar verwachting in de resterende dagen van deze periode zal indienen.
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een tikfout, een ontbrekende stap of een technische fout – laat het ons weten!