# addmonths funkcja skryptu i funkcja wykresu

Ta funkcja zwraca datę występującą n miesięcy po dacie startdate lub, jeśli n jest wartością ujemną, n miesięcy przed datą startdate.

Składnia:

AddMonths(startdate, n , [ , mode])

Typ zwracanych danych: wartość podwójna

Funkcja `addmonths()` dodaje lub odejmuje zdefiniowaną liczbę miesięcy, `n`, od `startdate` i zwraca datę otrzymaną w wyniku.

Argument `mode` ma wpływ na zwracane przez funkcję `startdate` wartości obejmujące dni od 28 do końca miesiąca. Ustawienie argumentu `mode` na 1 powoduje, że funkcja `addmonths()` zwraca datę odległą od końca miesiąca o tyle samo dni, co data `startdate`.

Przykładowy diagram funkcji `addmonths()`

Przykładowy diagram funkcji `addmonths()`

Przykładowy diagram funkcji `addmonths()`addmonths() ![Przykładowych schemat obrazujący, jak różne elementy funkcji addmonths generują datę wynikową.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Na przykład 28 lutego jest ostatnim dniem miesiąca. Jeśli za pomocą funkcji `addmonths()`, z argumentem `mode` ustawionym na 1, przesuniemy datę o dwa miesiące do przodu, to otrzymamy ostatni dzień kwietnia, czyli 30 kwietnia.

Przykładowy schemat działania funkcji `addmonths()` z argumentem `mode=1`

Przykładowy schemat działania funkcji `addmonths()` z argumentem `mode=1`

Przykładowy schemat działania funkcji `addmonths()`addmonths() z argumentem `mode=1`mode=1 ![Przykładowy schemat pokazujący, jak argument mode zmienia datę wynikową funkcji addmonths.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argumenty

| Argument | Opis |
| --- | --- |
| startdate | Data rozpoczęcia jako znacznik czasu, na przykład „2012-10-12”. |
| n | Liczba miesięcy jako dodatnia lub ujemna liczba całkowita. |
| mode | Określa, czy miesiąc jest dodawany względem początku miesiąca, czy końca miesiąca. Trybem domyślnym jest 0 w przypadku operacji dodawania względem początku miesiąca. W przypadku operacji dodawania względem końca miesiąca należy ustawić tryb na 1. Jeśli tryb jest ustawiony na 1, a datą wejściową jest 28. lub data późniejsza, wówczas funkcja sprawdza, ile dni zostało do osiągnięcia końca miesiąca od daty startdate. Taka sama liczba dni do końca miesiąca jest ustawiana w zwróconej dacie. |

## Kiedy używać

Funkcja `addmonths()` może być używana w różnych wyrażeniach, w których trzeba znaleźć datę późniejszą lub wcześniejszą o określoną liczbę miesięcy od podanej.

Na przykład, za pomocą funkcji `addmonths()` można znaleźć datę zakończenia obowiązywania umowy na usługi telefonii komórkowej.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Zwraca wartość „04/29/2003”. |
| `addmonths ('01/29/2003',3,0)` | Zwraca wartość „04/29/2003”. |
| `addmonths ('01/29/2003',3,1)` | Zwraca wartość „04/28/2003”. |
| `addmonths ('01/29/2003',1,0)` | Zwraca wartość „02/28/2003”. |
| `addmonths ('01/29/2003',1,1)` | Zwraca wartość „02/26/2003”. |
| `addmonths ('02/28/2003',1,0)` | Zwraca wartość „03/28/2003”. |
| `addmonths ('02/28/2003',1,1)` | Zwraca wartość „03/31/2003”. |
| `addmonths ('01/29/2003',-3)` | Zwraca wartość „10/29/2002”. |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/YYYY. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Qlik Sense będzie wyświetlane w tym samym języku co używana przez Ciebie przeglądarka.

## Przykład 1 — bez dodatkowych argumentów

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający zestaw transakcji za lata 2020–2022, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole danych w formacie `DateFormat` zmiennej systemowej (MM/DD/RRRR).

* Tworzenie pola, `two_months_later`, które zwraca datę o dwa miesiące późniejszą od daty zawarcia transakcji.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `two_months_later`

Tabela wynikowa

| date | dwa\_miesiące\_później |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 09.04.2020 | 09.06.2020 |
| 04/16/2020 | 16.06.2020 |
| 05/21/2020 | 21.07.2020 |
| 08/14/2020 | 14.10.2020 |
| 10/07/2020 | 07.12.2020 |
| 12/05/2020 | 05.02.2021 |
| 01/22/2021 | 22.03.2021 |
| 02/03/2021 | 03.04.2021 |
| 03/17/2021 | 17.05.2021 |
| 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 | 02.04.2022 |
| 02/26/2022 | 26.04.2022 |
| 07.03.2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Pole `two_months_later` jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji `addmonths()`. Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty `startdate` lub od niej odjęta. W tym przypadku przekazano wartość 2.

Diagram funkcji `addmonths()`, przykład bez dodatkowych argumentów

Diagram funkcji `addmonths()`, przykład bez dodatkowych argumentów

Diagram funkcji `addmonths()`addmonths(), przykład bez dodatkowych argumentów ![Diagram funkcji addmonths pokazujący zamianę daty wejściowej transakcji 8193 ze skryptu ładowania na datę wynikową.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

Transakcja 8193 miała miejsca 14 sierpnia. W związku z tym funkcja `addmonths()` dla pola `two_months_later` zwraca datę 14 października 2020 r.

## Przykład 2 – względny koniec miesiąca

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający zbiór transakcji na koniec miesiąca w 2022 roku, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/YYYY).

* Tworzenie pola, `relative_two_months_prior`, które zwraca względną w odniesieniu do końca miesiąca datę o dwa miesiące wcześniejszą od daty zawarcia transakcji.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `relative_two_months_prior`

Tabela wynikowa

| date | względne\_dwa\_miesiące\_wcześniej |
| --- | --- |
| 28.01.2022 | 11/27/2021 |
| 31.01.2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 27.02.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 |

Pole `relative_two_months_prior` jest tworzone w poprzedniej instrukcji load przy użyciu funkcji `addmonths()`. Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty `startdate` lub od niej odjęta. W tym przypadku przekazano wartość -2. Ostatni argument to mode, któremu nadano wartość 1, co zmusza funkcję do obliczenia daty względnej w odniesieniu do końca miesiąca dla wszystkich dat od 28. do ostatniego dnia miesiąca.

Diagram funkcji `addmonths()`, przykład z `  n=-2 `

Diagram funkcji `addmonths()`, przykład z `  n=-2 `

Diagram funkcji `addmonths()`addmonths(), przykład z `  n=-2 ` n=-2 ![Diagram funkcji addmonths pokazujący zamianę daty wejściowej transakcji 8191 ze skryptu ładowania na datę wynikową.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

Transakcja 8191 ma miejsce 29 kwietnia 2022 r. Wstępnie cofnięcie o dwa miesiące oznacza ustawienie daty na luty. Następnie, ze względu na to, że przypisano trzeciemu argumentowi wartość 1 oraz na to, że data jest późniejsza niż 27. dzień miesiąca, funkcja oblicza wartość względną w odniesieniu do końca miesiąca. Funkcja stwierdza, że 29. jest przedostatnim dniem kwietnia, w związku z czym zwraca przedostatni dzień lutego, czyli 27.

## Przykład 3 — przykład z obiektem wykresu

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia zwracające datę o dwa miesiące późniejszą od daty zawarcia transakcji są tworzone jako miara w obiekcie wykresu.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: `date`.

Utwórz następującą miarę:

`=addmonths(date,2)`

Tabela wynikowa

| date | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 09.04.2020 | 09.06.2020 |
| 04/16/2020 | 16.06.2020 |
| 05/21/2020 | 21.07.2020 |
| 08/14/2020 | 14.10.2020 |
| 10/07/2020 | 07.12.2020 |
| 12/05/2020 | 05.02.2021 |
| 01/22/2021 | 22.03.2021 |
| 02/03/2021 | 03.04.2021 |
| 03/17/2021 | 17.05.2021 |
| 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 | 02.04.2022 |
| 02/26/2022 | 26.04.2022 |
| 07.03.2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Miara `two_months_later` jest tworzona w obiekcie wykresu przy użyciu funkcji `addmonths()`. Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty `startdate` lub od niej odjęta. W tym przypadku przekazano wartość 2.

Diagram funkcji `addmonths()`, przykład obiektu wykresu

Diagram funkcji `addmonths()`, przykład obiektu wykresu

Diagram funkcji `addmonths()`addmonths(), przykład obiektu wykresu ![Diagram funkcji addmonths pokazujący zamianę daty wejściowej transakcji 8193 ze skryptu ładowania na datę wynikową.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

Transakcja 8193 miała miejsca 14 sierpnia. W związku z tym funkcja `addmonths()` zwraca datę 14 października 2020 r. dla pola `two_months_later`.

## Przykład 4 — zastosowanie

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie Mobile\_Plans.

* Informacje obejmujące identyfikator umowy, datę rozpoczęcia, długość trwania umowy oraz miesięczną opłatę.

Użytkownik potrzebuje obiektu wykresu pokazującego datę zakończenia każdej umowy telefonicznej według identyfikatora umowy.

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* contract\_id

* start\_date

* contract\_length

Utwórz następującą miarę, aby obliczyć datę zakończenia każdej umowy:

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

Tabela wynikowa

| identyfikator\_umowy | start\_date | czas\_trwania\_umowy | =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 | 22.01.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 |