# monthsstart funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu pierwszej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza, który zawiera datę bazową. Można także wyszukać znacznik czasu dla okresu poprzedniego lub następnego okresu. Domyślnym formatem wyjściowym jest DateFormat ustawiony w skrypcie.

MonthsStart(n\_months, date[, period\_no [, first\_month\_of\_year]])

Typ zwracanych danych: Dual

Diagram funkcji `monthsstart()`

Diagram funkcji `monthsstart()`

Diagram funkcji `monthsstart()`monthsstart() ![Example diagram showing how each of the elements of the function work together to return the timestamp result. The year is broken up into a number of segments and given a date input, the function returns a timestamp value.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsstart-general.png)

Funkcja `monthsstart()` dzieli rok na segmenty na podstawie przekazanego argumentu `n_months`. Następnie sprawdza, do którego segmentu należy każda z przekazanych dat, i zwraca pierwszą milisekundę tego segmentu w formacie daty. Funkcja daje również możliwość zwracania początkowego znacznika czasu z poprzednich lub następnych segmentów, a także redefiniowania pierwszego miesiąca roku.

Następujące segmenty roku są dostępne w funkcji jako argumenty `n_month`:

Możliwe argumenty `n_month`n\_month

| Okresy | Liczba miesięcy |
| --- | --- |
| miesiąc | 1 |
| dwa miesiące | 2 |
| kwartał | 3 |
| cztery miesiące | 4 |
| pół roku | 6 |

Argumenty

| Argument | Opis |
| --- | --- |
| n\_months | Liczba miesięcy określająca okres. Wartość całkowita lub wyrażenie, którego wynikiem jest jedna z następujących wartości całkowitych: 1 (równoważnik funkcji inmonth()), 2 (dwa miesiące), 3 (równoważnik funkcji inquarter()), 4 (cztery miesiące) lub 6 (pół roku). |
| date | Data lub znacznik czasu do oszacowania. |
| period\_no | Okres może być przesunięty o wartość period\_no — liczbę całkowitą lub wyrażenie, którego wynikiem jest liczba całkowita, gdzie wartość 0 wskazuje dzień zawierający wartość base\_date. Wartości ujemne parametru period\_no oznaczają okresy poprzednie, a wartości dodatnie — okresy następne. |
| first\_month\_of\_year | Jeśli użytkownik zamierza korzystać z lat (obrotowych), które nie zaczynają się w styczniu, powinien wskazać wartość od 2 do 12 jako parametr first\_month\_of\_year. |

## Kiedy używać

Funkcja `monthsstart()` jest powszechnie używana jako część wyrażenia, gdy użytkownik chce, by w obliczeniach użyto ułamka okresu, który jeszcze nie nastąpił. Można to wykorzystać na przykład do dostarczenia zmiennej wejściowej umożliwiającej użytkownikowi obliczenie sumy odsetek nagromadzonych w miesiącu, kwartale lub półroczu.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `monthsstart(4, '10/19/2013')` | Zwraca 09/01/2013. |
| `monthsstart(4, '10/19/2013, -1)` | Zwraca 05/01/2013. |
| `monthsstart(4, '10/19/2013', 0, 2<br>)` | Zwraca 10/01/2013, ponieważ początek roku został zmieniony na miesiąc 2. |

## 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/monthsstart.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 w formacie `DateFormat` zmiennej systemowej (MM/DD/YYYY).

* Utworzenie pola `bi_monthly_start`, które grupuje transakcje w segmenty dwumiesięczne i zwraca początkowy znacznik czasu segmentu dla każdej transakcji.

Skrypt ładowania

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

