# inmonthstodate funkcja skryptu i funkcja wykresu

Ta funkcja wyszukuje, czy znacznik czasu przypada w części okresu miesiąca, dwóch miesięcy, kwartału, czterech miesięcy lub półrocza z dokładnością do jednej milisekundy wartości `base_date` włącznie. 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

Schemat funkcji `inmonthstodate`.

Schemat funkcji `inmonthstodate`.

Schemat funkcji `inmonthstodate`inmonthstodate. ![Schemat pokazujący, jak za pomocą funkcji inmonthstodate można sprawdzić, czy dany znacznik czasu mieści się w określonym segmencie czasu.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram1.png)

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. |

W funkcji `inmonthstodate()` data `base_date` pełni rolę punktu końcowego określonego segmentu roku, którego jest częścią.

Na przykład, jeśli rok zostanie podzielony na trzy części, a data `base_date` zostanie ustawiona na 15 maja, to każdy znacznik czasu mieszczący się między początkiem stycznia a końcem kwietnia będzie powodował zwrócenie logicznego fałszu. Daty między 1 maja i 15 maja będą dawać w wyniku prawdę. Dla pozostałej części roku będzie zwracany fałsz.

Schemat wyników logicznych zwracanych przez funkcję `inmonthstodate`.

Schemat wyników logicznych zwracanych przez funkcję `inmonthstodate`.

