# weekname funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość pokazującą rok i numer tygodnia z bazową wartością liczbową odpowiadającą znacznikowi czasu pierwszej milisekundy pierwszego dnia tygodnia, który zawiera datę date.

Składnia:

WeekName(date[, period\_no [, first\_week\_day [, broken\_weeks [, reference\_day]]]])

Funkcja `weekname()` określa, w którym tygodniu przypada data, i zwraca numer tygodnia oraz rok tego tygodnia. Pierwszy dzień tygodnia jest określany przez zmienną systemową `FirstWeekDay`. Możesz jednak również zmienić pierwszy dzień tygodnia, używając argumentu `first_week_day` w funkcji `weekname()`.

W Qlik Sense ustawienia regionalne są pobierane podczas tworzenia aplikacji, a odpowiednie ustawienia są przechowywane w skrypcie jako zmienne środowiskowe.

Deweloper aplikacji z Ameryki Północnej często ma `Set BrokenWeeks=1;` w skrypcie, co odpowiada podzielonym tygodniom. Europejski deweloper aplikacji często ma `Set BrokenWeeks=0;` w skrypcie, co odpowiada niepodzielonym tygodniom.

Jeżeli aplikacja używa podzielonych tygodni, numerowanie tygodni zaczyna się 1 stycznia i kończy w dniu poprzedzającym zmienną systemową `FirstWeekDay`, niezależnie od liczby dni.

Jeśli jednak Twoja aplikacja korzysta z niepodzielonych tygodni, tydzień 1 może rozpocząć się w poprzednim roku lub w pierwszych dniach stycznia. Zależy to od sposobu używania zmiennych systemowych `ReferenceDay` i `FirstWeekDay`.

Przykład funkcji Weekname

| Data | Nazwa tygodnia wg ISO | Nazwa tygodnia w USA |
| --- | --- | --- |
| Sat 2020 Dec 26 | 2020/52 | 2020/52 |
| Sun 2020 Dec 27 | 2020/52 | 2020/53 |
| Mon 2020 Dec 28 | 2020/53 | 2020/53 |
| Tue 2020 Dec 29 | 2020/53 | 2020/53 |
| Wed 2020 Dec 30 | 2020/53 | 2020/53 |
| Thu 2020 Dec 31 | 2020/53 | 2020/53 |
| Fri 2021 Jan 1 | 2020/53 | 2021/01 |
| Sat 2021 Jan 2 | 2020/53 | 2021/01 |
| Sun 2021 Jan 3 | 2020/53 | 2021/02 |
| Mon 2021 Jan 4 | 2021/01 | 2021/02 |
| Tue 2021 Jan 5 | 2021/01 | 2021/02 |

Kiedy używać weekname

Funkcja `weekname()` jest przydatna, gdy chcesz porównać agregacje według tygodni.

Na przykład, jeśli chcesz zobaczyć całkowitą sprzedaż produktów w tygodniu. Aby zachować spójność ze zmienną środowiskową `BrokenWeeks` w aplikacji, użyj `weekname()` zamiast `lunarweekname()`. Jeśli aplikacja używa niepodzielonych tygodni, tydzień 1 może zawierać daty z grudnia poprzedniego roku lub wykluczać daty ze stycznia bieżącego roku. Jeśli aplikacja używa podzielonych tygodni, tydzień 1 może zawierać mniej niż siedem dni.

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data lub znacznik czasu do oszacowania. |
| period\_no | shift jest liczbą całkowitą, gdzie 0 oznacza tydzień, który zawiera datę date. Wartości ujemne parametru shift oznaczają poprzednie tygodnie, a wartości dodatnie — tygodnie następne. |
| 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) |

## 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).

W poniższych przykładach zakłada się:

```
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;
```

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| weekname('01/12/2013') | Zwraca 2013/02. |
| weekname('01/12/2013', -1) | Zwraca 2013/01. |
| weekname('01/12/2013', 0, 1) | Zwraca 2013/02. |

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.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ń 2021 r. jest ładowany do tabeli o nazwie „`Transactions`”.

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

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

* Zmienna systemowa `FirstWeekDay`, która jest ustawiona na `6`.

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

  * Funkcja `weekday()` ustawiona jako pole „`week_number`”, która zwraca rok i numer tygodnia, w którym miały miejsce transakcje.

  * Funkcja `weekname()`, która jest ustawiona jako pole o nazwie „`week_day`”, aby pokazywać wartość dnia tygodnia dla każdej daty transakcji.

