# inyeartodate — funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części roku zawierającego wartość base\_date, z dokładnością do ostatniej milisekundy wartości base\_date włącznie.

Składnia:

InYearToDate (timestamp, base\_date, period\_no[, first\_month\_of\_year])

Typ zwracanych danych: Wartość logiczna

Informacja

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

Diagram funkcji inyeartodate

Diagram funkcji inyeartodate

Diagram funkcji inyeartodate ![Przykładowy diagram zakresu dat, w którym funkcja inyeartodate zwróci wartość TRUE.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyeartodate-general.png)

Funkcja `inyeartodate()` dokona segmentacji określonej części roku przy użyciu `base_date`, identyfikując maksymalną dozwoloną datę dla tego segmentu roku. Następnie funkcja ocenia, czy pole lub wartość daty należy do tego segmentu, i zwraca wynik logiczny.

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data, która ma być porównana z wartością base\_date. |
| base\_date | Data używana do oceny roku. |
| period\_no | Rok może zostać przesunięty o wartość period\_no. period\_no jest liczbą całkowitą, gdzie 0 oznacza rok zawierający wartość base\_date. Wartości ujemne parametru period\_no oznaczają lata poprzednie, a wartości dodatnie — lata 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 `inyeartodate()` zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w wyrażeniu `if`. Spowoduje to zwrócenie agregacji lub obliczenia w zależności od tego, czy oceniana data nastąpiła w roku do danej daty włącznie.

Na przykład funkcja `inyeartodate()` może służyć do identyfikacji całego sprzętu wyprodukowanego w roku do określonej daty.

W tych przykładach używany jest format daty MM/DD/YYYY. Format daty jest określony w instrukcji `SET DateFormat` u góry skryptu ładowania danych. Format zastosowany w przykładach można zmienić, aby dostosować go do konkretnych potrzeb.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `inyeartodate ('01/25/2013', '02/01/2013', 0)` | Zwraca wartość `TRUE`. |
| `inyeartodate ('01/25/2012', '01/01/2013', 0)` | Zwraca wartość `FALSE`. |
| `inyeartodate ('01/25/2012', '02/01/2013', -1)` | Zwraca wartość `TRUE`. |
| `inyeartodate ('11/25/2012', '01/31/2013', 0, 4)` | Zwraca wartość `TRUE`.<br>Wartość `timestamp` przypada w roku obrotowym zaczynającym się w czwartym kwartale, przed wartością `base_date`. |
| `inyeartodate ('3/31/2013', '01/31/2013', 0, 4 )` | Zwraca wartość `FALSE`.<br>W porównaniu z poprzednim przykładem wartość `timestamp` wciąż mieści się w roku obrotowym, ale jest po wartości `base_date`, dlatego przypada poza częścią roku. |

## 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ład 1 — bez dodatkowych argumentów

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyeartodate.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 lata 2020–2022, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/RRRR).

* Utworzenie pola, `in_year_to_date`, które określa, jakie transakcje miały miejsce w roku do 26 lipca 2021 r.

Skrypt ładowania

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

Transactions:
    Load
        *,
        inyeartodate(date,'07/26/2021', 0) as in_year_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'01/13/2020',37.23
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'06/14/2020',82.06
8194,'08/07/2020',40.39
8195,'09/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'07/27/2021',25.12
8204,'06/06/2022',46.23
8205,'07/18/2022',84.21
8206,'11/14/2022',96.24
8207,'12/12/2022',67.67
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `in_year_to_date`

Tabela wynikowa

| date | in\_year\_to\_date |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 06/14/2020 | 0 |
| 08/07/2020 | 0 |
| 09/05/2020 | 0 |
| 01/22/2021 | -1 |
| 02/03/2021 | -1 |
| 03/17/2021 | -1 |
| 04/23/2021 | -1 |
| 05/04/2021 | -1 |
| 06/30/2021 | -1 |
| 07/26/2021 | -1 |
| 07/27/2021 | 0 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Pole `in_year_to_date` jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji `inyeartodate()`. Pierwszy podany argument określa, które pole jest oceniane.

Drugi argument to ustalona data 26 lipca 2021 r. — jest to argument `base_date`, który wskazuje granicę końcową segmentu roku. Argument `period_no` o wartości 0 jest ostatnim argumentem, co oznacza, że funkcja nie porównuje lat poprzedzających segmentowany rok ani następujących po nim.

Diagram funkcji inyeartodate, bez dodatkowych argumentów

Diagram funkcji inyeartodate, bez dodatkowych argumentów

