# monthsend - skript- och diagramfunktion

Denna funktion returnerar ett värde som motsvarar en tidsmarkör för den sista millisekunden i månaden, tvåmånadersperioden, kvartalet, fyramånadersperioden eller halvåret som innehåller ett basdatum. Det går även att hitta tidsmarkören för slutet av en föregående eller senare tidsperiod. Det förvalda utdataformatet är det `DateFormat` som har definierats i skriptet.

Syntax:

MonthsEnd(n\_months, date[, period\_no [, first\_month\_of\_year]])

Returnerad datatyp: dual

Diagram för `monthsend`-funktionen.

Diagram för `monthsend`-funktionen.

Diagram för `monthsend`monthsend-funktionen. ![Diagram som visar hur monthsend-funktionen kan användas för att identifiera den sista tidsmarkören i en vald period.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-diagram1.png)

Argument

| Argument | Beskrivning |
| --- | --- |
| n\_months | Antalet månader som definierar perioden. Ett heltal eller uttryck vars resultat blir ett heltal som ska vara antingen: 1 (motsvaras av inmonth()-funktionen), 2 (tvåmånadersperiod), 3 (motsvaras av inquarter()-funktionen), 4 (fyramånadersperiod) eller 6 (halvår). |
| date | Det datum eller den tidsmarkör som ska utvärderas. |
| period\_no | Periodens startpunkt kan flyttas med period\_no, ett heltal, eller ett uttryck som resulterar i ett heltal, där värdet 0 anger den period som innehåller base\_date. Negativa värden i period\_no anger föregående perioder och positiva värden anger efterföljande perioder. |
| first\_month\_of\_year | Om du vill arbeta med (budget)år som inte börjar i januari kan du ange ett värde mellan 2 och 12 i first\_month\_of\_year. |

`monthsend()`-funktionen delar in året i segment baserat på det `n_months`-argument som tillhandahålls. Den utvärderar sedan vilket segment som varje tillhandahållet datum infaller och returnerar den sista millisekunden, i datumformat, för det segmentet. Funktionen kan returnera sluttidsmarkören från föregående eller följande segment och omdefiniera årets första månad.

Följande segment av året är tillgängliga i funktionen som `n_month`-argument:

`n_month`n\_month-argument

| Period | Antal månader |
| --- | --- |
| månad | 1 |
| två månader | 2 |
| kvartal | 3 |
| fyra månader | 4 |
| halvår | 6 |

Användning

`monthsend()`-funktionen används som en del av ett uttryck när användaren vill att beräkningen ska använda den del av månaden som har förflutit hittills. Användaren har möjlighet att välja önskad period genom att använda en variabel. `monthsend()` kan exempelvis tillhandahålla en inmatningsvariabel som ger användaren möjlighet att beräkna den totala räntan som ännu inte uppkommit under månaden, kvartalet eller halvåret.

## Lokala inställningar

Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/ÅÅÅÅ. Datumformatet anges i `SET DateFormat`-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel.

Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.

Exempel på funktioner

| Exempel | Resultat |
| --- | --- |
| `monthsend(4, '07/19/2013')` | Returnerar 08/31/2013. |
| `monthsend(4, '10/19/2013', -1)` | Returnerar 08/31/2013. |
| `monthsend(4, '10/19/2013', 0, 2)` | Returnerar 01/31/2014.<br>Eftersom årets start blir månad 2. |

## Exempel 1 – Grundläggande exempel

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.htm)

#### Laddningsskript och resultat

Översikt

Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.

Laddningsskriptet innehåller:

* En datauppsättning som innehåller en uppsättning transaktioner för 2022 laddas i en tabell som heter `Transactions`.

* Ett datumfält som anges i `DateFormat`-systemvariabeln i formatet `(MM/DD/YYYY)`.

* En föregående LOAD-sats som innehåller följande:

  * `monthsend`-funktionen som är inställd som `bi_monthly_end`-fält. Detta grupperar transaktioner i segment om två månader.

  * `timestamp`-funktionen som returnerar starttidsmarkören för segmentet för varje transaktion.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
    *, 
    monthsend(2,date) as bi_monthly_end, 
    timestamp(monthsend(2,date)) as bi_monthly_end_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/22/2022,87.21 
8196,6/15/2022,95.93
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `id`
* `date`
* `bi_monthly_end`
* `bi_monthly_end_timestamp`

Resultattabell

| 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 |

