# monthend - Skript- und Diagrammfunktion

Diese Funktion liefert den Zeitstempel der letzten Millisekunde des letzten Tags des Monats, in dem `date` liegt. Das Ergebnis wird entsprechend dem im Skript definierten `DateFormat` formatiert.

Syntax:

MonthEnd(date[, period\_no])

Die Funktion `monthend()` legt also fest, in welchen Monat das Datum fällt. Sie gibt dann einen Zeitstempel im Datumsformat für die letzte Millisekunde dieses Monats zurück.

Diagramm der Funktion `monthend`.

Diagramm der Funktion `monthend`.

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

Verwendung

Die Funktion `monthend()` wird als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Monats verwendet werden soll, der noch nicht eingetreten ist. Beispiel: Sie möchten die gesamten, während des Monats noch nicht fällig gewordenen Zinsen berechnen.

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| date | Datum oder Zeitstempel für die Evaluierung. |
| period\_no | period\_no ist eine ganze Zahl, die beim Weglassen von 0 den Monat liefert, der date enthält. Negative Werte von period\_no stehen für vorangehende, positive Werte für nachfolgende Monate. |

## 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 |
| --- | --- |
| `monthend('02/19/2012')` | Gibt 02/29/2012 23:59:59 zurück. |
| `monthend('02/19/2001', -1)` | Gibt 01/31/2001 23:59:59 zurück. |

## Beispiel 1 – einfaches Beispiel

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

#### Ladeskript und Ergebnisse

Übersicht

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

Das Ladeskript umfasst:

* Datensatz mit einer Reihe von Transaktionen für 2022, der in eine Tabelle namens „`Transactions`“ geladen wird

* Datumsfeld im Format `MM/DD/YYYY` der Systemvariablen `DateFormat`.

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

  * Die Funktion `monthend()`, die als Feld „`end_of_month`“ festgelegt ist.

  * Die Funktion `timestamp`, die als Feld „`end_of_month_timestamp`“ festgelegt ist.

Ladeskript

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

Transactions: 
    Load 
    *, 
    monthend(date) as end_of_month, 
    timestamp(monthend(date)) as end_of_month_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/16/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`
* `end_of_month`
* `end_of_month_timestamp`

Ergebnistabelle

| ID | Datum | end\_of\_month | end\_of\_month\_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 | 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 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 05/31/2022 | 5/31/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 | 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 | 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 | 09/30/2022 | 9/30/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 „`end_of_month`“ wird in der vorangehenden load-Anweisung erstellt, indem die Funktion `monthend()` verwendet und das Datumsfeld als Argument der Funktion übergeben wird.

Die Funktion `monthend()` identifiziert, in welchen Monat der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieses Monats zurück.

Diagramm der Funktion `monthend` mit März als ausgewähltem Monat.

Diagramm der Funktion `monthend` mit März als ausgewähltem Monat.

Diagramm der Funktion `monthend`monthend mit März als ausgewähltem Monat.![Das Diagramm zeigt, wie die Funktion „monthend“ verwendet werden kann, um den letzten Zeitstempel eines ausgewählten Monats zu identifizieren.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example1-diagram.png)

Transaktion 8192 fand am 16. März statt. Die Funktion `monthend()` gibt die letzte Millisekunde dieses Monats zurück, also den 31. März um 11:59:59 PM.

## Beispiel 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.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 „`previous_month_end`“ zu erstellen, das den Zeitstempel für das Ende des Monats vor dem Transaktionsdatum zurückgibt.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    monthend(date,-1) as previous_month_end, 
    timestamp(monthend(date,-1)) as previous_month_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/16/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`
* `previous_month_end`
* `previous_month_end_timestamp`

Ergebnistabelle

| ID | Datum | previous\_month\_end | previous\_month\_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 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 05/31/2022 | 5/31/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 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |

Die Funktion `monthend()` identifiziert zuerst den Monat, in dem die Transaktionen stattfanden, da eine `period_no` von `-1` als Versatzargument verwendet wird. Dann geht sie einen Monat zurück und identifiziert die letzte Millisekunde dieses Monats.

Diagramm der Funktion `monthend` mit der Variablen „period\_no“.

Diagramm der Funktion `monthend` mit der Variablen „period\_no“.

Diagramm der Funktion `monthend`monthend mit der Variablen „period\_no“.![Das Diagramm zeigt, wie die Funktion „monthend“ mit der Variablen „period_no“ verwendet kann, um den letzten Zeitstempel des Monats vor dem Zeitstempel zu identifizieren, der in der Funktion „monthend()“ festgelegt ist.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example2-diagram.png)

Transaktion 8192 fand am 16. März statt. Die Funktion `monthend()` identifiziert, dass der Monat vor dem Transaktionsdatum der Februar war. Dann wird die letzte Millisekunde dieses Monats zurückgegeben, der 28. Februar um 11:59:59 PM.

## Beispiel 3 – Diagrammbeispiel

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

#### Ladeskript und Diagrammformel

Übersicht

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

In diesem Beispiel wird der unveränderte Datensatz in die App geladen. Die Aufgabe besteht im Erstellen einer Berechnung, die einen Zeitstempel für das Ende des Monats zurückgibt, in dem die Transaktionen stattfanden. Sie wird als Kennzahl in einem Diagrammobjekt der Anwendung erstellt.

Ladeskript

```
Transactions: 
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/16/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:

* `date`

* `id`

Um das Enddatum des Monats zu berechnen, in dem eine Transaktion stattfindet, erstellen Sie die folgenden Kennzahlen:

* `=monthend(date)`
* `=timestamp(monthend(date))`

Ergebnistabelle

| ID | Datum | =monthend(date) | =timestamp(monthend(date)) |
| --- | --- | --- | --- |
| 8188 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8189 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8190 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8191 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8192 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8193 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8194 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8195 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8196 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8197 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8198 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8201 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8202 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8203 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8204 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8205 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8206 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8207 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |

Die Kennzahl „`end_of_month`“ wird im Diagramm erstellt, indem die Funktion `monthend()` verwendet und das Datumsfeld als Argument der Funktion übergeben wird.

Die Funktion `monthend()` identifiziert, in welchen Monat der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieses Monats zurück.

Diagramm der Funktion `monthend` mit der Variablen „period\_no“.

Diagramm der Funktion `monthend` mit der Variablen „period\_no“.

Diagramm der Funktion `monthend`monthend mit der Variablen „period\_no“.![](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example3-diagram.png)

Transaktion 8192 fand am 16. März statt. Die Funktion `monthend()` gibt die letzte Millisekunde dieses Monats zurück, also den 31. März um 11:59:59 PM.

## Beispiel 4 – Szenario

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

#### Ladeskript und Ergebnisse

Übersicht

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 restlichen Monat noch anfallen.

Ladeskript

```
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 Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `employee_id`
* `employee_name`

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

`=floor(monthend(today(1),0)-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(monthend(today(1),0)-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Mark | $30.00 |
| 183 | Deryck | $25.00 |
| 184 | Dexter | $25.00 |
| 185 | Sydney | $54.00 |
| 186 | Agatha | $36.00 |

Die Funktion `monthend()` gibt das Enddatum des aktuellen Monats zurück, indem das aktuelle Datum als einziges Argument verwendet wird. Die Formel gibt die Anzahl der im Monat verbleibenden Tage zurück, indem das aktuelle Datum vom Monatsenddatum 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 den verbleibende Monat zu berechnen.