# monthsend - Skript- und Diagrammfunktion

Diese Funktion gibt einen Wert zurück, der einem Zeitstempel für die letzte Millisekunde im Monat, Zweimonatszeitraum, Quartal, Viermonatszeitraum oder Halbjahr entspricht, in dem ein Basisdatum liegt. Es lässt sich auch der Zeitstempel für das Ende eines vorhergehenden oder nachfolgenden Zeitraums bestimmen. Das Ergebnis wird entsprechend dem im Skript definierten `DateFormat` formatiert.

Syntax:

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

Rückgabe Datentyp: dual

Diagramm der Funktion `monthsend`.

Diagramm der Funktion `monthsend`.

Diagramm der Funktion `monthsend`monthsend. ![Das Diagramm zeigt, wie die Funktion „monthsend“ verwendet werden kann, um den letzten Zeitstempel eines ausgewählten Zeitraums zu identifizieren.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-diagram1.png)

Argumente

| Argument | Beschreibung |
| --- | --- |
| n\_months | Die Anzahl der Monate, die den Zeitraum definiert. Eine Ganzzahl oder eine Formel, die eine Ganzzahl mit einem der folgenden Werte ergibt: 1 (entspricht der Funktion inmonth()), 2 (Zweimonatszeitraum), 3 (entspricht der Funktion inquarter()), 4 (Viermonatszeitraum) oder 6 (Halbjahr). |
| date | Datum oder Zeitstempel für die Evaluierung. |
| period\_no | Mit period\_no, einer ganze Zahl oder einer Formel, die eine ganze Zahl ergibt, kann ein anderer Beginn für den Zeitraum festgelegt werden, wobei 0 für den Zeitraum steht, der base\_date enthält. Negative Werte von period\_no stehen für vorangehende, positive Werte für nachfolgende Zeiträume. |
| first\_month\_of\_year | Wenn Sie mit abweichenden Geschäftsjahren arbeiten möchten, definieren Sie mit einer Zahl zwischen 2 und 12 für first\_month\_of\_year einen anderen Startmonat. |

Die Funktion `monthsend()` unterteilt das Jahr in Segmente, gestützt auf das angegebene Argument `n_months`. Dann wertet sie aus, in welches Segment jedes angegebene Datum fällt, und gibt die letzte Millisekunde dieses Segments im Datumsformat zurück. Die Funktion kann den Endzeitstempel von vorherigen oder nachfolgenden Segmenten zurückgeben und den ersten Monat des Jahres neu definieren.

Die folgenden Segmente des Jahres sind in der Funktion als Argumente `n_month`verfügbar.

Argumente `n_month`n\_month

| Zeitraum | Anzahl der Monate |
| --- | --- |
| Monat | 1 |
| Zweimonatszeitraum | 2 |
| Quartal | 3 |
| Viermonatszeitraum | 4 |
| Halbjahr | 6 |

Verwendung

Die Funktion `monthsend()` wird als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Monats verwendet werden soll, der bereits verstrichen ist. Der Benutzer kann anhand einer Variablen den gewünschten Zeitraum auswählen. Beispielsweise kann `monthsend()` eine Eingabevariable angeben, mit der der Benutzer die gesamten während des Monats, Quartals oder Halbjahres noch nicht angefallenen Zinsen berechnen kann.

## Regionaleinstellungen

Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung `SET DateFormat` in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern.

Die standardmäßigen regionalen Einstellungen in Apps basieren auf den regionalen Systemeinstellungen der Computer oder Server, auf denen Qlik Sense installiert ist. Wenn der Qlik Sense-Server, auf den Sie zugreifen, auf Schweden festgelegt ist, verwendet der Dateneditor die schwedischen regionalen Einstellungen für Datums-, Uhrzeit- und Währungsangaben. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Sense angezeigt wird. Qlik Sense wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `monthsend(4, '07/19/2013')` | Gibt 08/31/2013 zurück. |
| `monthsend(4, '10/19/2013', -1)` | Gibt 08/31/2013 zurück. |
| `monthsend(4, '10/19/2013', 0, 2)` | Gibt 01/31/2014 zurück.<br>Weil der Start des Jahres auf den Monat 2 verschoben wird. |

## Beispiel 1 – einfaches Beispiel

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

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Ein Datensatz, der eine Reihe von Transaktionen für 2022 enthält, wird in eine Tabelle namens „`Transactions`“ geladen.