Skrypt ładowania

```

SET BrokenWeeks=1; 
SET DateFormat='MM/DD/YYYY'; 
SET FirstWeekDay=6; 

Transactions: 
   Load 
     *, 
     WeekDay(date) as week_day, 
     Weekname(date) as week_number 
     ; 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Wyniki

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

* `id`
* `date`
* `week_day`
* `week_number`

Tabela wynikowa

| id | date | week\_day | numer\_tygodnia |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 2021/53 |
| 8184 | 12/28/2021 | Wto | 2021/53 |
| 8185 | 12/29/2021 | Śro | 2021/53 |
| 8186 | 12/30/2021 | Czw | 2021/53 |
| 8187 | 12/31/2021 | Fri | 2021/53 |
| 8188 | 01/01/2022 | Sob | 2022/01 |
| 8189 | 01/02/2022 | Nie | 2022/02 |
| 8190 | 01/03/2022 | Pon | 2022/02 |
| 8191 | 01/04/2022 | Wto | 2022/02 |
| 8192 | 01/05/2022 | Śro | 2022/02 |
| 8193 | 01/06/2022 | Czw | 2022/02 |
| 8194 | 01/07/2022 | Fri | 2022/02 |
| 8195 | 01/08/2022 | Sob | 2022/02 |
| 8196 | 01/09/2022 | Nie | 2022/03 |
| 8197 | 01/10/2022 | Pon | 2022/03 |
| 8198 | 01/11/2022 | Wto | 2022/03 |
| 8199 | 01/12/2022 | Śro | 2022/03 |
| 8200 | 01/13/2022 | Czw | 2022/03 |
| 8201 | 01/14/2022 | Fri | 2022/03 |

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

Funkcja `weekname()` początkowo identyfikuje tydzień, w którym przypada wartość daty, i zwraca liczbę numerów tygodni oraz rok, w którym ma miejsce transakcja.

Zmienna systemowa `FirstWeekDay` ustawia niedzielę jako pierwszy dzień tygodnia. Zmienna systemowa `BrokenWeeks` ustawia aplikację tak, aby używała podzielonych tygodni, co oznacza, że tydzień 1 rozpocznie się 1 stycznia.

Diagram funkcji `weekname()` ze zmiennymi domyślnymi.

Diagram funkcji `weekname()` ze zmiennymi domyślnymi.

Diagram funkcji `weekname()`weekname() ze zmiennymi domyślnymi. ![Diagram pokazujący, w jaki sposób funkcja weekname() identyfikuje numer tygodnia i rok, w którym ma miejsce transakcja.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example1-diagram1.png)

Tydzień 1 rozpoczyna się 1 stycznia, czyli w sobotę, dlatego transakcje występujące w tym dniu zwracają wartość `2022/01` (rok i numer tygodnia).

Diagram funkcji `weekname()` identyfikującej numer tygodnia transakcji 8192.

Diagram funkcji `weekname()` identyfikującej numer tygodnia transakcji 8192.

Diagram funkcji `weekname()`weekname() identyfikującej numer tygodnia transakcji 8192. ![Diagram pokazujący, w jaki sposób funkcja weekname() identyfikuje numer tygodnia, w którym miała miejsce transakcja 8192.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example1-diagram2.png)

Ponieważ aplikacja używa podzielonych tygodni, a pierwszym dniem tygodnia jest niedziela, transakcje występujące od 2 do 8 stycznia zwracają wartość `2022/02` (tydzień 2 w 2022 r.). Przykładem może być transakcja 8192, która miała miejsce 5 stycznia, i zwraca wartość `2022/02` dla pola „`week_number`”.

## Przykład 2 – period\_no

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

#### Skrypt ładowania i wyniki

Przegląd

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

Jednak w tym przykładzie zadaniem jest utworzenie pola „`previous_week_number`”, które zwraca rok i numer tygodnia sprzed transakcji.

Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej sekcji.

Skrypt ładowania

```
SET BrokenWeeks=1; 
SET FirstWeekDay=6; 
						
Transactions: 
   Load 
     *, 
     weekname(date,-1) as previous_week_number 
     ; 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Wyniki

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

* `id`
* `date`
* `week_day`
* `week_number`

Tabela wynikowa

