# weekyear funkcja skryptu i funkcja wykresu

Ta funkcja zwraca rok, do którego należy numer tygodnia zgodnie ze zmiennymi środowiskowymi. Numer tygodnia należy do zakresu od 1 do około 52.

Składnia:

weekyear(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

Typ zwracanych danych: liczba całkowita

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data lub znacznik czasu do oszacowania. |
| first\_week\_day | Określa dzień początku tygodnia. Jeśli ten argument zostanie pominięty, wówczas zostanie użyta wartość zmiennej FirstWeekDay.<br><br>Możliwe wartości first\_week\_day to poniedziałek — 0, wtorek — 1, środa — 2, czwartek — 3, piątek — 4, sobota — 5 oraz niedziela — 6.<br><br>Aby uzyskać więcej informacji o zmiennej systemowej, zobacz [FirstWeekDay](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | Jeśli wartość broken\_weeks nie zostanie określona, wówczas wartość zmiennej BrokenWeeks zostanie zastosowana w celu zdefiniowania, czy tygodnie są dzielone, czy nie.<br><br>Aby uzyskać więcej informacji o tej zmiennej systemowej, zobacz [BrokenWeeks](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) |
| reference\_day | Jeśli wartość reference\_day nie zostanie określona, wówczas w celu zdefiniowania dnia w styczniu, który zostanie ustawiony jako dzień odniesienia do zdefiniowania tygodnia 1, zostanie użyta wartość zmiennej ReferenceDay. Domyślnie w funkcjach programu Qlik Sense za dzień odniesienia uznaje się 4. Oznacza to, że pierwszy tydzień musi zawierać datę 4 stycznia lub, ujmując rzecz inaczej, pierwszy tydzień musi zawsze zawierać co najmniej 4 dni w styczniu.<br><br>Aby uzyskać więcej informacji o tej zmiennej systemowej, zobacz [ReferenceDay](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

Funkcja `weekyear()` określa, w którym tygodniu roku wypada określona data. Zwraca rok odpowiadający danemu numerowi tygodnia.

Jeżeli `BrokenWeeks` ma parametr `0` (fałsz), `weekyear()` zwróci to jako `year()`.

Diagram zakresu funkcji `weekyear()`

Diagram zakresu funkcji `weekyear()`

Diagram zakresu funkcji `weekyear()`weekyear() ![Diagram pokazujący zakres czasu uwzględniany przez funkcję weekyear().](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram1.png)

Jeśli jednak zmienna systemowa `BrokenWeeks` zostanie ustawiona na używanie tygodni niedzielonych, pierwszy tydzień będzie musiał zawierać tylko pewną liczbę dni w styczniu, określoną przez wartość zmiennej systemowej `ReferenceDay`.

Na przykład, jeśli argumentowi `ReferenceDay` zostanie nadana wartość `4`, pierwszy tydzień będzie musiał zawierać przynajmniej cztery dni w styczniu. Pierwszy tydzień może obejmować daty grudniowe z poprzedniego roku, a ostatni tydzień może obejmować daty ze stycznia następnego roku. W takich sytuacjach funkcja `weekyear()` zwróci inną wartość niż funkcja `year()`.

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie niedzielone

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie niedzielone

Diagram zakresu funkcji `weekyear()`weekyear(), kiedy używane są tygodnie niedzielone ![Diagram pokazujący, jak funkcja weekyear() działa z niedzielonymi tygodniami.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram2.png)

Kiedy używać weekyear

Funkcja `weekyear()` jest przydatna, gdy chcesz porównać agregacje według lat. Na przykład, jeśli chcesz zobaczyć całkowitą sprzedaż produktów w ujęciu rocznym. Funkcję `weekyear()` należy wybrać zamiast `year()`, gdy użytkownik chce zachować spójność ze zmienną systemową `BrokenWeeks` w aplikacji.

## 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 |
| --- | --- |
| `weekyear('12/30/1996',0,0,4)` | Zwraca 1997, ponieważ pierwszy tydzień 1997 roku zaczyna się dnia 30.12.1996 roku. |
| `weekyear('01/02/1997',0,0,4)` | Zwraca wartość 1997 |
| `weekyear('12/28/1997',0,0,4)` | Zwraca wartość 1997 |
| `weekyear('12/30/1997',0,0,4)` | Zwraca 1998, ponieważ pierwszy tydzień 1998 roku zaczyna się 29.12.1997 roku. |
| `weekyear('01/02/1999',0,0,4)` | zwraca 1998, ponieważ 53. tydzień 1998 roku kończy się 03.01.1990 roku. |

Tematy pokrewne

| Temat | Interakcja |
| --- | --- |
| [week funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.htm) | Zwraca liczbę całkowitą reprezentującą numer tygodnia zgodnie z normą ISO 8601. |
| [year funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Zwraca liczbę całkowitą reprezentującą rok, gdy wyrażenie jest interpretowane jako data zgodnie ze standardową interpretacją liczb. |

## Przykład 1 – Tygodnie dzielone

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 ostatni tydzień 2020 r. i pierwszy tydzień 2021 r., który jest ładowany do tabeli o nazwie „`Transactions`”.

* Zmienna `BrokenWeeks`, która jest ustawiona na 1.

* Ładowanie poprzedzające, które zawiera następujące elementy:

  * Funkcja `weekyear()` ustawiona jako pole „`week_year`” zwracające rok, w którym miały miejsce transakcje.

  * Funkcja `week()`, ustawiona jako pole `week` pokazujące numer tygodnia każdej daty transakcji.

Skrypt ładowania

```
SET BrokenWeeks=1; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Wyniki

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

* `id`
* `date`
* `week`
* `week_year`

Tabela wynikowa

| id | date | tydzień | tydzień\_rok |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

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

Zmienna systemowa `BrokenWeeks` jest ustawiona na `1`, co znaczy, że aplikacja używa tygodni dzielonych. Pierwszy tydzień zaczyna się 1 stycznia.

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie dzielone

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie dzielone

Diagram zakresu funkcji `weekyear()`weekyear(), kiedy używane są tygodnie dzielone ![Diagram pokazujący, że funkcja weekyear() oblicza, że transakcja 8181 miała miejsce w pierwszym tygodniu oraz zwraca rok tego tygodnia, czyli 2021.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

Transakcja 8181 ma miejsce 2 stycznia, czyli w dniu należącym do pierwszego tygodnia. W związku z tym zwraca wartość 2021 dla pola „`week_year`”.

## Przykład 2 – Tygodnie niedzielone

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 ostatni tydzień 2020 r. i pierwszy tydzień 2021 r., który jest ładowany do tabeli o nazwie „`Transactions`”.

* Zmienna `BrokenWeeks`, która jest ustawiona na `0`.

* Ładunek poprzedzający, który zawiera następujące elementy:

  * Funkcja `weekyear()` ustawiona jako pole „`week_year`”, która zwraca rok, w którym miały miejsce transakcje.

  * Funkcja `week()`, ustawiona jako pole `week` pokazujące numer tygodnia każdej daty transakcji.

Jednak w tym przykładzie polityką firmy jest używać tygodni niedzielonych.

Skrypt ładowania

```
SET BrokenWeeks=0; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Wyniki

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

* `id`
* `date`
* `week`
* `week_year`

Tabela wynikowa

| id | date | tydzień | tydzień\_rok |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 53 | 2020 |
| 8181 | 01/02/2021 | 53 | 2020 |
| 8182 | 01/03/2021 | 1 | 2021 |
| 8183 | 01/04/2021 | 1 | 2021 |
| 8184 | 01/05/2021 | 1 | 2021 |
| 8185 | 01/06/2021 | 1 | 2021 |
| 8186 | 01/07/2021 | 1 | 2021 |

Zmienna systemowa `BrokenWeeks` jest ustawiona na `0`, co znaczy, że aplikacja używa tygodni niedzielonych. W związku z tym pierwszy tydzień nie musi zaczynać się 1 stycznia.

Tydzień 53. 2020 roku trwa do końca 2 stycznia 2021 roku, a tydzień 1. 2020 roku zaczyna się w niedzielę 3 stycznia 2021 roku.

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie niedzielone

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie niedzielone

Diagram zakresu funkcji `weekyear()`weekyear(), kiedy używane są tygodnie niedzielone ![Diagram pokazujący, jak funkcja weekyear() działa z tygodniami niedzielonymi oraz że tydzień 53. obejmuje dni roku 2020 i 2021.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-example2-diagram.png)

Transakcja 8181 ma miejsce 2 stycznia, czyli w dniu należącym do pierwszego tygodnia. W związku z tym zwraca wartość 2021 dla pola „`week_year`”.

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

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

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

Jednak w tym przykładzie zestaw danych pozostaje bez zmian i jest ładowany do aplikacji. Obliczenia zwracające numer tygodnia roku, w którym miały miejsce transakcje, są tworzone jako miara na wykresie w aplikacji.

Skrypt ładowania

```
SET BrokenWeeks=1; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Wyniki

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

* `id`
* `date`

Aby obliczyć tydzień, w którym ma miejsce transakcja, utwórz następującą miarę:

* `=week(date)`

Aby obliczyć rok, w którym ma miejsce transakcja, na podstawie numeru tygodnia, utwórz następującą miarę:

* `=weekyear(date)`

Tabela wynikowa

| id | date | tydzień | tydzień\_rok |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

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

Zmienna systemowa `BrokenWeeks` jest ustawiona na `1`, co znaczy, że aplikacja używa tygodni dzielonych. Pierwszy tydzień zaczyna się 1 stycznia.

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie dzielone

Diagram zakresu funkcji `weekyear()`, kiedy używane są tygodnie dzielone

Diagram zakresu funkcji `weekyear()`weekyear(), kiedy używane są tygodnie dzielone ![Diagram pokazujący, że funkcja weekyear() oblicza, że transakcja 8181 miała miejsce w pierwszym tygodniu oraz zwraca rok tego tygodnia, czyli 2021.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

Transakcja 8181 ma miejsce 2 stycznia, czyli w dniu należącym do pierwszego tygodnia. W związku z tym zwraca wartość 2021 dla pola „`week_year`”.

## Przykład 4 — zastosowanie

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekyear.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 ostatni tydzień 2020 r. i pierwszy tydzień 2021 r., który jest ładowany do tabeli o nazwie „`Transactions`”.

* Zmienna `BrokenWeeks`, która jest ustawiona na `0`. Co znaczy, że aplikacja będzie używać tygodni niedzielonych.

* Zmienna `ReferenceDay`, która jest ustawiona na `2`. To znaczy, że rok rozpocznie się 2 stycznia i będzie miał przynajmniej dwa dni w styczniu.

* Zmienna `FirstWeekDay`, która jest ustawiona na `1`. To znaczy, że pierwszym dniem tygodnia będzie wtorek.

Firma przyjęła zasadę, że używa tygodni dzielonych. Użytkownik końcowy chciałby otrzymać wykres przedstawiający łączną sprzedaż w ujęciu rocznym. Aplikacja używa tygodni niedzielonych i pierwszy tydzień musi mieć przynajmniej dwa dni w styczniu.

Skrypt ładowania

```
SET BrokenWeeks=0; 
SET ReferenceDay=2; 
SET FirstWeekDay=1; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42 
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę.

Aby obliczyć rok, w którym ma miejsce transakcja, na podstawie numeru tygodnia, utwórz następującą miarę:

* `=weekyear(date)`

Aby obliczyć łączną sprzedaż, utworzyć następującą miarę:

* `sum(amount)`

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| weekyear(data) | =sum(amount) |
| --- | --- |
| 2020 | 19.42 |
| 2021 | 373.37 |