* Datumsfeld, das im Format `(MM/DD/YYYY)` der Systemvariablen `DateFormat` bereitgestellt wird.

* Ein vorangehender load-Befehl, der Folgendes enthält:

  * Die Funktion `monthsend`, die als Feld „`bi_monthly_end`“ festgelegt ist. Damit werden Transaktionen in Zweimonatssegmente gruppiert.

  * Die Funktion `timestamp`, die den Startzeitstempel des Segments für jede Transaktion zurückgibt.

Ladeskript

```
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 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

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

Ergebnistabelle

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

Das Feld „`bi_monthly_end`“ wird in der vorangehenden load-Anweisung mithilfe der Funktion `monthsend()` erstellt. Das erste angegebene Argument ist `2`. Damit wird das Jahr in Zweimonatssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird.

Diagramm der Funktion `monthsend` mit Zweimonatssegmenten.

Diagramm der Funktion `monthsend` mit Zweimonatssegmenten.

Diagramm der Funktion `monthsend`monthsend mit Zweimonatssegmenten.![Das Diagramm zeigt, wie die Funktion „monthsend“ das ausgewählte Zweimonatssegment identifiziert.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example1-diagram.png)

Transaktion 8195 findet am 22. Mai statt. Die Funktion `monthsend()` unterteilt das Jahr zunächst in Zweimonatssegmente. Transaktion 8195 fällt in das Segment zwischen dem 1. Mai und dem 30. Juni. Als Ergebnis gibt die Funktion die letzte Millisekunde dieses Segments zurück, 06/30/2022 11:59:59 PM.

## Beispiel 2 – period\_no

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

#### Ladeskript und Ergebnisse

Übersicht

Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel besteht die Aufgabe darin, ein Feld „`prev_bi_monthly_end`“ zu erstellen, das die erste Millisekunde des Zweimonatssegments zurückgibt, bevor die Transaktion stattfand.

Ladeskript

```
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 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

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

Ergebnistabelle

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

Da `-1` als Argument `period_no` in der Funktion `monthsend()` verwendet wird, gibt die Funktion, nachdem ein Jahr zunächst in Zweimonatssegmente unterteilt wurde, die letzte Millisekunde des vorherigen Zweimonatssegments vor einer Transaktion zurück.

Diagramm der Funktion `monthsend`, die das vorherige Zweimonatssegment zurückgibt.

Diagramm der Funktion `monthsend`, die das vorherige Zweimonatssegment zurückgibt.

Diagramm der Funktion `monthsend`monthsend, die das vorherige Zweimonatssegment zurückgibt.![Diagramm der Funktion „monthsend“ mit einer „period_no“ von minus eins, die das vorherige Zweimonatssegment zurückgibt.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example2-diagram.png)

Transaktion 8195 fällt in das Segment zwischen dem Mai und Juni. Infolgedessen lag das Zweimonatssegment zwischen dem 1. März und dem 30. April, und die Funktion gibt die letzte Millisekunde dieses Segments zurück, 04/30/2022 11:59:59 PM.

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

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

#### Ladeskript und Ergebnisse

Übersicht

Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel legt die Organisationsrichtlinie fest, dass April der erste Monat des Geschäftsjahres ist.

Es wird ein Feld „`bi_monthly_end`“, das Transaktionen in Zweimonatssegmenten gruppiert und den Zeitstempel für die letzte Millisekunde des Segments für jede Transaktion zurückgibt.

Ladeskript

```
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 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

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

Ergebnistabelle

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

Indem `4` als Argument `first_month_of_year` in der Funktion `monthsend()` verwendet wird, beginnt die Funktion das Jahr am 1. April und unterteilt es dann in Zweimonatssegmente: Apr–Mai, Jun–Jul, Aug–Sep, Okt–Nov, Dez–Jan, Feb–Mär.

Diagramm der Funktion `monthsend` mit April als erstem Monat des Jahres.

Diagramm der Funktion `monthsend` mit April als erstem Monat des Jahres.

Diagramm der Funktion `monthsend`monthsend mit April als erstem Monat des Jahres.![Diagramm der Funktion „monthsend“ mit Zweimonatssegmenten und April als erstem Monat des Jahres.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example3-diagram.png)

Transaktion 8195 fand am 22. Mai statt und fällt in das Segment zwischen dem 1. April und dem 31. Mai. Als Ergebnis gibt die Funktion die letzte Millisekunde dieses Segments zurück, 05/31/2022 11:59:59 PM.

## Beispiel 4 – Diagrammobjektbeispiel

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

#### Ladeskript und Diagrammformel

Übersicht

Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet. In diesem Beispiel wird jedoch der unveränderte Datensatz in die App geladen.

In diesem Beispiel besteht die Aufgabe darin, eine Berechnung zu erstellen, die Transaktionen in Zweimonatssegmenten gruppiert und den Zeitstempel für die letzte Millisekunde des Segments für jede Transaktion als Kennzahl in einem Diagrammobjekt für eine App zurückgibt.

Ladeskript

```
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 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

