# yearname — funkcja skryptu i funkcja wykresu

Ta funkcja zwraca rok w zapisie czterocyfrowym jako wartość wyświetlaną z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia roku zawierającego datę date.

Wykres zakresu czasu funkcji `yearname()`.

Wykres zakresu czasu funkcji `yearname()`.

Wykres zakresu czasu funkcji `yearname()`yearname(). ![Diagram przedstawiający zakres czasu, w którym funkcja yearname zwróci wynik.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-diagram1.png)

Funkcja `yearname()` różni się od funkcji `year()`, ponieważ umożliwia przesunięcie daty, którą chcesz ocenić, oraz ustawienie pierwszego miesiąca roku.

Jeśli pierwszym miesiącem roku nie jest styczeń, funkcja zwróci dwa czterocyfrowe lata z dwunastomiesięcznego okresu zawierającego datę. Na przykład, jeśli początek roku to kwiecień, a ocenianą datą jest 06/30/2020, zwróconym wynikiem będzie `2020-2021`.

Wykres funkcji `yearname()` z kwietniem jako pierwszym miesiącem roku.

Wykres funkcji `yearname()` z kwietniem jako pierwszym miesiącem roku.

Wykres funkcji `yearname()`yearname() z kwietniem jako pierwszym miesiącem roku. ![Diagram pokazujący, że funkcja yearname może identyfikować daty w okresie dwunastu miesięcy i że jej zwracana wartość może zależeć od tego, który miesiąc jest ustawiony jako pierwszy miesiąc roku.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-diagram2.png)

Składnia:

YearName(date[, period\_no[, first\_month\_of\_year]] )

Typ zwracanych danych: dual

| Argument | Opis |
| --- | --- |
| date | Data lub znacznik czasu do oszacowania. |
| period\_no | period\_no jest liczbą całkowitą, gdzie 0 oznacza rok, który zawiera datę 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. Wartość wyświetlana będzie ciągiem znaków przedstawiającym dwa lata. |

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

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

Kiedy używać

Funkcja `yearname()` przydaje się do porównywania agregacji według roku. Na przykład, jeśli chcesz zobaczyć całkowitą sprzedaż produktów według roku.

Te wymiary można utworzyć w skrypcie ładowania za pomocą funkcji tworzenia pola w tabeli kalendarza głównego. Można je również tworzyć na wykresie jako wymiary obliczone

## 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 |
| --- | --- |
| `yearname('10/19/2001')` | Zwraca „2001”. |
| `yearname('10/19/2001',-1)` | Zwraca „2000”. |
| `yearname('10/19/2001',0,4)` | Zwraca „2001-2002”. |

Tematy pokrewne

