# inmonths funkcja skryptu i funkcja wykresu

Ta funkcja sprawdza, czy znacznik czasu mieści się w tym samym okresie miesięcznym, dwumiesięcznym, kwartalnym, czteromiesięcznym lub półrocznym, jako data bazowa. Można także wyszukać, czy znacznik czasu przypada w okresie poprzednim lub następnym.

Składnia:

InMonths(n\_months, timestamp, base\_date, period\_no [, first\_month\_of\_year])

Typ zwracanych danych: Logiczna

W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.

Schemat funkcji `inmonths()`

Schemat funkcji `inmonths()`

Schemat funkcji `inmonths()`inmonths() ![Schemat pokazuje zakres czasu, w którym funkcja inmonths() będzie zwracać prawdę lub fałsz dla daty bazowej.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-diagram1.png)

Funkcja `inmonths()` dzieli rok na segmenty na podstawie przekazanego argumentu `n_months`. Następnie określa, czy każdy z ocenianych znaczników czasu wypada w tym samym segmencie, co argument `base_date`. Jeśli jednak zostanie przekazany argument `period_no`, funkcja określa, czy znaczniki czasu wypadają w poprzednim lub następnym okresie od `base_date`.

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

Argumenty funkcji `n_month`n\_month

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

Kiedy używać inmonths

Funkcja `inmonths()` zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w `if expression`. Za pomocą funkcji `inmonths()` możesz wybrać okres, który chcesz sprawdzić. Na przykład możesz pozwolić użytkownikowi zidentyfikować produkty wytworzone w miesiącu, kwartale lub półroczu określonego okresu.

Typ zwracanych danych: Logiczna

W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.

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). |
| timestamp | Data, która ma być porównana z wartością base\_date. |
| base\_date | Data używana do oceny okresu. |
| 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. |

Aby ustawić pierwszy miesiąc roku w argumencie `first_month_of_year`, możesz użyć następujących wartości:

first\_month\_of\_year values

| Month | Wartość |
| --- | --- |
| Luty | 2 |
| Marzec | 3 |
| Kwiecień | 4 |
| Maj | 5 |
| Czerwiec | 6 |
| Lipiec | 7 |
| Sierpień | 8 |
| Wrzesień | 9 |
| Październik | 10 |
| Listopad | 11 |
| Grudzień | 12 |

## 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. Więcej informacji można znaleźć w temacie [Modyfikowanie ustawień regionalnych na potrzeby aplikacji i skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Domyślne ustawienia regionalne w aplikacjach są oparte na profilu użytkownika. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Cloud. Interfejs Qlik Cloud będzie wyświetlany w tym samym języku co używana przeglądarka.