| id | date | week\_day | numer\_tygodnia |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 2021/52 |
| 8184 | 12/28/2021 | Wto | 2021/52 |
| 8185 | 12/29/2021 | Śro | 2021/52 |
| 8186 | 12/30/2021 | Czw | 2021/52 |
| 8187 | 12/31/2021 | Fri | 2021/52 |
| 8188 | 01/01/2022 | Sob | 2021/52 |
| 8189 | 01/02/2022 | Nie | 2021/53 |
| 8190 | 01/03/2022 | Pon | 2021/53 |
| 8191 | 01/04/2022 | Wto | 2021/53 |
| 8192 | 01/05/2022 | Śro | 2021/53 |
| 8193 | 01/06/2022 | Czw | 2021/53 |
| 8194 | 01/07/2022 | Fri | 2021/53 |
| 8195 | 01/08/2022 | Sob | 2022/01 |
| 8196 | 01/09/2022 | Nie | 2022/02 |
| 8197 | 01/10/2022 | Pon | 2022/02 |
| 8198 | 01/11/2022 | Wto | 2022/02 |
| 8199 | 01/12/2022 | Śro | 2022/02 |
| 8200 | 01/13/2022 | Czw | 2022/02 |
| 8201 | 01/14/2022 | Fri | 2022/02 |

Ponieważ `period_no` o wartości `-1` użyto jako argumentu przesunięcia w funkcji `weekname()`, funkcja najpierw identyfikuje tydzień, w którym odbywają się transakcje. Następnie identyfikuje pierwszą milisekundę poprzedniego tygodnia.

Diagram funkcji `weekname()` z przesunięciem `period_no` równym -1.

Diagram funkcji `weekname()` z przesunięciem `period_no` równym -1.

Diagram funkcji `weekname()`weekname() z przesunięciem `period_no`period\_no równym -1. ![Diagram pokazujący, jak przesunięcie period_no o minus jeden powoduje, że funkcja weekname() pobiera numer poprzedniego tygodnia.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example2-diagram.png)

Transakcja 8192 miała miejsce 5 stycznia 2022 r. Funkcja `weekname()` zwraca numer tygodnia i rok dla daty 30 grudnia 2021 r. z poprzedniego tygodnia — `2021/53`.

## Przykład 3 — first\_week\_day

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

#### Skrypt ładowania i wyniki

Przegląd

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

Jednak w tym przykładzie zgodnie z polityką firmową tydzień roboczy rozpoczyna się we wtorek.

Otwórz Edytor ładowania danych i dodaj następujący skrypt ładowania do nowej sekcji.

Skrypt ładowania

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

Transactions: 
   Load 
     *, 
     weekday(date) as week_day, 
     weekname(date,0,1) as week_number 
     ; 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Wyniki

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

* `id`
* `date`
* `week_day`
* `week_number`

Tabela wynikowa

| id | date | week\_day | numer\_tygodnia |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 2021/52 |
| 8184 | 12/28/2021 | Wto | 2021/53 |
| 8185 | 12/29/2021 | Śro | 2021/53 |
| 8186 | 12/30/2021 | Czw | 2021/53 |
| 8187 | 12/31/2021 | Fri | 2021/53 |
| 8188 | 01/01/2022 | Sob | 2022/01 |
| 8189 | 01/02/2022 | Nie | 2022/01 |
| 8190 | 01/03/2022 | Pon | 2022/01 |
| 8191 | 01/04/2022 | Wto | 2022/02 |
| 8192 | 01/05/2022 | Śro | 2022/02 |
| 8193 | 01/06/2022 | Czw | 2022/02 |
| 8194 | 01/07/2022 | Fri | 2022/02 |
| 8195 | 01/08/2022 | Sob | 2022/02 |
| 8196 | 01/09/2022 | Nie | 2022/02 |
| 8197 | 01/10/2022 | Pon | 2022/02 |
| 8198 | 01/11/2022 | Wto | 2022/03 |
| 8199 | 01/12/2022 | Śro | 2022/03 |
| 8200 | 01/13/2022 | Czw | 2022/03 |
| 8201 | 01/14/2022 | Fri | 2022/03 |

Schemat funkcji `weekname()` z wtorkiem jako pierwszym dniem tygodnia.

Schemat funkcji `weekname()` z wtorkiem jako pierwszym dniem tygodnia.

Schemat funkcji `weekname()`weekname() z wtorkiem jako pierwszym dniem tygodnia. ![Diagram przedstawiający działanie funkcji weekname(), gdy wtorek jest ustawiony jako pierwszy dzień tygodnia.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example3-diagram1.png)