| Temat | Opis |
| --- | --- |
| [year — funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Ta funkcja zwraca liczbę całkowitą reprezentującą rok, gdy wyrażenie jest interpretowane jako data zgodnie ze standardową interpretacją liczb. |

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

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Zestaw danych zawierający zestaw transakcji za lata 2020–2022 jest ładowany do tabeli o nazwie „`Transactions`”.

* Zmienna systemowa `DateFormat`, która jest ustawiona na „`MM/DD/YYYY`”.

* Ładowanie poprzedzające używające funkcji `yearname()`, która jest ustawiona jako pole `year_name`.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
      *, 
      yearname(date) as year_name 
      ; 
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,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/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,'12/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`
* `year_name`

Tabela wynikowa

| date | year\_name |
| --- | --- |
| 01/13/2020 | 2020 |
| 02/26/2020 | 2020 |
| 03/27/2020 | 2020 |
| 04/16/2020 | 2020 |
| 05/21/2020 | 2020 |
| 08/14/2020 | 2020 |
| 10/07/2020 | 2020 |
| 12/05/2020 | 2020 |
| 01/22/2021 | 2021 |
| 02/03/2021 | 2021 |
| 03/17/2021 | 2021 |
| 04/23/2021 | 2021 |
| 05/04/2021 | 2021 |
| 06/30/2021 | 2021 |
| 07/26/2021 | 2021 |
| 12/27/2021 | 2021 |
| 06/06/2022 | 2022 |
| 07/18/2022 | 2022 |
| 11/14/2022 | 2022 |
| 12/12/2022 | 2022 |

Pole „`year_name`” jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji `yearname()` i przekazanie pola daty jako jej argumentu.

Funkcja `yearname()` identyfikuje rok, w którym przypada wartość daty, i zwraca go jako czterocyfrową wartość roku.

Schemat funkcji `yearname()`, która pokazuje 2021 jako wartość roku.

Schemat funkcji `yearname()`, która pokazuje 2021 jako wartość roku.

Schemat funkcji `yearname()`yearname(), która pokazuje 2021 jako wartość roku.![Diagram przedstawiający funkcję yearname() zwracającą 2021 dla daty 17 marca 2021.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example1-diagram.png)

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Zestaw danych zawierający zestaw transakcji za lata 2020–2022 jest ładowany do tabeli o nazwie „Transactions”.

* Zmienna systemowa DateFormat, która jest ustawiona na „`MM/DD/YYYY`”.

* Ładowanie poprzedzające używające funkcji `yearname()`, która jest ustawiona jako pole `year_name`.

Skrypt ładowania

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

Transactions: 
    Load 
      *, 
      yearname(date,-1) as prior_year_name 
      ; 
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,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/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,'12/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`
* `prior_year_name`

Tabela wynikowa

| date | prior\_year\_name |
| --- | --- |
| 01/13/2020 | 2019 |
| 02/26/2020 | 2019 |
| 03/27/2020 | 2019 |
| 04/16/2020 | 2019 |
| 05/21/2020 | 2019 |
| 08/14/2020 | 2019 |
| 10/07/2020 | 2019 |
| 12/05/2020 | 2019 |
| 01/22/2021 | 2020 |
| 02/03/2021 | 2020 |
| 03/17/2021 | 2020 |
| 04/23/2021 | 2020 |
| 05/04/2021 | 2020 |
| 06/30/2021 | 2020 |
| 07/26/2021 | 2020 |
| 12/27/2021 | 2020 |
| 06/06/2022 | 2021 |
| 07/18/2022 | 2021 |
| 11/14/2022 | 2021 |
| 12/12/2022 | 2021 |

Ponieważ `period_no` o wartości `-1` używa się jako argumentu przesunięcia w funkcji `yearname()`, funkcja najpierw identyfikuje rok, w którym odbywają się transakcje. Następnie funkcja dokonuje przesunięcia o rok wcześniej i zwraca wynikowy rok.

Diagram funkcji `yearname()` z `period_no` o wartości `-1`.

Diagram funkcji `yearname()` z `period_no` o wartości `-1`.

Diagram funkcji `yearname()`yearname() z `period_no`period\_no o wartości `-1`-1.![Diagram pokazujący, jak period_no o wartości ujemnej zmienia zakresy czasu, które identyfikuje funkcja yearname().](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example2-diagram.png)

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

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Ten sam zbiór danych, co w pierwszym przykładzie.

* Zmienna systemowa `DateFormat`, która jest ustawiona na „`MM/DD/YYYY`”.

* Ładowanie poprzedzające używające funkcji `yearname()`, która jest ustawiona jako pole `year_name`.

Skrypt ładowania

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

Transactions: 
    Load 
      *, 
      yearname(date,0,4) as year_name 
      ; 
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,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/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,'12/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:

* `id`
* `date`
* `year_name`

Tabela wynikowa

| date | year\_name |
| --- | --- |
| 01/13/2020 | 2019-2020 |
| 02/26/2020 | 2019-2020 |
| 03/27/2020 | 2019-2020 |
| 04/16/2020 | 2020-2021 |
| 05/21/2020 | 2020-2021 |
| 08/14/2020 | 2020-2021 |
| 10/07/2020 | 2020-2021 |
| 12/05/2020 | 2020-2021 |
| 01/22/2021 | 2020-2021 |
| 02/03/2021 | 2020-2021 |
| 03/17/2021 | 2020-2021 |
| 04/23/2021 | 2021-2022 |
| 05/04/2021 | 2021-2022 |
| 06/30/2021 | 2021-2022 |
| 07/26/2021 | 2021-2022 |
| 12/27/2021 | 2021-2022 |
| 06/06/2022 | 2022-2023 |
| 07/18/2022 | 2022-2023 |
| 11/14/2022 | 2022-2023 |
| 12/12/2022 | 2022-2023 |

Ponieważ argument [`first_month_of_year` o wartości `4` jest używany w funkcji `yearname()`, początek roku przesuwa się z 1 stycznia na 1 kwietnia. Dlatego każdy okres dwunastu miesięcy przecina dwa lata kalendarzowe, a funkcja `yearname()` zwraca dwa czterocyfrowe lata dla ocenianych dat.

Transakcja 8198 ma miejsce 17 marca 2021 r. Funkcja `yearname()` ustawia początek roku na 1 kwietnia i koniec na 30 marca. W związku z tym transakcja 8198 miała miejsce w okresie od 1 kwietnia 2020 r. do 30 marca 2021 r. W rezultacie funkcja `yearname()` zwraca wartość 2020-2021.

Diagram funkcji `yearname()` z marcem jako pierwszym miesiącem roku.

Diagram funkcji `yearname()` z marcem jako pierwszym miesiącem roku.

Diagram funkcji `yearname()`yearname() z marcem jako pierwszym miesiącem roku.![Diagram przedstawiający zakres czasu, w którym funkcja yearname() identyfikuje, kiedy pierwszy miesiąc roku jest ustawiony na marzec.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example3-diagram.png)

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.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 zbiór danych, co w pierwszym przykładzie.

* Zmienna systemowa `DateFormat`, która jest ustawiona na „`MM/DD/YYYY`”.

Jednak pole zwracające rok, w którym miała miejsce transakcja, jest tworzone jako miara w obiekcie wykresu.

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,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/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,'12/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`

Aby obliczyć pole `year_name`, należy utworzyć następującą miarę:

`=yearname(date)`

Tabela wynikowa

| date | =yearname(date) |
| --- | --- |
| 01/13/2020 | 2020 |
| 02/26/2020 | 2020 |
| 03/27/2020 | 2020 |
| 04/16/2020 | 2020 |
| 05/21/2020 | 2020 |
| 08/14/2020 | 2020 |
| 10/07/2020 | 2020 |
| 12/05/2020 | 2020 |
| 01/22/2021 | 2021 |
| 02/03/2021 | 2021 |
| 03/17/2021 | 2021 |
| 04/23/2021 | 2021 |
| 05/04/2021 | 2021 |
| 06/30/2021 | 2021 |
| 07/26/2021 | 2021 |
| 12/27/2021 | 2021 |
| 06/06/2022 | 2022 |
| 07/18/2022 | 2022 |
| 11/14/2022 | 2022 |
| 12/12/2022 | 2022 |

Miarę „`year_name`” tworzy się w obiekcie wykresu, używając funkcji `yearname()` i przekazując pole daty jako jej argument.

Funkcja `yearname()` identyfikuje rok, w którym przypada wartość daty, i zwraca go jako czterocyfrową wartość roku.

Diagram funkcji `yearname()`, który pokazuje 2021 jako wartość roku.

Diagram funkcji `yearname()`, który pokazuje 2021 jako wartość roku.

Diagram funkcji `yearname()`yearname(), który pokazuje 2021 jako wartość roku.![Diagram, który pokazuje, jak funkcja yearname() zwraca 2021 jako wartość roku.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-yearname-example4-diagram.png)

## Przykład 5 — scenariusz

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/yearname.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 zbiór danych, co w pierwszym przykładzie.

* Zmienna systemowa DateFormat, która jest ustawiona na „MM/DD/YYYY”.

Użytkownik końcowy chciałby otrzymać wykres przedstawiający łączną sprzedaż w ujęciu kwartalnym dla transakcji. Użyj funkcji yearname() jako wymiaru wyliczanego, aby utworzyć ten wykres, gdy wymiar yearname() nie jest dostępny w modelu danych.

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,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/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,'12/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ę.

Aby porównać agregacje według roku, utwórz ten wyliczony wymiar:

=yearname(date)

Utwórz tę miarę:

=sum(amount)

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| yearname(date) | =sum(amount) |
| --- | --- |
| 2020 | $463.55 |
| 2021 | $457.69 |
| 2022 | $294.35 |