# 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: Wartość 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/sense/May2025/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/sense/May2025/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ć

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/RRRR. 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. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.

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/sense/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 instrukcji ładowania poprzedzającego 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/sense/May2025/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/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Skrypt ładowania i wyniki

Przegląd

Używany jest ten sam zestaw danych i zastosowanie 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/sense/May2025/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/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.htm)

#### Skrypt ładowania i wyniki

Przegląd

Używany jest ten sam zestaw danych i zastosowanie 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/sense/May2025/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/sense/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 zastosowanie co w pierwszym przykładzie.

W tym przykładzie zestaw danych pozostaje bez zmian i jest ładowany do aplikacji. Zadanie polega na utworzeniu obliczenia określającego, czy transakcje miały miejsce w tym samym kwartale, w którym wypada 15 maja 2022 r., 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/sense/May2025/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/sense/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 opcję Obiekty niestandardowe.

2. Wybierz pakiet Qlik Dashboard i dodaj Wprowadzanie zmiennych do swojego arkusza.

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.