Ponieważ argument `first_week_date` o wartości `1` jest używany w funkcji `weekname()`, używa ona wtorku jako pierwszego dnia tygodnia. Funkcja ta określa więc, że 53. tydzień 2021 r. rozpoczyna się we wtorek 28 grudnia, a ze względu na to, że aplikacja używa niepodzielonych tygodni, tydzień 1. rozpoczyna się 1 stycznia 2022 r., a kończy w ostatnią milisekundę poniedziałku 3 stycznia 2022 r.

Diagram przedstawiający numer tygodnia transakcji 8192 z wtorkiem jako pierwszym dniem tygodnia.

Diagram przedstawiający numer tygodnia transakcji 8192 z wtorkiem jako pierwszym dniem tygodnia.

Diagram przedstawiający numer tygodnia transakcji 8192 z wtorkiem jako pierwszym dniem tygodnia. ![Diagram pokazujący, jak ustawienie wtorku jako pierwszego dnia tygodnia powoduje, że funkcja weekname() zwraca inny numer tygodnia dla transakcji 8192.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example3-diagram2.png)

Transakcja 8192 miała miejsce 5 stycznia 2022 r. W związku z tym, używając wtorku jako parametru `first_week_day`, funkcja `weekname()` zwraca wartość `2022/02` dla pola „`week_number`”.

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.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 zbiór danych pozostaje bez zmian i jest ładowany do aplikacji. Obliczenie zwracające numer roku tygodnia, kiedy wystąpiły transakcje, jest tworzone jako miara w obiekcie wykresu aplikacji.

Skrypt ładowania

```
SET BrokenWeeks=1; 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2021,58.27 
8184,12/28/2021,67.42 
8185,12/29/2021,23.80 
8186,12/30/2021,82.06 
8187,12/31/2021,40.56 
8188,01/01/2022,37.23 
8189,01/02/2022,17.17 
8190,01/03/2022,88.27 
8191,01/04/2022,57.42 
8192,01/05/2022,53.80 
8193,01/06/2022,82.06 
8194,01/07/2022,40.56 
8195,01/08/2022,53.67 
8196,01/09/2022,26.63 
8197,01/10/2022,72.48 
8198,01/11/2022,18.37 
8199,01/12/2022,45.26 
8200,01/13/2022,58.23 
8201,01/14/2022,18.52 
]; 
```

Wyniki

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

* id

* date

* =week\_day (date)

Aby obliczy początek tygodnia, kiedy ma miejsce transakcja, utwórz następującą miarę:

=weekname(date)

Tabela wynikowa

| id | date | =weekday(date) | =weekname(date) |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 2021/53 |
| 8184 | 12/28/2021 | Wto | 2021/53 |
| 8185 | 12/29/2021 | Śro | 2021/53 |
| 8186 | 12/30/2021 | Czw | 2021/53 |
| 8187 | 12/31/2021 | Fri | 2021/53 |
| 8188 | 01/01/2022 | Sob | 2022/01 |
| 8189 | 01/02/2022 | Nie | 2022/02 |
| 8190 | 01/03/2022 | Pon | 2022/02 |
| 8191 | 01/04/2022 | Wto | 2022/02 |
| 8192 | 01/05/2022 | Śro | 2022/02 |
| 8193 | 01/06/2022 | Czw | 2022/02 |
| 8194 | 01/07/2022 | Fri | 2022/02 |
| 8195 | 01/08/2022 | Sob | 2022/02 |
| 8196 | 01/09/2022 | Nie | 2022/03 |
| 8197 | 01/10/2022 | Pon | 2022/03 |
| 8198 | 01/11/2022 | Wto | 2022/03 |
| 8199 | 01/12/2022 | Śro | 2022/03 |
| 8200 | 01/13/2022 | Czw | 2022/03 |
| 8201 | 01/14/2022 | Fri | 2022/03 |

Miarę „week\_number” tworzy się w obiekcie wykresu, używając funkcji weekname() i przekazując pole daty jako jej argument.

Funkcja weekname() początkowo identyfikuje tydzień, w którym przypada wartość daty, i zwraca liczbę numerów tygodni oraz rok, w którym ma miejsce transakcja.

Zmienna systemowa FirstWeekDay ustawia niedzielę jako pierwszy dzień tygodnia. Zmienna systemowa BrokenWeeks ustawia aplikację tak, aby używała podzielonych tygodni, co oznacza, że tydzień 1 rozpoczyna się 1 stycznia.