Schemat wyników logicznych zwracanych przez funkcję `inmonthstodate`inmonthstodate. ![Schemat pokazujący zakres wyników logicznych funkcji inmonthstodate.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

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ć inmonthstodate

Funkcja `inmonthstodate()` zwraca wynik logiczny. Zazwyczaj ten typ funkcji jest używany jako warunek w `if expression`. Za pomocą funkcji `inmonthstodate()` możesz wybrać okres, który chcesz sprawdzić. Na przykład, przekazując zmienną wejściową, która pozwala użytkownikowi zidentyfikować produkty wytworzone w miesiącu, kwartale lub półroczu okresu do określonej daty.

## 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 |
| --- | --- |
| `inmonthstodate(4, '01/25/2013', '04/25/2013',<br>0)` | Zwraca True, ponieważ wartość timestamp, 01/25/2013, mieści się w czteromiesięcznym okresie od 01/01/2013 do końca 04/25/2013, który obejmuje wartość 04/25/2013 argumentu base\_date. |
| `inmonthstodate(4, '04/26/2013', '04/25/2006',<br>0)` | Zwraca False, ponieważ 04/26/2013 znajduje się poza okresem z poprzedniego przykładu. |
| `inmonthstodate(4, '09/25/2005', '02/01/2006',<br>-1)` | Zwraca True, ponieważ wartość period\_no, -1, przesuwa okres wyszukiwania w tył o jeden czteromiesięczny okres (wartość n-months), co sprawia, że okres wyszukiwania obejmuje daty od 01/09/2005 do 02/01/2006. |
| `inmonthstodate(4, '04/25/2006', '06/01/2006',<br>0, 3)` | Zwraca True, ponieważ wartość first\_month\_of\_year jest ustawiona na 3, co zmienia okres wyszukiwania na zakres dat od 03/01/2006 do 06/01/2006 zamiast od 05/01/2006 do 06/01/2006. |

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.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 zmiennej systemowej `DateFormat` `(MM/DD/YYYY)`.

* Instrukcja ładowania poprzedzającego zawiera:

  * Funkcję `inmonthstodate()`, która jest ustawiona jako pole `in_months_to_date`. Określa ona transakcje, które zostały zawarte w kwartale do 15 maja 2022 roku.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`
* `in_months_to_date`

Tabela wynikowa

| date | in\_months\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/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 |

Pole `in_months_to_date` jest tworzone w poprzedniej instrukcji ładowania przy użyciu funkcji `inmonthstodate()`.

Pierwszy podany argument to `3`. Dzieli on rok na kwartały. Pierwszy podany argument określa, które pole jest oceniane. Trzeci argument to wpisana bezpośrednio w kod data 15 maja — jest to argument `base_date`, który określa datę końcową segmentu. Ostatni argument to `period_no` o wartości `0`.

Diagram funkcji `inmonthstodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthstodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthstodate`inmonthstodate bez dodatkowych argumentów. ![Diagram pokazujący zakres transakcji, które zostały zidentyfikowane jako prawdziwe przez funkcję inmonthstodate.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Każda transakcja, która ma miejsce w okresie od 1 kwietnia do 15 maja, zwraca w wyniku logiczną prawdę. Daty wypadające poza tym okresem zwracają fałsz.

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

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

Jednak w tym przykładzie chodzi o utworzenie pola, `previous_qtr_to_date`, które będzie sprawdzało, czy transakcje były zawierane kwartał przed 15 maja.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', -1) as previous_qtr_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

* `previous_qtr_to_date`

Tabela wynikowa

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/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 |

Po otrzymaniu wartości `-1` jako argumentu `period_no` funkcja `inmonthstodate()` przesuwa granice segmentu roku porównawczego o kwartał.

15 maja wypada w drugim kwartale roku, a więc początkowo segment obejmuje daty od 1 kwietnia do 15 maja. Argument `period_no` przesuwa ten segment wstecz o trzy miesiące. Zakres dat zmienia się na okres od 1 stycznia do 15 lutego.

Diagram funkcji `inmonthstodate` z argumentem period\_no ustawionym na -1.

Diagram funkcji `inmonthstodate` z argumentem period\_no ustawionym na -1.

Diagram funkcji `inmonthstodate`inmonthstodate z argumentem period\_no ustawionym na -1. ![Diagram pokazujący zakres transakcji z argumentem period_no ustawionym na -1.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example2-diagram.png)

W związku z tym każda transakcja, która ma miejsce między 1 stycznia a 15 lutego, zwróci w wyniku logiczną prawdę.

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.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 przyjęto, że marzec ma być pierwszym miesiącem roku podatkowego.

Utwórz pole, `in_months_to_date`, które określa, jakie transakcje miały miejsce w tym samym kwartale do 15 maja 2022 r.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0,3) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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`

* `in_months_to_date`

Tabela wynikowa

| date | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/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 |

Przekazując wartość `3` jako argument `first_month_of_year` funkcji `inmonthstodate()`, sprawiamy że funkcja ta uznaje za początek roku 1 marca, a następnie dzieli rok na kwartały na podstawie pierwszego przekazanego argumentu. Dlatego segmenty kwartałów to:

* marzec–maj,

* czerwiec–sierpień,

* wrzesień–listopad,

* grudzień–luty.

Argument `base_date` o wartości 15 maja dzieli następnie kwartał trwający od marca do maja przez ustawienie jego daty granicznej na 15 maja.

Diagram funkcji `inmonthstodate` z marcem ustawionym jako pierwszy miesiąc roku.

Diagram funkcji `inmonthstodate` z marcem ustawionym jako pierwszy miesiąc roku.

Diagram funkcji `inmonthstodate`inmonthstodate z marcem ustawionym jako pierwszy miesiąc roku. ![Diagram pokazujący zakres transakcji z pierwszym miesiącem roku ustawionym na marzec.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example3-diagram.png)

W związku z tym każda transakcja zawarta między 1 marca a 15 maja spowoduje zwrót w wyniku logicznej prawdy, podczas gdy transakcje z datami poza tymi granicami spowodują zwrot fałszu.

## Przykład – przykład z wykresem

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.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, które określa, czy transakcje miały miejsce w tym samym kwartale co 15 maja, jako miary w wykresie w aplikacji.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
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 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ę:

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

Tabela wynikowa

| date | =inmonthstodate(3,date,'05/15/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/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 |

Miara `‘in_months_to_date` jest tworzona na wykresie przy użyciu funkcji `inmonthstodate()`.

Pierwszy podany argument to `3`. Dzieli on rok na kwartały. Pierwszy podany argument określa, które pole jest oceniane. Trzeci argument to wpisana bezpośrednio w kod data 15 maja — jest to argument `base_date`, który określa datę końcową segmentu. Ostatni argument to `period_no` o wartości `0`.

Schemat funkcji `inmonthstodate` z segmentami kwartalnymi.

Schemat funkcji `inmonthstodate` z segmentami kwartalnymi.

Schemat funkcji `inmonthstodate`inmonthstodate z segmentami kwartalnymi. ![Diagram pokazujący zakres transakcji, które spowodują zwrot w wyniku logicznej prawdy.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example4-diagram.png)

Każda transakcja, która ma miejsce w okresie od 1 kwietnia do 15 maja, spowoduje zwrot w wyniku logicznej prawdy. Daty wypadające poza tym okresem powodują zwrot fałszu.

## Przykład 5 — zastosowanie

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

#### Skrypt ładowania i wyniki

Przegląd

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

* identyfikator produktu,

* typ produktu,

* data sprzedaży,

* cena sprzedaży.

Użytkownik chce, aby wykres pokazywał według typu produktu sprzedaż produktów w okresie do 24 grudnia 2022 roku. Użytkownik chciałby móc zdefiniować długość tego okresu.

Skrypt ładowania

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,sales_date,sales_price 
8188,product A,'9/19/2022',37.23 
8189,product D,'10/27/2022',17.17 
8190,product C,'10/30/2022',88.27 
8191,product B,'10/31/2022',57.42 
8192,product D,'11/16/2022',53.80 
8193,product D,'11/28/2022',82.06 
8194,product A,'12/2/2022',40.39 
8195,product B,'12/5/2022',87.21 
8196,product C,'12/15/2022',95.93 
8197,product B,'12/16/2022',45.89 
8198,product C,'12/19/2022',36.23 
8199,product D,'12/22/2022',25.66 
8200,product D,'12/23/2022',82.77 
8201,product A,'12/24/2022',69.98 
8202,product A,'12/24/2022',76.11 
8203,product B,'12/26/2022',25.12 
8204,product B,'12/27/2022',46.23 
8205,product B,'12/27/2022',84.21 
8206,product C,'12/28/2022',96.24 
8207,product D,'12/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 Zmienna wejściowa na arkusz.

3. Wpisz tytuł 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(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0))

9. Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| product\_type | =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0)) |
| --- | --- |
| product A | $186.48 |
| product B | $190.52 |
| product C | $220.43 |
| product D | $261.46 |

Funkcja inmonthstodate() używa danych wprowadzonych przez użytkownika jako swojego argumentu określającego rozmiar początkowego segmentu roku.

Funkcja przekazuje datę sprzedaży każdego z produktów jako drugi argument funkcji inmonthstodate(). Przekazanie daty 24 grudnia jako trzeciego argumentu do funkcji inmonthstodate() powoduje, że funkcja ta zwraca w wyniku logiczną prawdę dla produktów, które zostały sprzedane w zdefiniowanym okresie do 24 grudnia włącznie. Funkcja sum sumuje wartości sprzedaży tych produktów.