`bi_monthly_end`-fältet skapas i föregående LOAD-sats med hjälp av funktionen `monthsend()`. Det första argumentet som tillhandahålls är `2`, som delar upp året i tvåmånaderssegment. Det första argumentet som anges identifierar vilket fält som utvärderas.

Diagram för `monthsend`-funktionen med tvåmånaderssegment.

Diagram för `monthsend`-funktionen med tvåmånaderssegment.

Diagram för `monthsend`monthsend-funktionen med tvåmånaderssegment.![Diagram som visar hur monthsend-funktionen identifierar det valda tvåmånaderssegmentet.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example1-diagram.png)

Transaktion 8195 äger rum den 22 maj. `monthsend()`-funktionen delar initialt upp året i tvåmånaderssegment. Transaktion 8195 infaller i segmentet mellan 1 maj och 30 juni. Resultatet blir att funktionen returnerar den sista millisekunden i det här segmentet, 2022-06-30, 23:59:59.

## Exempel 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.htm)

#### Laddningsskript och resultat

Översikt

Samma datauppsättning och scenario som det första exemplet används.

I det här exemplet är uppgiften att skapa ett fält, `prev_bi_monthly_end`, som returnerar den första millisekunden i tvåmånaderssegmentet innan transaktionen ägde rum.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
    *, 
    monthsend(2,date,-1) as prev_bi_monthly_end, 
    timestamp(monthsend(2,date,-1)) as prev_bi_monthly_end_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/22/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `id`
* `date`
* `prev_bi_monthly_end`
* `prev_bi_monthly_end_timestamp`

Resultattabell

| 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 |

Genom att använda `-1` som `period_no`-argument i `monthsend()`-funktionen, efter att initialt ha delat upp ett år i tvåmånaderssegment, returnerar funktionen den sista millisekunden i det föregående tvåmånaderssegmentet till när en transaktion äger rum.

Diagram för `monthsend`-funktion som returnerar det föregående tvåmånaderssegmentet.

Diagram för `monthsend`-funktion som returnerar det föregående tvåmånaderssegmentet.

Diagram för `monthsend`monthsend-funktion som returnerar det föregående tvåmånaderssegmentet.![Diagram för monthsend-funktion med ett period_no som är negativt ett, vilket returnerar det föregående tvåmånaderssegmentet.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example2-diagram.png)

Transaktion 8195 faller in i segmentet mellan maj och juni. Resultatet blir att det föregående tvåmånaderssegmentet var mellan 1 mars och 30 april och att funktionen returnerar den sista millisekunden i detta segment, 2022-04-30 23:59:59.

## Exempel 3 – first\_month\_of\_year

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.htm)

#### Laddningsskript och resultat

Översikt

Samma datauppsättning och scenario som det första exemplet används.

I det här exemplet är organisationspolicyn att april är den första månaden i räkenskapsåret.

Skapa ett fält, `bi_monthly_end`, som grupperar transaktioner i tvåmånaderssegment och returnerar tidsmarkören för den sista millisekunden i segmentet för varje transaktion.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    monthsend(2,date,0,4) as bi_monthly_end, 
    timestamp(monthsend(2,date,0,4)) as bi_monthly_end_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/22/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `id`
* `date`
* `bi_monthly_end`
* `bi_monthly_end_timestamp`

Resultattabell

| 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 |

Genom att använda `4` som `first_month_of_year`-argument i `monthsend()`-funktionen startar funktionen året den 1 april och delar sedan upp året i tvåmånaderssegment: apr-maj, jun-jul, aug-sep, okt-nov, dec-jan, feb-mar.

Diagram för `monthsend`-funktionen med årets första månad inställd till april.

Diagram för `monthsend`-funktionen med årets första månad inställd till april.

Diagram för `monthsend`monthsend-funktionen med årets första månad inställd till april.![Diagram för monthsend-funktionen med tvåmånadssegment och april inställd som årets första månad.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example3-diagram.png)

Transaktion 8195 ägde rum den 22 maj och faller in i segmentet mellan 1 april och 31 maj. Resultatet blir att funktionen returnerar den sista millisekunden i det här segmentet, 2022-05-31 23.59.59.

## Exampel 4 – Diagramobjektexempel

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.htm)

#### Laddningsskript och diagramuttryck

Översikt

Samma datauppsättning och scenario som det första exemplet används. I det här exemplet är dock datauppsättningen oförändrad och har laddats i appen.