Diagram przedstawiający numer tygodnia z sobotą jako pierwszym dniem tygodnia.

Diagram przedstawiający numer tygodnia z sobotą jako pierwszym dniem tygodnia.

Diagram przedstawiający numer tygodnia z sobotą jako pierwszym dniem tygodnia. ![Diagram pokazujący, że tydzień 1 rozpoczyna się 1 stycznia i niedzielę jako pierwszy dzień tygodnia.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example4-diagram1.png)

Diagram pokazujący, że transakcja 8192 miała miejsce w drugim tygodniu.

Diagram pokazujący, że transakcja 8192 miała miejsce w drugim tygodniu.

Diagram pokazujący, że transakcja 8192 miała miejsce w drugim tygodniu. ![Diagram pokazujący, że transakcja 8192 ma miejsce w 2. tygodniu.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekname-example4-diagram1.png)

Ponieważ aplikacja używa podzielonych tygodni, a pierwszym dniem tygodnia jest niedziela, transakcje występujące od 2 do 8 stycznia zwracają wartość 2022/02 (tydzień 2 w 2022 r.). Zauważ, że transakcja 8192 miała miejsce 5 stycznia i zwraca wartość 2022/02 dla pola „week\_number”.

## Przykład 5 — zastosowanie

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekname.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ń 2019 r. i pierwsze dwa tygodnie 2020 r. jest ładowany do tabeli o nazwie „Transactions”.

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

* Zmienna systemowa ReferenceDay, która jest ustawiona na 2.

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

Skrypt ładowania

```
SET BrokenWeeks=0;  
SET ReferenceDay=2;  
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8183,12/27/2019,58.27 
8184,12/28/2019,67.42 
8185,12/29/2019,23.80 
8186,12/30/2019,82.06 
8187,12/31/2019,40.56 
8188,01/01/2020,37.23 
8189,01/02/2020,17.17 
8190,01/03/2020,88.27 
8191,01/04/2020,57.42 
8192,01/05/2020,53.80 
8193,01/06/2020,82.06 
8194,01/07/2020,40.56 
8195,01/08/2020,53.67 
8196,01/09/2020,26.63 
8197,01/10/2020,72.48 
8198,01/11/2020,18.37 
8199,01/12/2020,45.26 
8200,01/13/2020,58.23 
8201,01/14/2020,18.52 
]; 
```

Wyniki

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

Utwórz wymiar wyliczany, używając następującego wyrażenia:

=weekname(date)

Aby obliczyć łączną sprzedaż, utwórz następującą miarę agregacji:

=sum(amount)

Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| weekname(date) | =sum(amount) |
| --- | --- |
| 2019/52 | $125.69 |
| 2020/01 | $346.51 |
| 2020/02 | $347.57 |
| 2020/03 | $122.01 |

Aby zademonstrować wyniki użycia funkcji weekname() w tym zastosowaniu, dodaj następujące pole jako wymiar:

date

Tabela wyników z polem daty

| weekname(date) | date | =sum(amount) |
| --- | --- | --- |
| 2019/52 | 12/27/2019 | $58.27 |
| 2019/52 | 12/28/2019 | $67.42 |
| 2020/01 | 12/29/2019 | $23.80 |
| 2020/01 | 12/30/2019 | $82.06 |
| 2020/01 | 12/31/2019 | $40.56 |
| 2020/01 | 01/01/2020 | $37.23 |
| 2020/01 | 01/02/2020 | $17.17 |
| 2020/01 | 01/03/2020 | $88.27 |
| 2020/01 | 01/04/2020 | $57.42 |
| 2020/02 | 01/05/2020 | $53.80 |
| 2020/02 | 01/06/2020 | $82.06 |
| 2020/02 | 01/07/2020 | $40.56 |
| 2020/02 | 01/08/2020 | $53.67 |
| 2020/02 | 01/09/2020 | $26.63 |
| 2020/02 | 01/10/2020 | $72.48 |
| 2020/02 | 01/11/2020 | $18.37 |
| 2020/03 | 01/12/2020 | $45.26 |
| 2020/03 | 01/13/2020 | $58.23 |
| 2020/03 | 01/14/2020 | $18.52 |

Ponieważ aplikacja używa niepodzielonych tygodni, a tydzień 1. wymaga co najmniej dwóch dni w styczniu ze względu na zmienną systemową ReferenceDay, tydzień 1. roku 2020 obejmuje transakcje z 29 grudnia 2019.