# addmonths – Skript- och diagramfunktion

Denna funktion returnerar det datum som infaller n månader efter startdate eller, om n är negativt, det datum som infaller n månader före startdate.

Syntax:

AddMonths(startdate, n , [ , mode])

Returnerad datatyp: dual

Funktionen `addmonths()` lägger till eller drar av ett definierat antal månader, `n`, från ett `startdate` och returnerar resulterande data.

Argumentet `mode` kommer att påverka värdena `startdate` den 28 eller senare i månaden. Genom att sätta argumentet `mode` till 1 returnerar funktionen `addmonths()` ett datum som är lika i relativt avstånd till månadens slut som `startdate`.

Exempeldiagram för `addmonths()`-funktionen

Exempeldiagram för `addmonths()`-funktionen

Exempeldiagram för `addmonths()`addmonths()-funktionen ![Exempeldiagram som visar hur de olika komponenterna i funktionen addmonths läggs samman så att ett utmatningsdatum skapas.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Exempel: 28 februari är den sista dagen i månaden. Om funktionen `addmonths()`, med ett `mode` av 1, används för att returnera datumet två månader senare kommer funktionen att returnera den sista dagen i april, 30 april.

Exempeldiagram för `addmonths()`-funktionen med `mode=1`

Exempeldiagram för `addmonths()`-funktionen med `mode=1`

Exempeldiagram för `addmonths()`addmonths()-funktionen med `mode=1`mode=1 ![Exempeldiagram som visar hur argumentet "mode" kan modifieras för att ändra utmatningsdatumet från funktionen addmonths.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argument

| Argument | Beskrivning |
| --- | --- |
| startdate | Startdatumet som en tidsmarkör, exempelvis '2012-10-12'. |
| n | Antal månader som ett positivt eller negativt heltal. |
| mode | Anger om månaden läggs till relativt månadens början eller månadens slut. Standardläget är 0 när den läggs till relativt månadens början. Ange läget 1 när den läggs till relativt månadens slut. När läget är inställt på 1 och indatadatumet är 28 eller högre, kontrollerar funktionen hur många dagar som återstår före månadens slut på startdatumet. Samma antal datar som krävs för att nå månadens slut anges på det returnerade datumet. |

## Användning

Funktionen `addmonths()` används oftast i ett uttryck för att hitta ett datum ett angivet antal månader före eller efter en tidsperiod.

Funktionen `addmonths()` kan exempelvis användas för att identifiera slutdatumet för mobiltelefoniavtal.

Exempel på funktioner

| Exempel | Resultat |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Returnerar 04/29/2003. |
| `addmonths ('01/29/2003',3,0)` | Returnerar 04/29/2003. |
| `addmonths ('01/29/2003',3,1)` | Returnerar 04/28/2003. |
| `addmonths ('01/29/2003',1,0)` | Returnerar 02/28/2003. |
| `addmonths ('01/29/2003',1,1)` | Returnerar 02/26/2003. |
| `addmonths ('02/28/2003',1,0)` | Returnerar 03/28/2003. |
| `addmonths ('02/28/2003',1,1)` | Returnerar 03/31/2003. |
| `addmonths ('01/29/2003',-3)` | Returnerar 10/29/2002. |

## 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 1 – inga ytterligare argument

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

#### Laddningsskript och resultat

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som innehåller en uppsättning transaktioner mellan 2020 och 2022 som laddas i en tabell som heter `Transactions`.

* Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i `DateFormat`-systemvariabeln.

* Ett fält `two_months_later` skapas som returnerar datumet två månader efter att transaktionen ägde rum.

Laddningsskript

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

Resultat

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

* `date`

* `two_months_later`

Resultattabell

| datum | två månader senare |
| --- | --- |
| 01/10/2020 | 2020-03-10 |
| 02/28/2020 | 2020-04-28 |
| 04/09/2020 | 2020-06-09 |
| 04/16/2020 | 2020-06-16 |
| 05/21/2020 | 2020-07-21 |
| 08/14/2020 | 2020-10-14 |
| 10/07/2020 | 2020-12-07 |
| 12/05/2020 | 2021-02-05 |
| 01/22/2021 | 2021-03-22 |
| 02/03/2021 | 2021-04-03 |
| 03/17/2021 | 2021-05-17 |
| 04/23/2021 | 23/06/2021 |
| 05/04/2021 | 04/07/2021 |
| 06/30/2021 | 30/08/2021 |
| 07/26/2021 | 26/09/2021 |
| 12/27/2021 | 27/02/2022 |
| 02/02/2022 | 2022-04-02 |
| 02/26/2022 | 2022-04-26 |
| 03/07/2022 | 2022-05-07 |
| 03/11/2022 | 2022-05-11 |

`two_months_later`-fältet skapas i föregående LOAD-sats med hjälp av funktionen `addmonths()`. Det första argumentet som anges identifierar vilket datum som utvärderas. Det andra argumentet är antalet månader som ska läggas till eller dras från `startdate`. I det här fallet anges värdet 2.

Diagram för `addmonths()`-funktionen, exempel utan ytterligare argument

Diagram för `addmonths()`-funktionen, exempel utan ytterligare argument

Diagram för `addmonths()`addmonths()-funktionen, exempel utan ytterligare argument![Diagram för addmonths-funktionen som visar hur transaktion 8193 från laddningsskriptet konverteras från ett inmatningsdatum till ett resulterande utmatningsdatum.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

Transaktion 8193 ägde rum 14 augusti. Därför returnerar funktionen `addmonths()` 14 oktober 2020 för fältet `two_months_later`.

## Exempel 2 – relativt månadsslut

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

#### Laddningsskript och resultat

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som innehåller transaktioner från månadens slut under 2022, som laddas i en tabell som heter `Transactions`.

* Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln `DateFormat`.

* Ett fält `relative_two_months_prior` skapas som returnerar det relativa datumet vid månadens slut två månader före att transaktionen ägde rum.

Laddningsskript

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

Resultat

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

* `date`

* `relative_two_months_prior`

Resultattabell

| datum | två månader tidigare |
| --- | --- |
| 28/01/2022 | 11/27/2021 |
| 01/31/2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 2022-02-27 |
| 04/30/2022 | 02/28/2022 |
| 05/31/2022 | 03/31/2022 |
| 08/14/2022 | 06/14/2022 |
| 10/07/2022 | 08/07/2022 |

`relative_two_months_prior`-fältet skapas i föregående LOAD-sats med hjälp av funktionen `addmonths()`. Det första argumentet som anges identifierar vilket datum som utvärderas. Det andra argumentet är antalet månader som ska läggas till eller dras från `startdate`. I det här fallet anges värdet -2. Det sista argumentet är läget, med värdet 1, som tvingar funktionen att beräkna det relativa datumet vid månadens slut för alla datum större än eller lika med 28.

Diagram för funktionen `addmonths()`, exempel med `  n=-2 `

Diagram för funktionen `addmonths()`, exempel med `  n=-2 `

Diagram för funktionen `addmonths()`addmonths(), exempel med `  n=-2 ` n=-2![Diagram för addmonths-funktionen som visar hur transaktion 8191 från laddningsskriptet konverteras från ett inmatningsdatum till ett resulterande utmatningsdatum.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

Transaktion 8191 ägde rum den 29 april 2022. Initialt skulle två månader tidigare ange månaden till februari. Därefter beräknar funktionen det relativa värdet för månadsslutet, eftersom funktionens tredje argumentet sätter läget till 1 och dagens värde till lägre än den 27:e. Funktionen identifierar att 29:e är den näst sista dagen i april och returnerar därför den näst sista dagen i februari, den 27:e.

## Exempel 3 – Exempel på diagramobjekt

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

#### Laddningsskript och diagramuttryck

Översikt

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

Laddningsskriptet innehåller samma datauppsättning och scenario som i det första exemplet.

I det här exemplet har dock den oförändrade datauppsättningen laddats till programmet. Beräkningen som returnerar datumet två månader efter att transaktionen ägde rum skapas som en mätning i ett diagramobjekt.

Laddningsskript

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

Resultat

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

Skapa följande mått:

`=addmonths(date,2)`

Resultattabell

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

`two_months_later`-måttet skapas i ett diagramobjekt med hjälp av `addmonths()`-funktionen. Det första argumentet som anges identifierar vilket datum som utvärderas. Det andra argumentet är antalet månader som ska läggas till eller dras från `startdate`. I det här fallet anges värdet 2.

Diagram med exempel på `addmonths()`-funktionen, diagramobjekt

Diagram med exempel på `addmonths()`-funktionen, diagramobjekt

Diagram med exempel på `addmonths()`addmonths()-funktionen, diagramobjekt![Diagram för addmonths-funktionen som visar hur transaktion 8193 från laddningsskriptet konverteras från ett inmatningsdatum till ett resulterande utmatningsdatum.](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

Transaktion 8193 ägde rum 14 augusti. Därför returnerar `addmonths()`-funktionen 14 oktober 2020 för `two_months_later`-fältet.

## Exempel 4 – Scenario

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

#### Laddningsskript och diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning läses in i en tabell som heter Mobile\_Plans.

* Information med avtals-ID, startdatum, avtalslängd och månadsavgift.

Slutanvändaren vill ha ett diagramobjekt som visar slutdatum för varje telefoniavtal, sorterat på avtals-ID.

Laddningsskript

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

Resultat

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

* contract\_id

* start\_date

* contract\_length

Skapa följande mått för att beräkna slutet på varje avtal:

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

Resultattabell

| kontrakts-ID | startdatum | 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 | 2022-01-22 |
| 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 |