# monthend funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia miesiąca zawierającego wartość `date`. Domyślnym formatem wyjściowym będzie format `DateFormat` skonfigurowany w skrypcie.

MonthEnd(date[, period\_no])

Innymi słowy, funkcja `monthend()` określa, na który miesiąc przypada data. Następnie zwraca znacznik czasu w formacie daty dla ostatniej milisekundy tego miesiąca.

Diagram funkcji `monthend`.

Diagram funkcji `monthend`.

Diagram funkcji `monthend`monthend. ![Diagram showing how monthend function can be used to identify the latest timestamp of a chosen month.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-diagram1.png)

Kiedy używać

Funkcja `monthend()` jest powszechnie używana jako część wyrażenia, gdy użytkownik chce, by w obliczeniach użyto ułamka miesiąca, który jeszcze nie nastąpił. Na przykład, jeśli chcesz obliczyć łączne odsetki, które nie zostały jeszcze naliczone w ciągu miesiąca.

Typ zwracanych danych: Dual

Argumenty

| Argument | Opis |
| --- | --- |
| date | Data lub znacznik czasu do oszacowania. |
| period\_no | period\_no jest liczbą całkowitą, która, jeśli ma wartość 0 lub jest pominięta, oznacza miesiąc, który zawiera date. Wartości ujemne parametru period\_no oznaczają miesiące poprzednie, a wartości dodatnie — miesiące następne. |

## 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łady funkcji

| Przykład | Wynik |
| --- | --- |
| `monthend('02/19/2012')` | Zwraca 02/29/2012 23:59:59. |
| `monthend('02/19/2001', -1)` | Zwraca 01/31/2001 23:59:59. |

## Przykład 1 — Przykład podstawowy

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.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 rok 2022, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole daty, które jest przekazywane w formacie `DateFormat`zmiennej systemowej (`MM/DD/YYYY`).

* Instrukcja poprzedzającego ładowania, która zawiera:

  * Funkcja `monthend()`, która jest ustawiona jako pole „`end_of_month`”.

  * Funkcja `timestamp`, która jest ustawiona jako pole „`end_of_month_timestamp`”.

Skrypt ładowania

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

Wyniki

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

* `id`
* `date`
* `end_of_month`
* `end_of_month_timestamp`

Tabela wynikowa

| id | date | end\_of\_month | end\_of\_month\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 31.01.2022 | 1/31/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 31.01.2022 | 1/31/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 02/28/2022 | 28.02.2022 23:59:59 |
| 8191 | 2/28/2022 | 02/28/2022 | 28.02.2022 23:59:59 |
| 8192 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 30.04.2022 23:59:59 |
| 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 | 30.09.2022 | 30.09.2022 23:59:59 |
| 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 |

Pole ‘`end_of_month`’ jest tworzone w poprzedzającej instrukcji LOAD przez użycie funkcji `monthend()` i przekazanie pola daty jako jej argumentu.

Funkcja `monthend()` identyfikuje, w którym miesiącu przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego miesiąca.

Diagram funkcji `monthend` z wybranym marcem.

Diagram funkcji `monthend` z wybranym marcem.

Diagram funkcji `monthend`monthend z wybranym marcem. ![Diagram showing how monthend function can be used to identify the latest timestamp of a chosen month.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example1-diagram.png)

Transakcja 8192 miała miejsce 16 marca. Funkcja `monthend()` zwraca ostatnią milisekundę tego miesiąca, czyli 31 marca o godz 23:59:59 (11:59:59 PM).

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

W tym przykładzie zadaniem jest utworzenie pola `previous_month_end` zwracającego znacznik czasu końca miesiąca przed transakcją.

Skrypt ładowania

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

Wyniki

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

* `id`
* `date`
* `previous_month_end`
* `previous_month_end_timestamp`

Tabela wynikowa

| id | date | previous\_month\_end | previous\_month\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 12/31/2021 | 31.12.2021 23:59:59 |
| 8189 | 1/19/2022 | 12/31/2021 | 31.12.2021 23:59:59 |
| 8190 | 2/5/2022 | 31.01.2022 | 1/31/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 31.01.2022 | 1/31/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 02/28/2022 | 28.02.2022 23:59:59 |
| 8193 | 4/1/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 04/30/2022 | 30.04.2022 23:59:59 |
| 8195 | 5/16/2022 | 04/30/2022 | 30.04.2022 23:59:59 |
| 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 | 30.09.2022 | 30.09.2022 23:59:59 |
| 8207 | 10/29/2022 | 30.09.2022 | 30.09.2022 23:59:59 |