`date`

Um den Zeitstempel für die letzte Millisekunde des Zweimonatssegments abzurufen, in dem die Transaktion stattfand, erstellen Sie die folgenden Kennzahlen

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

Ergebnistabelle

| ID | Datum | =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 |

Das Feld „`bi_monthly_end`“ wird als Kennzahl im Diagrammobjekt mithilfe der Funktion `monthsend()` erstellt. Das erste angegebene Argument ist `2`. Damit wird das Jahr in Zweimonatssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird.

Diagramm der Funktion `monthsend` mit Zweimonatssegmenten.

Diagramm der Funktion `monthsend` mit Zweimonatssegmenten.

Diagramm der Funktion `monthsend`monthsend mit Zweimonatssegmenten.![Das Diagramm zeigt, wie die Funktion „monthsend“ das ausgewählte Zweimonatssegment mithilfe eines Diagrammobjekts identifiziert.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-MonthsEnd-example4-diagram.png)

Transaktion 8195 findet am 22. Mai statt. Die Funktion `monthsend()` unterteilt das Jahr zunächst in Zweimonatssegmente. Transaktion 8195 fällt in das Segment zwischen dem 1. Mai und dem 30. Juni. Als Ergebnis gibt die Funktion die erste Millisekunde dieses Segments zurück, 06/30/2022 11:59:59 PM.

## Beispiel 5 – Szenario

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

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

In diesem Beispiel wird ein Datensatz in eine Tabelle namens „Employee\_Expenses“ geladen. Die Tabelle enthält die folgenden Felder:

* Mitarbeiter-IDs

* Mitarbeiternamen

* Die durchschnittlichen täglichen Spesenanträge pro Mitarbeiter.

Der Endbenutzer möchte ein Diagramm, das nach Mitarbeiter-ID und Mitarbeiternamen die geschätzten Spesenanträge anzeigt, die für den Rest eines von ihm ausgewählten Zeitraums noch anfallen. Das Geschäftsjahr beginnt im Januar.

Ladeskript

```
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 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein neues Arbeitsblatt.

Am Beginn des Ladeskripts wurde eine Variable (vPeriod) erstellt, die an die Variableneingabesteuerung gebunden wird.

Gehen Sie folgendermaßen vor:

1. Klicken Sie im Extras-Fenster auf Benutzerdefinierte Objekte.

2. Wählen Sie Qlik Dashboard Bundle aus und erstellen Sie ein Objekt Variableneingabe.

3. Geben Sie einen Titel für das Diagrammobjekt ein.

4. Wählen Sie unter Variable den Eintrag vPeriod als den Namen aus und legen Sie das Objekt so fest, dass es als Dropdown angezeigt wird.

5. Klicken Sie unter Werte auf Dynamisch. Geben Sie Folgendes ein:

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

Erstellen Sie eine neue Tabelle und die folgenden Felder als Dimensionen:

* employee\_id

* employee\_name

Erstellen Sie die folgende Kennzahl, um die kumulierten Zinsen zu berechnen:

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

InformationshinweisDiese Kennzahl ist dynamisch und ergibt unterschiedliche Tabellenergebnisse, je nach dem Datum, an dem Sie die Daten laden.

Legen Sie das Zahlenformat der Kennzahl auf Währung fest.

Ergebnistabelle

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

Die Funktion monthsend() verwendet die Benutzereingabe als erstes Argument und das aktuelle Datum als zweites Argument. Damit wird das Enddatum für den vom Benutzer ausgewählten Zeitraum zurückgegeben. Dann gibt die Formel die Anzahl der im ausgewählten Zeitraum verbleibenden Tage zurück, indem das aktuelle Datum vom betreffenden Enddatum abgezogen wird.

Dieser Wert wird dann mit den durchschnittlichen täglichen Spesenanträgen der einzelnen Mitarbeitern multipliziert, um den geschätzten Spesenbetrag pro Mitarbeiter für die verbleibenden Tage des Zeitraums zu berechnen.