# inmonthtodate — funkcja skryptu i funkcja wykresu

Zwraca wartość True, jeśli wartość date należy do części miesiąca zawierającego wartość basedate z dokładnością do jednej milisekundy wartości basedate włącznie.

Składnia:

InMonthToDate (timestamp, base\_date, period\_no)

Typ zwracanych danych: Wartość logiczna

Schemat funkcji `inmonthtodate`.

Schemat funkcji `inmonthtodate`.

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

Funkcja `inmonthtodate()` identyfikuje określony miesiąc jako segment. Granica początkowa to początek miesiąca. Granica końcowa może zostać ustawiona na późniejszą datę w miesiącu. Następnie sprawdza, czy zestaw dat mieści się w tym zakresie, zwracając w wyniku logiczną prawdę lub logiczny fałsz.

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data, która ma być porównana z wartością base\_date. |
| base\_date | Data używana do oceny miesiąca. |
| period\_no | Miesiąc może zostać przesunięty o wartość period\_no. period\_no jest liczbą całkowitą, gdzie 0 oznacza miesiąc zawierający wartość base\_date. Wartości ujemne parametru period\_no oznaczają miesiące poprzednie, a wartości dodatnie — miesiące następne. |

Kiedy używać

Funkcja `inmonthtodate()` zwraca wynik logiczny. Zazwyczaj ten typ funkcji jest używany jako warunek w `if expression`. Funkcja `inmonthtodate()` zwraca agregację lub obliczenia, które zależą od tego, czy data wypada w miesiącu do interesującej nas daty włącznie.

Na przykład funkcja `inmonthtodate()` może służyć do identyfikacji całego sprzętu wyprodukowanego w miesiącu 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 |
| --- | --- |
| `inmonthtodate ('01/25/2013', '25/01/2013',<br>0)` | Zwraca wartość True |
| `inmonthtodate ('01/25/2013', '24/01/2013',<br>0)` | Zwraca wartość False |
| `inmonthtodate ('01/25/2013', '28/02/2013',<br>-1)` | Zwraca wartość True |

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthtodate.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 zostało przekazane w formacie `DateFormat` zmiennej systemowej (`MM/DD/YYYY`).

* Instrukcja ładowania poprzedzającego zawiera:

  * funkcję `inmonthtodate()`, która jest ustawiona jako pole `in_month_to_date`. Pozwala to sprawdzić, które transakcje zostały zawarte między 1 a 26 lipca 2022 roku.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthtodate(date,'07/26/2022', 0) as in_month_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_month_to_date`

Tabela wynikowa

| date | in\_month\_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 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | -1 |
| 7/22/2022 | -1 |
| 7/23/2022 | -1 |
| 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_month_to_date` jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji `inmonthtodate()`.

Pierwszy argument określa, które pole jest oceniane. Drugi argument to wpisana bezpośrednio w kod data 26 lipca, która jest wartością argumentu `base_date`. Ten argument `base_date` określa, który miesiąc jest segmentowany i końcową granicę tego segmentu.

Argument `period_no` o wartości `0` jest ostatni, co oznacza, że funkcja nie porównuje miesięcy poprzedzających segmentowany miesiąc ani następujących po nim.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

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

W efekcie wszelkie transakcje, które występują między 1 a 26 lipca, powodują zwrot w wyniku logicznej prawdy. Każda transakcja zawarta w lipcu po 26 lipca powoduje zwrot logicznego fałszu, podobnie jak każda transakcja zawarta w jakimkolwiek innym miesiącu roku.