Transactions:
    Load
        *,
        monthsstart(2,date) as bi_monthly_start,
        timestamp(monthsstart(2,date)) as bi_monthly_start_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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`

* `bi_monthly_start`

* `bi_monthly_start_timestamp`

Tabela wynikowa

| date | początek dwumiesięczny | znacznik czasu początku dwumiesięcznego |
| --- | --- | --- |
| 19.02.2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 7.03.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 30.03.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 05.04.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 16.04.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 01.05.2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/22/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/15/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/26/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 7/9/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 7/22/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 7/23/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 7/27/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 8/2/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 8/8/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 8/19/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 10/14/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 10/29/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |

Pole `bi_monthly_start` jest tworzone w poprzedniej instrukcji load przy użyciu funkcji `monthsstart()`. Pierwszy podany argument to 2, dzielący rok na segmenty dwumiesięczne. Pierwszy podany argument określa, które pole jest oceniane.

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

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

Diagram funkcji `monthsstart()`monthsstart(), przykład bez dodatkowych argumentów ![Diagram showing the results of using the monthsstart function to determine the segment of the year in which a transaction took place. In this case, the year is broken up into segments and the input date is converted to a timestamp.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsstart-example-no-add-arg.png)

Transakcja 8195 ma miejsce 22 maja. Funkcja `monthsstart()` początkowo dzieli rok na segmenty dwumiesięczne. Transakcja 8195 należy do segmentu od 1 maja do 30 czerwca. W związku z tym funkcja zwraca pierwszą milisekundę tego segmentu, 1 maja 2022 r., godz 00:00:00.

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

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

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.

* Utworzenie pola, `prev_bi_monthly_start`, które zwraca pierwszą milisekundę dwumiesięcznego segmentu przed zawarciem transakcji.

Skrypt ładowania

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

Transactions:
    Load
        *,
        monthsstart(2,date,-1) as prev_bi_monthly_start,
	    timestamp(monthsstart(2,date,-1)) as prev_bi_monthly_start_timestamp
	    ;
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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`

* `prev_bi_monthly_start`

* `prev_bi_monthly_start_timestamp`

Tabela wynikowa

| date | poprzedni\_dwumiesięczny\_początek | poprzedni\_dwumiesięczny\_początek\_znacznik\_czasu |
| --- | --- | --- |
| 19.02.2022 | 11/01/2021 | 01.11.2021 00:00:00 |
| 7.03.2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 30.03.2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 05.04.2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 16.04.2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |
| 01.05.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 5/7/2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 5/22/2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 6/15/2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 6/26/2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 7/9/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 7/22/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 7/23/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 7/27/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 8/2/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 8/8/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 8/19/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 9/26/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 10/14/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 10/29/2022 | 07/01/2022 | 1.07.2022 00:00:00 |

Jeśli po podzieleniu roku na segmenty dwumiesięczne do funkcji `period_no` jako argument `monthsstart()` przekażemy wartość -1, funkcja ta zwróci ostatnią milisekundę dwumiesięcznego segmentu poprzedzającego ten, w którym zawarto transakcję.

Diagram funkcji `monthsstart()`, przykład z argumentem period\_no

Diagram funkcji `monthsstart()`, przykład z argumentem period\_no

Diagram funkcji `monthsstart()`monthsstart(), przykład z argumentem period\_no ![Diagram showing the results of using the monthsstart function to determine the segment of the year in which a transaction took place. In this case, the year is broken up into segments and the input date is converted to a timestamp.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsstart-example-period-no.png)

Transakcja 8195 należy do segmentu od maja do czerwca. W związku z tym poprzedni dwumiesięczny segment obejmował okres od 1 marca do 30 kwietnia, więc funkcja zwraca pierwszą milisekundę tego segmentu – 1 marca 2022 r., godz 00:00:00.

## Przykład 3 — first\_month\_of\_year

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

#### Skrypt ładowania i wyniki

Przegląd

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

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.

* Utworzenie pola `bi_monthly_start`, które grupuje transakcje w segmenty dwumiesięczne i zwraca początkowy znacznik czasu zestawu dla każdej transakcji.

Jednak w tym przykładzie musimy również ustawić kwiecień jako pierwszy miesiąc roku obrotowego.

Skrypt ładowania

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