I det här exemplet är uppgiften att skapa en beräkning som grupperar transaktioner i tvåmånaderssegment och returnerar tidsmarkören för den sista millisekunden i segmentet för varje transaktion som ett mått i ett diagramobjekt för en app.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,2/19/2022,37.23 
8189,3/7/2022,17.17
8190,3/30/2022,88.27 
8191,4/5/2022,57.42 
8192,4/16/2022,53.80 
8193,5/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/22/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

`date`

För att hämta tidsmarkören för den sista millisekunden i det tvåmånaderssegment då transaktionen tog plats skapar du följande mått:

* `=monthsEnd(2,date)`
* `=timestamp(monthsend(2,date))`

Resultattabell

| 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 |

`bi_monthly_end`-fältet skapas som ett mått i diagramobjektet med hjälp av `monthsend()`-funktionen. Det första argumentet som tillhandahålls är `2`, som delar upp året i tvåmånaderssegment. Det första argumentet som anges identifierar vilket fält som utvärderas.

Diagram för `monthsend`-funktionen med tvåmånaderssegment.

Diagram för `monthsend`-funktionen med tvåmånaderssegment.

Diagram för `monthsend`monthsend-funktionen med tvåmånaderssegment.![Diagram som visar hur monthsend-funktionen identifierar det valda tvåmånaderssegmentet med hjälp av ett diagramobjekt.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example4-diagram.png)

Transaktion 8195 äger rum den 22 maj. `monthsend()`-funktionen delar initialt upp året i tvåmånaderssegment. Transaktion 8195 infaller i segmentet mellan 1 maj och 30 juni. Resultatet blir att funktionen returnerar den första millisekunden i det här segmentet, 2022-06-30 23.59.59.

## Exempel 5 – Scenario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsend.htm)

#### Laddningsskript och resultat

Översikt

Öppna skriptredigeraren och lägg till laddningsskriptet nedan i en ny flik.

I det här exemplet laddas en datauppsättning i en tabell som heter Employee\_Expenses. Tabellen innehåller följande fält:

* Anställnings-ID

* Anställdas namn

* Genomsnittliga dagliga kostnadsanspråk för varje anställd.

Slutanvändaren vill ha ett diagram som visar, efter anställnings-id och anställds namn, de beräknade kostnadsanspråken för resten av en vald period. Räkenskapsåret börjar i januari.

Laddningsskript

```
SET vPeriod = 1; 

Employee_Expenses: 
Load 
* 
Inline  
[ 
employee_id,employee_name,avg_daily_claim 
182,Mark, $15 
183,Deryck, $12.5  
184,Dexter, $12.5 
185,Sydney,$27 
186,Agatha,$18 
]; 
```

Resultat

Ladda data och öppna ett nytt ark.

I början av laddningsskriptet har en variabel, vPeriod, skapats som är kopplad till variabelinmatningskontrollen.

Gör följande:

1. Klicka på Anpassade objekti resurspanelen.

2. Välj Qlik instrumentpanelspaket och skapa ett variabelinmatningsobjekt.

3. Ange en titel för diagramobjektet.

4. Under Variabel väljer du vPeriod som namn och ställer in objektet så att det visas som en rullgardinsmeny.

5. Under Värden klickar du på Dynamiska värden. Ange följande:

   ```
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'.
   ```

Skapa en ny tabell och lägg till dessa fält som dimensioner:

* employee\_id

* employee\_name

För att beräkna ackumulerad ränta skapar du detta mått:

```
=floor(monthsend($(vPeriod),today(1))-today(1))*avg_daily_claim 
```

Anteckning om informationDet här måttet är dynamiskt och kommer att ge olika tabellresultat beroende på vilket datum du laddar uppgifterna.

Ange måttens Nummerformatering till Pengar.

Resultattabell

| employee\_id | employee\_name | =floor(monthsend($(vPeriod),today(1))-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Mark | $1410.00 |
| 183 | Deryck | $1175.00 |
| 184 | Dexter | $1175.00 |
| 185 | Sydney | $2538.00 |
| 186 | Agatha | $1692.00 |

monthsend()-funktionen använder användarinmatning som sitt första argument och dagens datum som sitt andra argument. Detta returnerar slutdatumet för den tidsperiod som användaren har valt. Uttrycket returnerar sedan antalet dagar som återstår i den valda perioden genom att subtrahera dagens datum från detta slutdatum.

Detta värde multipliceras sedan med det genomsnittliga dagliga kostnadsanspråket från varje anställd för att beräkna det uppskattade värdet av anspråk som varje anställd förväntas göra under de återstående dagarna i den här perioden.