## Przykład 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthtodate.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 chodzi o utworzenie pola, `six_months_prior`, sprawdzającego, które transakcje zostały zawarte pełne sześć miesięcy przed 1 i 26 lipca.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthtodate(date,'07/26/2022', -6) as six_months_prior 
    ; 
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`

* `six_months_prior`

Tabela wynikowa

| date | six\_months\_prior |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | 0 |
| 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 `-6` jako argumentu `period_no` funkcja `inmonthtodate()` przesuwa granice segmentu miesiąca porównawczego o sześć miesięcy. Początkowo segment miesiąca jest równy zakresowi dat od 1 do 26 lipca. Następnie `period_no` przesuwa go wstecz o sześć miesięcy, w efekcie czego zostają przesunięte granice dat, które od tej pory wypadają między 1 i 26 stycznia.

Diagram funkcji `inmonthtodate` z argumentem period\_no ustawionym na -6.

Diagram funkcji `inmonthtodate` z argumentem period\_no ustawionym na -6.

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

W efekcie wszelkie transakcje zawarte między 1 i 26 stycznia będą powodować zwrot w wyniku logicznej prawdy.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthtodate.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 między 1 a 26 lipca, jako miary w obiekcie wykresu 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 między 1 a 26 lipca, utwórz następującą miarę:

`=inmonthtodate(date,'07/26/2022', 0)`

Tabela wynikowa

| date | =inmonthtodate(date,'07/26/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 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | -1 |
| 7/22/2022 | -1 |
| 7/23/2022 | -1 |
| 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 pola `in_month_to_date` została utworzona na wykresie za pomocą funkcji `inmonthtodate()`.

Pierwszy argument określa, które pole jest oceniane. Drugi argument to wpisana bezpośrednio w kod data 26 lipca, która jest wartością argumentu `base_date`. Ten argument base\_date określa, który miesiąc jest segmentowany i końcową granicę tego segmentu. Ostatni argument to `period_no` o wartości 0. To znaczy, że funkcja nie porównuje miesięcy poprzedzających segmentowany miesiąc, ani po nim następujących.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate` bez dodatkowych argumentów.

Diagram funkcji `inmonthtodate`inmonthtodate bez dodatkowych argumentów.![Diagram pokazujący zakres transakcji między 1 a 26 lipca.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthtodate-example3-diagram.png)

W efekcie wszelkie transakcje, które występują między 1 a 26 lipca, powodują zwrot w wyniku logicznej prawdy. Każda transakcja zawarta w lipcu po 26 lipca powoduje zwrot logicznego fałszu, podobnie jak każda transakcja zawarta w jakimkolwiek innym miesiącu roku.

## Przykład 4 — zastosowanie

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

#### Skrypt ładowania i wyniki

Przegląd

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

* Product ID

* Manufacture date

* Cost price

Z powodu błędu sprzętowego produkty wyprodukowane w lipcu 2022 r. były wadliwe. Problem został rozwiązany 27 lipca 2022 r.

Użytkownik końcowy chciałby uzyskać wykres wyświetlający według miesięc status produktów: „defective” (wadliwe; wartość logiczna TRUE) lub „faultless” (bez wad; wartość logiczna FALSE) oraz koszt produktów wytworzonych w danym miesiącu.

Skrypt ładowania

```
Products: 
Load 
* 
Inline  
[ 
product_id,manufacture_date,cost_price 
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:

* `=monthname(manufacture_date)`
* `=if(Inmonthtodate(manufacture_date,makedate(2022,07,26),0),'Defective','Faultless')`

Aby obliczyć sumę kosztów produktów, utwórz następującą miarę:

`=sum(cost_price)`

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| monthname(manufacture\_date) | if(Inmonthtodate(manufacture\_date,makedate(2022,07,26),0),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| Jan 2022 | Faultless | $54.40 |
| Feb 2022 | Faultless | $145.69 |
| Mar 2022 | Faultless | $53.80 |
| Apr 2022 | Faultless | $82.06 |
| May 2022 | Faultless | $127.60 |
| Jun 2022 | Faultless | $141.82 |
| Jul 2022 | Defective | $144.66 |
| Jul 2022 | Faultless | $69.98 |
| Aug 2022 | Faultless | $147.46 |
| Sep 2022 | Faultless | $84.21 |
| Oct 2022 | Faultless | $163.91 |

Funkcja `inmonthtodate()` zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów.

Dla dat powodujących zwrot logicznej prawdy produkt jest oznaczany jako wadliwy (Defective). Dla każdego produktu powodującego zwrot wartości FALSE, a zatem niewyprodukowanego w lipcu do 26. dnia tego miesiąca włącznie, funkcja dodaje oznaczenie „Faultless” (Bez wad).