Diagram funkcji inyeartodate, bez dodatkowych argumentów![Diagram przedstawiający zakres dat, dla których funkcja inyeartodate zwróci wartość TRUE.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyeartodate-examples-no-additional-arguments.png)

Wszelkie transakcje, które występują między 1 stycznia a 26 lipca, zwracają jako wynik wartość logiczną `TRUE`. Daty transakcji sprzed 2021 roku i po 26 lipca 2021 r. zwracają `FALSE`.

## Przykład 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyeartodate.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, `previous_year_to_date`, które określa, jakie transakcje miały miejsce w pełnym roku przed segmentem roku kończącego się 26 lipca 2021 r.

Skrypt ładowania

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

Transactions:
    Load
        *,
        inyeartodate(date,'07/26/2021', -1) as previous_year_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'01/13/2020',37.23
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'06/14/2020',82.06
8194,'08/07/2020',40.39
8195,'09/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'07/27/2021',25.12
8204,'06/06/2022',46.23
8205,'07/18/2022',84.21
8206,'11/14/2022',96.24
8207,'12/12/2022',67.67
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `previous_year_to_date`

Tabela wynikowa

| date | previous\_year\_to\_date |
| --- | --- |
| 01/13/2020 | -1 |
| 02/26/2020 | -1 |
| 03/27/2020 | -1 |
| 04/16/2020 | -1 |
| 05/21/2020 | -1 |
| 06/14/2020 | -1 |
| 08/07/2020 | 0 |
| 09/05/2020 | 0 |
| 01/22/2021 | 0 |
| 02/03/2021 | 0 |
| 03/17/2021 | 0 |
| 04/23/2021 | 0 |
| 05/04/2021 | 0 |
| 06/30/2021 | 0 |
| 07/26/2021 | 0 |
| 07/27/2021 | 0 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Wartość `period_no` równa -1 wskazuje, że funkcja `inyeartodate ()` porównuje wejściowy segment kwartału z poprzednim rokiem. Z datą wejściową 26 lipca 2021 r. segment od 1 stycznia 2021 r. do 26 lipca 2021 r. został wstępnie zidentyfikowany jako od początku roku. Wartość `period_no` następnie przesuwa ten segment o cały rok wcześniej, powodując, że datami granicznymi są 1 stycznia i 26 lipca.

Diagram funkcji inyeartodate, przykład period\_no

Diagram funkcji inyeartodate, przykład period\_no

Diagram funkcji inyeartodate, przykład period\_no![Diagram przedstawiający zakres dat, dla których funkcja inyeartodate zwróci wartość TRUE.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyeartodate-examples-period-no.png)

W związku z tym każda transakcja, która ma miejsce między 1 stycznia a 26 lipca, zwróci wynik logiczny`TRUE`.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyeartodate.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, `in_year_to_date`, które określa, jakie transakcje miały miejsce w tym samym roku do 26 lipca 2021 r.

W tym przykładzie jako pierwszy miesiąc roku obrachunkowego ustawiliśmy marzec.

Skrypt ładowania

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

Transactions:
    Load
        *,
        inyeartodate(date,'07/26/2021', 0,3) as in_year_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'01/13/2020',37.23
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'06/14/2020',82.06
8194,'08/07/2020',40.39
8195,'09/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'07/27/2021',25.12
8204,'06/06/2022',46.23
8205,'07/18/2022',84.21
8206,'11/14/2022',96.24
8207,'12/12/2022',67.67
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `in_year_to_date`

Tabela wynikowa

| date | in\_year\_to\_date |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 06/14/2020 | 0 |
| 08/07/2020 | 0 |
| 09/05/2020 | 0 |
| 01/22/2021 | 0 |
| 02/03/2021 | 0 |
| 03/17/2021 | -1 |
| 04/23/2021 | -1 |
| 05/04/2021 | -1 |
| 06/30/2021 | -1 |
| 07/26/2021 | -1 |
| 07/27/2021 | 0 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Kiedy używa się 3 jako argumentu `first_month_of_year` w funkcji `inyeartodate()`, funkcja rozpoczyna rok 1 marca. Wartość `base_date` 26 lipca 2021 r. następnie ustawia datę końcową dla tego segmentu roku.

Diagram funkcji inyeartodate, przykład first\_month\_of\_year

Diagram funkcji inyeartodate, przykład first\_month\_of\_year

Diagram funkcji inyeartodate, przykład first\_month\_of\_year![Diagram przedstawiający zakres dat, dla których funkcja inyeartodate zwróci wartość TRUE.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyeartodate-examples-first-mth-yr.png)