Transactions:
    Load
        *,
        monthsstart(2,date,0,4) as bi_monthly_start,
        timestamp(monthsstart(2,date,0,4)) as bi_monthly_start_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:

* `date`

* `bi_monthly_start`

* `bi_monthly_start_timestamp`

Tabela wynikowa

| date | początek dwumiesięczny | znacznik czasu początku dwumiesięcznego |
| --- | --- | --- |
| 19.02.2022 | 02/01/2022 | 1.02.2022 00:00:00 AM |
| 7.03.2022 | 02/01/2022 | 1.02.2022 00:00:00 AM |
| 30.03.2022 | 02/01/2022 | 1.02.2022 00:00:00 AM |
| 05.04.2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 16.04.2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 01.05.2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 5/7/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 5/22/2022 | 04/01/2022 | 4/1/2022 12:00:00 AM |
| 6/15/2022 | 06/01/2022 | 1.06.2022 00:00:00 |
| 6/26/2022 | 06/01/2022 | 1.06.2022 00:00:00 |
| 7/9/2022 | 06/01/2022 | 1.06.2022 00:00:00 |
| 7/22/2022 | 06/01/2022 | 1.06.2022 00:00:00 |
| 7/23/2022 | 06/01/2022 | 1.06.2022 00:00:00 |
| 7/27/2022 | 06/01/2022 | 1.06.2022 00:00:00 |
| 8/2/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/8/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/19/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 9/26/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
| 10/29/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |

Kiedy wartość 4 jest używana jako argument `first_month_of_year` w funkcji `monthsstart()`, funkcja rozpoczyna rok 1 kwietnia. Następnie dzieli rok na segmenty dwumiesięczne: Apr-May,Jun-Jul,Aug-Sep,Oct-Nov,Dec-Jan,Feb-Mar.

Diagram funkcji `monthsstart()`, przykład z użyciem argumentu first\_month\_of\_year

Diagram funkcji `monthsstart()`, przykład z użyciem argumentu first\_month\_of\_year

Diagram funkcji `monthsstart()`monthsstart(), przykład z użyciem argumentu first\_month\_of\_year ![Diagram showing the results of using the monthsstart function to determine the segment of the year in which a transaction took place. In this case, the year is broken up into segments and the input date is converted to a timestamp.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsstart-example-first-mth-yr.png)

Transakcja 8195 miała miejsce 22 maja i należy do segmentu od 1 kwietnia do 31 maja. W związku z tym funkcja zwraca pierwszą milisekundę tego segmentu, 1 kwietnia 2022 r., godz 00:00:00.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsstart.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. Zostają utworzone obliczenia grupujące transakcje w segmenty dwumiesięczne i zwracające początkowy znacznik czasu zestawu dla każdej transakcji jako miara w obiekcie wykresu aplikacji.

Skrypt ładowania

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

