# addmonths - Skript- und Diagrammfunktion

Diese Funktion liefert das Datum, das n Monate nach startdate liegt, bzw. n Monate vor startdate, wenn n negativ ist.

Syntax:

AddMonths(startdate, n , [ , mode])

Rückgabe Datentyp: dual

Die Funktion `addmonths()` addiert oder subtrahiert eine definierte Anzahl Monate, `n`, von einem `startdate` und gibt das entsprechende Datum zurück.

Das Argument `mode` wirkt sich auf die Werte `startdate` an oder nach dem 28. des Monats aus. Wenn das Argument `mode` auf 1 festgelegt ist, gibt die Funktion `addmonths()` ein Datum zurück, dessen relativer Abstand zum Monatsende dem von `startdate` entspricht.

Beispieldiagramm der Funktion `addmonths()`

Beispieldiagramm der Funktion `addmonths()`

Beispieldiagramm der Funktion `addmonths()`addmonths() ![Das Beispieldiagramm zeigt, wie die verschiedenen Komponenten der Funktion „addmonths“ zusammen ein Ausgabedatum ergeben.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Beispiel: Der 28. Februar ist der letzte Tag des Monats. Wenn die Funktion `addmonths()` mit einem `mode` von 1 verwendet wird, um das Datum zwei Monate später zurückzugeben, dann gibt die Funktion das letzte Datum des Monats April zurück, den 30. April.

Beispieldiagramm der Funktion `addmonths()` mit `mode=1`

Beispieldiagramm der Funktion `addmonths()` mit `mode=1`

Beispieldiagramm der Funktion `addmonths()`addmonths() mit `mode=1`mode=1 ![Das Beispieldiagramm zeigt, wie das Argument „mode“ geändert werden kann, um das Ausgabedatum der Funktion „addmonths“ zu ändern.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argumente

| Argument | Beschreibung |
| --- | --- |
| startdate | Das Startdatum als Zeitstempel, z. B. '2012-10-12'. |
| n | Monate als positive oder negative ganze Zahl. |
| mode | Legt fest, ob der Monat entsprechend zum Anfang oder zum Ende des Monats hinzugefügt wird. Der Standardmodus ist 0 für Hinzufügungen entsprechend zum Anfang des Monats. Legen Sie den Modus auf 1 für Hinzufügungen entsprechend zum Ende des Monats fest. Wenn der Modus auf 1 festgelegt und das Eingabedatum der 28. oder höher ist, prüft die Funktion im Startdatum, wie viele Tage bis zum Erreichen des Monatsendes fehlen. Die gleiche Anzahl von Tagen bis zum Monatsende wird für das gelieferte Datum festgelegt. |

## Verwendung

Die Funktion `addmonths()` wird in der Regel in einer Formel verwendet, um ein Datum zu finden, das eine bestimmte Anzahl Monate vor oder nach einem Zeitraum liegt.

Beispielsweise kann die Funktion `addmonths()` verwendet werden, um das Enddatum von Mobiltelefonverträgen zu identifizieren.

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Gibt „04/29/2003“ zurück. |
| `addmonths ('01/29/2003',3,0)` | Gibt „04/29/2003“ zurück. |
| `addmonths ('01/29/2003',3,1)` | Gibt „04/28/2003“ zurück. |
| `addmonths ('01/29/2003',1,0)` | Gibt „02/28/2003“ zurück. |
| `addmonths ('01/29/2003',1,1)` | Gibt „02/26/2003“ zurück. |
| `addmonths ('02/28/2003',1,0)` | Gibt „03/28/2003“ zurück. |
| `addmonths ('02/28/2003',1,1)` | Gibt „03/31/2003“ zurück. |
| `addmonths ('01/29/2003',-3)` | Gibt „10/29/2002“ zurück. |

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

## Beispiel 1 – keine zusätzlichen Argumente

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.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 zwischen 2020 und 2022 enthält, wird in eine Tabelle namens `Transactions` geladen.

* Das Datumsfeld wird im Format der Systemvariablen `DateFormat` (MM/TT/JJJJ) bereitgestellt.

* Es wird ein Feld `two_months_later` erstellt, das das Datum zwei Monate nach dem Transaktionsdatum zurückgibt.

Ladeskript

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

Transactions:
    Load
        *,
        addmonths(date,2) as two_months_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/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`

* `two_months_later`

Ergebnistabelle

| Datum | two\_months\_later |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Das Feld „`two_months_later`“ wird im vorangehenden load-Befehl mithilfe der Funktion `addmonths()` erstellt. Das erste angegebene Argument identifiziert, welches Datum ausgewertet wird. Das zweite Argument ist die Anzahl der Monate, die zu `startdate` addiert oder davon abgezogen werden sollen. In diesem Fall wird der Wert 2 angegeben.

Diagramm der Funktion `addmonths()`, Beispiel ohne zusätzliche Argumente

Diagramm der Funktion `addmonths()`, Beispiel ohne zusätzliche Argumente

Diagramm der Funktion `addmonths()`addmonths(), Beispiel ohne zusätzliche Argumente![Das Diagramm der Funktion „addmonths“ zeigt, wie die Transaktion 8193 aus dem Ladeskript von einem Eingabedatum zu einem resultierenden Ausgabedatum konvertiert wird.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

Transaktion 8193 fand am 14. August statt. Daher gibt die Funktion `addmonths()` den 14. Oktober 2020 für das Feld `two_months_later` zurück.

## Beispiel 2 – Relatives Monatsende

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.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 enthält eine Reihe von Monatsende-Transaktionen im Jahr 2022 und wird in eine Tabelle namens `Transactions` geladen.

* Das Datumsfeld wird im Format der Systemvariablen `DateFormat` (MM/TT/JJJJ) bereitgestellt.

* Es wird ein Feld `relative_two_months_prior` erstellt, das das relative Monatsenddatum zwei Monate nach dem Transaktionsdatum zurückgibt.

Ladeskript

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

Transactions:
    Load
        *,
        addmonths(date,-2,1) as relative_two_months_prior
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/28/2022',37.23
8189,'01/31/2022',57.54
8190,'02/28/2022',17.17
8191,'04/29/2022',88.27
8192,'04/30/2022',57.42
8193,'05/31/2022',53.80
8194,'08/14/2022',82.06
8195,'10/07/2022',40.39
];
```

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`

* `relative_two_months_prior`

Ergebnistabelle

| Datum | relative\_two\_months\_prior |
| --- | --- |
| 01/28/2022 | 11/27/2021 |
| 01/31/2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 02/27/2022 |
| 04/30/2022 | 02/28/2022 |
| 05/31/2022 | 03/31/2022 |
| 08/14/2022 | 06/14/2022 |
| 10/07/2022 | 08/07/2022 |

Das Feld `relative_two_months_prior` wird in der vorangehenden load-Anweisung mithilfe der Funktion `addmonths()` erstellt. Das erste angegebene Argument identifiziert, welches Datum ausgewertet wird. Das zweite Argument ist die Anzahl der Monate, die zu `startdate` addiert oder davon abgezogen werden sollen. In diesem Fall wird der Wert -2 angegeben. Das letzte Argument ist der Modus mit einem Wert von 1, wodurch erzwungen wird, dass die Funktion das relative Monatsenddatum für alle Datumswerte am oder nach dem 28. berechnet.

Diagramm der Funktion `addmonths()`, Beispiel mit `  n=-2 `

Diagramm der Funktion `addmonths()`, Beispiel mit `  n=-2 `

Diagramm der Funktion `addmonths()`addmonths(), Beispiel mit `  n=-2 ` n=-2![Das Diagramm der Funktion „addmonths“ zeigt, wie die Transaktion 8191 aus dem Ladeskript von einem Eingabedatum zu einem resultierenden Ausgabedatum konvertiert wird.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

Transaktion 8191 findet am 29. April 2022 statt. Anfänglich wird der Monat durch „zwei Monate vorher“ auf Februar festgelegt. Da dann das dritte Argument der Funktion den Modus auf 1 festlegt und der Wert des Tages nach dem 27. liegt, berechnet die Funktion den relativen Monatsendwert. Die Funktion identifiziert, dass der 29. der zweitletzte Tag im April ist und gibt daher den zweitletzten Tag für Februar, den 27., zurück.

## Beispiel 3 – Diagrammobjektbeispiel

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

#### Ladeskript und Diagrammformel

Übersicht

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

Das Ladeskript verwendet den gleichen Datensatz und das gleiche Szenario wie das erste Beispiel.

In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Die Berechnung, die das Datum für zwei Monate nach dem Transaktionsdatum zurückgibt, wird als Kennzahl in einem Diagrammobjekt erstellt.

Ladeskript

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

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/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`.

Erstellen Sie die folgende Kennzahl:

`=addmonths(date,2)`

Ergebnistabelle

| Datum | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Die Kennzahl `two_months_later` wird im Diagrammobjekt anhand der Funktion `addmonths()` erstellt. Das erste angegebene Argument identifiziert, welches Datum ausgewertet wird. Das zweite Argument ist die Anzahl der Monate, die zu `startdate` addiert oder davon abgezogen werden sollen. In diesem Fall wird der Wert 2 angegeben.

Diagramm der Funktion `addmonths()`, Diagrammobjektbeispiel

Diagramm der Funktion `addmonths()`, Diagrammobjektbeispiel

Diagramm der Funktion `addmonths()`addmonths(), Diagrammobjektbeispiel![Das Diagramm der Funktion „addmonths“ zeigt, wie die Transaktion 8193 aus dem Ladeskript von einem Eingabedatum zu einem resultierenden Ausgabedatum konvertiert wird.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

Transaktion 8193 fand am 14. August statt. Daher gibt die Funktion `addmonths()` den 14. Oktober 2020 für das Feld `two_months_later` zurück.

## Beispiel 4 – Szenario

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

#### Ladeskript und Diagrammformel

Übersicht

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

Das Ladeskript umfasst:

* Datensatz, der in eine Tabelle namens Mobile\_Plans geladen wird

* Informationen mit Vertrags-ID, Startdatum, Vertragslänge und monatlicher Gebühr.

Der Endbenutzer möchte ein Diagrammobjekt, das nach Vertrags-ID das Enddatum für jeden Telefonvertrag zurückgibt.

Ladeskript

```
Mobile_Plans:
Load
*
Inline 
[
contract_id,start_date,contract_length,monthly_fee
8188,'01/13/2020',18,37.23
8189,'02/26/2020',24,17.17
8190,'03/27/2020',36,88.27
8191,'04/16/2020',24,57.42
8192,'05/21/2020',24,53.80
8193,'08/14/2020',12,82.06
8194,'10/07/2020',18,40.39
8195,'12/05/2020',12,87.21
8196,'01/22/2021',12,95.93
8197,'02/03/2021',18,45.89
8198,'03/17/2021',24,36.23
8199,'04/23/2021',24,25.66
8200,'05/04/2021',12,82.77
8201,'06/30/2021',12,69.98
8202,'07/26/2021',12,76.11
8203,'12/27/2021',36,25.12
8204,'06/06/2022',24,46.23
8205,'07/18/2022',12,84.21
8206,'11/14/2022',12,96.24
8207,'12/12/2022',18,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:

* contract\_id

* start\_date

* contract\_length

Erstellen Sie die folgende Kennzahl, um das Enddatum für jeden Vertrag zu berechnen.

=addmonths(start\_date,contract\_length, 0)

Ergebnistabelle

| contract\_id | start\_date | contract\_length | =addmonths(start\_date,contract\_length,0) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 18 | 07/13/2021 |
| 8189 | 02/26/2020 | 24 | 02/26/2022 |
| 8190 | 03/27/2020 | 36 | 03/27/2023 |
| 8191 | 04/16/2020 | 24 | 04/16/2022 |
| 8192 | 05/21/2020 | 24 | 05/21/2022 |
| 8193 | 08/14/2020 | 12 | 08/14/2021 |
| 8194 | 10/07/2020 | 18 | 04/07/2022 |
| 8195 | 12/05/2020 | 12 | 12/05/2021 |
| 8196 | 01/22/2021 | 12 | 01/22/2022 |
| 8197 | 02/03/2021 | 18 | 08/03/2022 |
| 8198 | 03/17/2021 | 24 | 03/17/2023 |
| 8199 | 04/23/2021 | 24 | 04/23/2023 |
| 8200 | 05/04/2021 | 12 | 05/04/2022 |
| 8201 | 06/30/2021 | 12 | 06/30/2022 |
| 8202 | 07/26/2021 | 12 | 07/26/2022 |
| 8203 | 12/27/2021 | 36 | 12/27/2024 |
| 8204 | 06/06/2022 | 24 | 06/06/2024 |
| 8205 | 07/18/2022 | 12 | 07/18/2023 |
| 8206 | 11/14/2022 | 12 | 11/14/2023 |
| 8207 | 12/12/2022 | 18 | 06/12/2024 |