W związku z tym każda transakcja, która ma miejsce między 1 marca a 26 lipca 2021 r., zwróci wynik logiczny `TRUE`, podczas gdy transakcje z datami poza tymi granicami zwrócą wartość `FALSE`.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyeartodate.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 zastosowanie co w pierwszym przykładzie. Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenie określające, które transakcje miały miejsce w tym samym roku do 26 lipca 2021 r., jest tworzone jako miara w obiekcie wykresu aplikacji.

Skrypt ładowania

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

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17 
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'06/14/2020',82.06 
8194,'08/07/2020',40.39 
8195,'09/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'07/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/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ącą miarę:

=inyeartodate(date,'07/26/2021', 0)

Tabela wynikowa

| date | =inyeartodate(date,'07/26/2021', 0) |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 06/14/2020 | 0 |
| 08/07/2020 | 0 |
| 09/05/2020 | 0 |
| 01/22/2021 | -1 |
| 02/03/2021 | -1 |
| 03/17/2021 | -1 |
| 04/23/2021 | -1 |
| 05/04/2021 | -1 |
| 06/30/2021 | -1 |
| 07/26/2021 | -1 |
| 07/27/2021 | 0 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Miara in\_year\_to\_date jest tworzona w obiekcie wykresu przy użyciu funkcji inyeartodate(). Pierwszy podany argument określa, które pole jest oceniane. Drugi argument to ustalona data 26 lipca 2021 r. — jest to argument base\_date, który wskazuje granicę końcową segmentu roku komparatora. Argument period\_no o wartości 0 jest ostatnim argumentem, co oznacza, że funkcja nie porównuje lat poprzedzających segmentowany rok ani następujących po nim.

Diagram funkcji inyeartodate, przykład obiektu wykresu

Diagram funkcji inyeartodate, przykład obiektu wykresu

Diagram funkcji inyeartodate, przykład obiektu wykresu![Diagram przedstawiający zakres dat, dla których funkcja inyeartodate zwróci wartość TRUE.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyeartodate-examples-chart-object.png)

Wszelkie transakcje, które występują między 1 stycznia a 26 lipca 2021 r., zwracają jako wynik wartość logiczną TRUE. Daty transakcji sprzed 2021 roku i po 26 lipca 2021 r. zwracają FALSE.

## Przykład 5 — zastosowanie

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

* Informacje dotyczące identyfikatora produktu, typu produktu, daty produkcji i kosztu.

Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał według typu produktu koszt produktów wyprodukowanych w 2021 r. do 26 lipca.

Skrypt ładowania

```
Products:
Load
*
Inline
[
product_id,product_type,manufacture_date,cost_price
8188,product A,'01/13/2020',37.23
8189,product B,'02/26/2020',17.17
8190,product B,'03/27/2020',88.27
8191,product C,'04/16/2020',57.42
8192,product D,'05/21/2020',53.80
8193,product D,'08/14/2020',82.06
8194,product C,'10/07/2020',40.39
8195,product B,'12/05/2020',87.21
8196,product A,'01/22/2021',95.93
8197,product B,'02/03/2021',45.89
8198,product C,'03/17/2021',36.23
8199,product C,'04/23/2021',25.66
8200,product B,'05/04/2021',82.77
8201,product D,'06/30/2021',69.98
8202,product D,'07/26/2021',76.11
8203,product D,'12/27/2021',25.12
8204,product C,'06/06/2022',46.23
8205,product C,'07/18/2022',84.21
8206,product A,'11/14/2022',96.24
8207,product B,'12/12/2022',67.67
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:product\_type.

Utwórz miarę, która oblicza sumę każdego produktu wyprodukowanego w 2021 r. przed 27 lipca:

=sum(if(inyeartodate(manufacture\_date,makedate(2021,07,26),0),cost\_price,0))

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| product\_type | =sum(if(inyeartodate(manufacture\_date,makedate(2021,07,26),0),cost\_price,0)) |
| --- | --- |
| product A | $95.93 |
| product B | $128.66 |
| product C | $61.89 |
| product D | $146.09 |

Funkcja inyeartodate() zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów. W przypadku każdego produktu wyprodukowanego w 2021 r. przed 27 lipca funkcja inyeartodate() zwraca wartość logiczną TRUE i sumuje cost\_price.

Produkt D to jedyny produkt, który został wyprodukowany również po 26 lipca 2021 roku. Pozycja z product\_ID 8203 została wyprodukowana 27 grudnia i kosztowała 25,12 USD. W związku z tym ten koszt nie został uwzględniony w sumie produktu D w obiekcie wykresu.