Jeżeli jesteś twórcą aplikacji, możesz wybrać domyślny region dla tworzonych przez siebie aplikacji. Więcej informacji zawiera temat [Ustawianie preferowanych ustawień regionalnych do tworzenia aplikacji i skryptów w Analityka Qlik Cloud](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `inmonths(4, '01/25/2013', '04/25/2013', 0)` | Zwraca wartość TRUE. Ponieważ wartość znacznika, 01/25/2013, zawiera się w okresie czteromiesięcznym od 01/01/2013 do 04/30/2013, w którym przypada `base_date`, 04/25/2013. |
| `inmonths(4, '05/25/2013', '04/25/2013', 0)` | Zwraca wartość FALSE. Ponieważ data 05/25/2013 przypada poza tym samym okresem co poprzedni przykład. |
| `inmonths(4, '11/25/2012', '02/01/2013', -1 )` | Zwraca wartość TRUE. Ponieważ wartość `period_no`, `-1` powoduje przesunięcie okresu wyszukiwania w tył o jeden okres czterech miesięcy (wartość n-months), przez co okres wyszukiwania przypada od 09/01/2012 do 12/31/2012. |
| `inmonths(4, '05/25/2006', '03/01/2006', 0, 3)` | Zwraca wartość TRUE. Ponieważ wartość `first_month_of_year` jest ustawiona na `3`, co sprawia, że okres wyszukiwania jest od 03/01/2006 do 07/30/2006 zamiast od 01/01/2006 do 04/30/2006. |

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonths.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`.

* Ładowanie poprzedzające z dodatkową zmienną `in_months` określającą, które transakcje miały miejsce w kwartale obejmującym 15 maja 2022 roku.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
       *, 
       inmonths(3,date,'05/15/2022', 0) as in_months 
       ; 
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`
* `in_months`

Tabela wynikowa

| date | in\_months |
| --- | --- |
| 19.02.2022 | 0 |
| 7.03.2022 | 0 |
| 30.03.2022 | 0 |
| 5.04.2022 | -1 |
| 16.04.2022 | -1 |
| 01.05.2022 | -1 |
| 5/7/2022 | -1 |
| 5/22/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Pole `in_months` jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji `inmonths()`. Pierwszy podany argument to `3`. Dzieli on rok na kwartały. Drugi argument określa, które pole jest ewaluowane – pole daty w tym przypadku. Trzeci argument to wpisana bezpośrednio w kod data 15 maja, która jest datą `base_date`. Ostatnim argumentem jest `period_no` o wartości `0`.

Schemat funkcji `inmonths()` z segmentami kwartalnymi

Schemat funkcji `inmonths()` z segmentami kwartalnymi

Schemat funkcji `inmonths()`inmonths() z segmentami kwartalnymi ![Schemat pokazujący zakres czasu ewaluowany przez funkcję inmonths()  z datą 15 maja jako datą bazową i rokiem podzielonym na kwartały.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-examples1_and4-diagram.png)

Maj wypada w drugim kwartale roku. W związku z tym każda transakcja, która ma miejsce między 1 kwietnia a 30 czerwca, spowoduje zwrócenie w wyniku wartości logicznej TRUE. Można to zweryfikować w tabeli wyników.

## Przykład 2 – period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonths.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`.

* Ładowanie poprzedzające z dodatkową zmienną `previous_quarter` określającą, czy transakcje miały miejsce w kwartale przed 15 maja 2022 roku.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
       *, 
       inmonths(3,date,'05/15/2022', -1) as previous_quarter 
       ; 
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`
* `previous_quarter`

Tabela wynikowa

| date | poprzedni kwartał |
| --- | --- |
| 19.02.2022 | -1 |
| 7.03.2022 | -1 |
| 30.03.2022 | -1 |
| 5.04.2022 | 0 |
| 16.04.2022 | 0 |
| 01.05.2022 | 0 |
| 5/7/2022 | 0 |
| 5/22/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Funkcja sprawdza, czy transakcje zostały zawarte w pierwszym kwartale roku za pomocą wywołania funkcji `inmonths()` z argumentem `period_no` o wartości `-1`. 15 maja to data `base_date`, która wypada w drugim kwartale roku (kwiecień–czerwiec).

Schemat funkcji `inmonths()` z segmentami kwartalnymi i argumentem `period_no` ustawionym na `-1`

Schemat funkcji `inmonths()` z segmentami kwartalnymi i argumentem `period_no` ustawionym na `-1`

Schemat funkcji `inmonths()`inmonths() z segmentami kwartalnymi i argumentem `period_no`period\_no ustawionym na `-1`-1 ![Schemat pokazujący zakres czasu ewaluowany przez funkcję inmonths()  z datą 15 maja jako datą bazową, rokiem podzielonym na kwartały oraz argumentem period_no ustawionym na -1, co cofa zakres czasu o jeden kwartał.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-example2-diagram.png)

W związku z tym każda transakcja zawarta między styczniem i marcem spowoduje zwrócenie w wyniku logicznej prawdy.

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonths.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`.

* Poprzedzające ładowanie z dodatkową zmienną `in_months`, która określa, które transakcje miały miejsce w tym samym kwartale, w którym wypada 15 maja 2022 roku.

W tym przykładzie przyjęto, że marzec ma być pierwszym miesiącem roku podatkowego.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
       *, 
       inmonths(3,date,'05/15/2022', 0, 3) as in_months 
       ; 
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`
* `in_months`

Tabela wynikowa

| date | in\_months |
| --- | --- |
| 19.02.2022 | 0 |
| 7.03.2022 | -1 |
| 30.03.2022 | -1 |
| 5.04.2022 | -1 |
| 16.04.2022 | -1 |
| 01.05.2022 | -1 |
| 5/7/2022 | -1 |
| 5/22/2022 | -1 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Przekazując wartość `3` jako argument `first_month_of_year` funkcji `inmonths()`, sprawiamy że funkcja ta uznaje za początek roku 1 marca. Następnie funkcja `inmonths()` dzieli rok na kwartały: marzec–maj, czerwiec–sierpień, wrzesień–listopad, grudzień–luty. W związku z tym 15 maja wypada w pierwszym kwartale roku (marzec–maj).

Diagram funkcji `inmonths()` z marcem ustawionym jako pierwszy miesiąc roku.

Diagram funkcji `inmonths()` z marcem ustawionym jako pierwszy miesiąc roku.

Diagram funkcji `inmonths()`inmonths() z marcem ustawionym jako pierwszy miesiąc roku. ![Schemat pokazujący zakres czasu ewaluowany przez funkcję inmonths()  z datą 15 maja jako datą bazową, rokiem podzielonym na kwartały i marcem ustawionym jako pierwszy miesiąc roku.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-example3-diagram.png)

Każda transakcja zawarta w tych miesiącach spowoduje zwrócenie logicznej prawy.

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

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

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

Przegląd

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

Jednak w tym przykładzie zbiór danych pozostaje bez zmian i jest ładowany do aplikacji. Obliczenia określające, czy transakcje miały miejsce w tym samym kwartale, w którym wypada 15 maja 2022 r., jest tworzone jako miara w wykresie w 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`

Aby obliczyć, czy transakcje zostały zawarte w tym samym kwartale, w którym wypada 15 maja, utwórz następującą miarę:

`=inmonths(3,date,'05/15/2022', 0)`

Tabela wynikowa

| date | =inmonths(3,date,'05/15/2022', 0) |
| --- | --- |
| 19.02.2022 | 0 |
| 7.03.2022 | 0 |
| 30.03.2022 | 0 |
| 5.04.2022 | -1 |
| 16.04.2022 | -1 |
| 01.05.2022 | -1 |
| 5/7/2022 | -1 |
| 5/22/2022 | -1 |
| 6/15/2022 | -1 |
| 6/26/2022 | -1 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Pole `in_months` jest tworzone w wykresie za pomocą funkcji `inmonths()`. Pierwszy podany argument to `3`. Dzieli on rok na kwartały. Drugi argument określa, które pole jest ewaluowane – pole daty w tym przypadku. Trzeci argument to wpisana bezpośrednio w kod data 15 maja, która jest datą `base_date`. Ostatnim argumentem jest `period_no` o wartości `0`.

Schemat funkcji `inmonths()` z segmentami kwartalnymi

Schemat funkcji `inmonths()` z segmentami kwartalnymi

Schemat funkcji `inmonths()`inmonths() z segmentami kwartalnymi ![Schemat pokazujący zakres czasu ewaluowany przez funkcję inmonths()  z datą 15 maja jako datą bazową i rokiem podzielonym na kwartały.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonths-examples1_and4-diagram.png)

Maj wypada w drugim kwartale roku. W związku z tym każda transakcja, która ma miejsce między 1 kwietnia a 30 czerwca, spowoduje zwrócenie w wyniku wartości logicznej TRUE. Można to zweryfikować w tabeli wyników.

## Przykład 5 — zastosowanie

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonths.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 załadowany do tabeli o nazwie Products.

* Tabela zawiera następujące pola:

  * identyfikator produktu,

  * typ produktu,

  * data produkcji,

  * cena.

Użytkownik chciałby, aby wykres wyświetlał według typu produktu koszt produktów wyprodukowanych w pierwszym segmencie roku 2021. Użytkownik chciałby móc zdefiniować długość tego segmentu.

Skrypt ładowania

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,manufacture_date,cost_price 
8188,product A,'2/19/2022',37.23 
8189,product D,'3/7/2022',17.17 
8190,product C,'3/30/2022',88.27 
8191,product B,'4/5/2022',57.42 
8192,product D,'4/16/2022',53.80 
8193,product D,'5/1/2022',82.06 
8194,product A,'5/7/2022',40.39 
8195,product B,'5/22/2022',87.21 
8196,product C,'6/15/2022',95.93 
8197,product B,'6/26/2022',45.89 
8198,product C,'7/9/2022',36.23 
8199,product D,'7/22/2022',25.66 
8200,product D,'7/23/2022',82.77 
8201,product A,'7/27/2022',69.98 
8202,product A,'8/2/2022',76.11 
8203,product B,'8/8/2022',25.12 
8204,product B,'8/19/2022',46.23 
8205,product B,'9/26/2022',84.21 
8206,product C,'10/14/2022',96.24 
8207,product D,'10/29/2022',67.67 
];
```

Wyniki

Załaduj dane i otwórz arkusz.

Na początku skryptu ładowania została utworzona zmienna vPeriod, która jest powiązana z formantem wprowadzania zmiennych.

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 sekcji Wartości kliknij Wartości dynamiczne. Wprowadź:

   ```
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'.
   ```

6. Dodaj nową tabelę do arkusza.

7. W sekcji Dane w okienku właściwości dodaj product\_type jako wymiar.

8. Dodaj następujące wyrażenie jako miarę:

   =sum(if(inmonths($(vPeriod),manufacture\_date,makedate(2022,01,01),0),cost\_price,0))

9. Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| product\_type | =sum(if(inmonths($(vPeriod),manufacture\_date,makedate(2022,01,01),0),cost\_price,0)) |
| --- | --- |
| product A | $88.27 |
| product B | $37.23 |
| product C | $17.17 |
| product D | $0.00 |

Funkcja inmonths() używa danych wprowadzonych przez użytkownika jako swojego argumentu określającego rozmiar początkowego segmentu roku. Funkcja przekazuje datę produkcji każdego z produktów jako drugi argument funkcji inmonths(). Przekazanie daty 1 stycznia jako trzeciego argumentu funkcji inmonths() powoduje, że produkty o dacie produkcji wypadającej w otwierającym segmencie roku będą powodować zwrot w wyniku logicznej prawdy, co będzie skutkowało sumowaniem ich kosztów.