Funkcja `monthend()` najpierw identyfikuje miesiąc, w którym odbywają się transakcje, ponieważ wartości `period_no` `-1` użyto jako argumentu przesunięcia. Następnie przesuwa zakres o miesiąc wstecz i identyfikuje ostatnią milisekundę tego miesiąca.

Diagram funkcji `monthend` ze zmienną period\_no.

Diagram funkcji `monthend` ze zmienną period\_no.

Diagram funkcji `monthend`monthend ze zmienną period\_no. ![Diagram showing how monthend function can be used with the period_no variable to identify the latest timestamp the month before the one set in the monthend() function.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example2-diagram.png)

Transakcja 8192 miała miejsce 16 marca. Funkcja `monthend()` stwierdza, że miesiąc poprzedzający miesiąc transakcji to luty. Następnie zwraca ostatnią milisekundę tego miesiąca — 28 lutego o godz. 23:59:59.

## Przykład 3 – przykład z wykresem

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

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

Przegląd

Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

W tym przykładzie zbiór danych pozostaje bez zmian i jest ładowany do aplikacji. Zadanie polega na utworzeniu obliczenia zwracającego znacznik czasu końca miesiąca, kiedy wystąpiły transakcje, jako miarę na wykresie aplikacji.

Skrypt ładowania

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

Wyniki

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

* `date`

* `id`

Aby obliczyć koniec miesiąca, w którym zawarto transakcję, utwórz następujące miary:

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

Tabela wynikowa

| id | date | =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 | 30.09.2022 | 30.09.2022 23:59:59 |
| 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 | 30.04.2022 23:59:59 |
| 8203 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8204 | 2/5/2022 | 02/28/2022 | 28.02.2022 23:59:59 |
| 8205 | 2/28/2022 | 02/28/2022 | 28.02.2022 23:59:59 |
| 8206 | 1/7/2022 | 31.01.2022 | 1/31/2022 11:59:59 PM |
| 8207 | 1/19/2022 | 31.01.2022 | 1/31/2022 11:59:59 PM |

Miarę „`end_of_month`” tworzy się na wykresie, używając funkcji `monthend()` i przekazując pole daty jako jej argument.

Funkcja `monthend()` identyfikuje, w którym miesiącu przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego miesiąca.

Diagram funkcji `monthend` ze zmienną period\_no.

Diagram funkcji `monthend` ze zmienną period\_no.

Diagram funkcji `monthend`monthend ze zmienną period\_no. ![](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example3-diagram.png)

Transakcja 8192 miała miejsce 16 marca. Funkcja `monthend()` zwraca ostatnią milisekundę tego miesiąca, czyli 31 marca o godz 23:59:59 (11:59:59 PM).

## Przykład 4 — zastosowanie

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

#### Skrypt ładowania i wyniki

Przegląd

W tym przykładzie zestaw danych jest ładowany do tabeli o nazwie `Employee_Expenses`. Tabela zawiera następujące pola:

* Identyfikatory pracowników

* Imiona i nazwiska pracownika

* Średnie dzienne rozliczenia wydatków każdego pracownika.

Użytkownik końcowy chciałby, aby wykres wyświetlał, według identyfikatora pracownika oraz imienia i nazwiska pracownika, szacowane roszczenia z tytułu wydatków do poniesienia przez pozostałą część miesiąca.

Skrypt ładowania

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

Wyniki

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

* `employee_id`
* `employee_name`

Aby obliczyć narosłe odsetki, należy utworzyć następującą miarę:

`=floor(monthend(today(1),0)-today(1))*avg_daily_claim`

Informacjata miera jest dynamiczna i zwracać różne wyniki do tabeli w zależności od daty załadowania danych.

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| employee\_id | nazwa\_pracownika | =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 |

Funkcja `monthend()` zwraca datę końcową bieżącego miesiąca, używając bieżącej daty jako swojego jedynego argumentu. Wyrażenie zwraca liczbę dni pozostałych w tym miesiącu przez odjęcie bieżącej daty od daty zakończenia miesiąca.

Wartość ta jest następnie mnożona przez średnie dzienne roszczenie z tytułu wydatków przez każdego pracownika, aby obliczyć szacunkową wartość roszczeń, które każdy pracownik złoży w pozostałej części miesiąca.