Transactions:
Load
*
Inline
[
id,date,amount
8188,2/19/2022,37.23
8189,3/7/2022,17.17
8190,3/30/2022,88.27
8191,4/5/2022,57.42
8192,4/16/2022,53.80
8193,5/1/2022,82.06
8194,5/7/2022,40.39
8195,5/22/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 to pole jako wymiar: date.

Utwórz następujące miary:

=monthsstart(2,date)

=timestamp(monthsstart(2,date))

Te obliczenia pobiorą początkowy znacznik czasu dwumiesięcznego segmentu, w którym została zawarta każda transakcja.

Tabela wynikowa

| date | =monthsstart(2,date) | =znacznik czasu(monthsstart(2,date)) |
| --- | --- | --- |
| 9/26/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 10/14/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 10/29/2022 | 09/01/2022 | 9/1/2022 12:00:00 AM |
| 7/9/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 7/22/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 7/23/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 7/27/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 8/2/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 8/8/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 8/19/2022 | 07/01/2022 | 1.07.2022 00:00:00 |
| 01.05.2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/22/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/15/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/26/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 7.03.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 30.03.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 05.04.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 16.04.2022 | 03/01/2022 | 01.03.2022 00:00:00 |
| 19.02.2022 | 01/01/2022 | 1/1/2021 12:00:00 AM |

Diagram funkcji monthsstart(), przykład obiektu wykresu

Diagram funkcji monthsstart(), przykład obiektu wykresu

Diagram funkcji monthsstart()monthsstart(), przykład obiektu wykresu ![Diagram showing the results of using the monthsstart function to determine the segment of the year in which a transaction took place. In this case, the year is broken up into segments and the input date is converted to a timestamp.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthsstart-example-chart-object.png)

Transakcja 8195 miała miejsce 22 maja. Funkcja monthsstart() początkowo dzieli rok na segmenty dwumiesięczne. Transakcja 8195 należy do segmentu od 1 maja do 30 czerwca. W związku z tym funkcja zwraca pierwszą milisekundę tego segmentu, 01.05.2022 r., godz 00:00:00.

## Przykład 5 — zastosowanie

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthsstart.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 zawierający zestaw sald kredytów, który jest ładowany do tabeli o nazwie Loans.

* Dane zawierające identyfikatory kredytów, saldo na początku miesiąca i prostą stopę procentową naliczaną od każdego kredytu rocznie.

Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał według identyfikatora pożyczki bieżące odsetki naliczone od każdej pożyczki w wybranym okresie. Rok obrotowy rozpoczyna się w styczniu.

Skrypt ładowania

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

Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
```

Wyniki

Załaduj dane i otwórz arkusz.

Na początku skryptu ładowania została utworzona zmienna (vPeriod), która zostanie powiązana z kontrolką wejściową zmiennej. Następnie skonfiguruj zmienną jako obiekt niestandardowy w arkuszu.

Wykonaj następujące czynności:

1. W panelu zasobów kliknij Wykresy.

2. W sekcji Obiekty pulpitu nawigacyjnego przeciągnij Zmienne dane wejściowe na arkusz.

3. Wprowadź tytuł obiektu wykresu.

4. W polu Zmienna wybierz vPeriod jako nazwę i ustaw obiekt tak, aby był wyświetlany jako lista rozwijana.

5. W obszarze Wartości skonfiguruj obiekt tak, aby używał wartości dynamicznych. Wprowadź:  
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'

Następnie utwórz tabelę wyników.

Wykonaj następujące czynności:

1. Utwórz nową tabelę. Dodaj następujące pola jako wymiary:

   * employee\_id

   * employee\_name

2. Utwórz miarę, aby obliczyć narosłe odsetki:

   =start\_balance\*(rate\*(today(1)-monthsstart($(vPeriod),today(1)))/365)

3. Ustaw Formatowanie liczb miary na Waluta. Kliknij the Koniec edycji icon. Możesz teraz modyfikować dane pokazane w tabeli, dostosowując segment czasu w obiekcie zmiennych.

Tak będzie wyglądać tabela wyników po wybraniu opcji okresu month:

Tabela wynikowa

| loan\_id | start\_balance | =start\_balance\*(rate\*(today(1)-monthsstart($(vPeriod),today(1)))/365) |
| --- | --- | --- |
| 8188 | $10000.00 | $7.95 |
| 8189 | $15000.00 | $67.93 |
| 8190 | $17500.00 | $33.37 |
| 8191 | $21000.00 | $56.73 |
| 8192 | $90000.00 | $600.66 |

Funkcja monthsstart() przyjmuje dane od użytkownika jako pierwszy argument i bieżącą datę jako drugi argument, po czym zwraca datę początkową okresu wybranego przez użytkownika. Odejmując ten wynik od bieżącej daty, wyrażenie zwraca liczbę dni, które upłynęły do tej pory w tym okresie.

Wartość ta jest następnie mnożona przez stopę procentową i dzielona przez 365, aby uzyskać wysokość odsetek nagromadzonych do tego momentu tygodnia. Wynik jest następnie mnożony przez saldo początkowe pożyczki, aby zwrócić odsetki naliczone do tej pory w tym okresie.