# week — funkcja skryptu i funkcja wykresu

Ta funkcja zwraca liczbę całkowitą reprezentującą numer tygodnia odpowiadający wprowadzonej dacie.

Składnia:

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

Typ zwracanych danych: integer

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/sense/November2024/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/sense/November2024/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/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) |

Funkcja `week()` określa, w którym tygodniu przypada data, i zwraca numer tygodnia.

W Qlik Sense ustawienia regionalne są pobierane podczas tworzenia aplikacji, a odpowiednie ustawienia są przechowywane w skrypcie jako zmienne środowiskowe. Służą one do określenia numeru tygodnia.

Oznacza to, że większość europejskich twórców aplikacji ma następujące zmienne środowiskowe, zgodne z definicją ISO 8601:

```
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    // Use unbroken weeks
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

Deweloper aplikacji z Ameryki Północnej często ma następujące zmienne środowiskowe:

```
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    // Use broken weeks
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

Pierwszy dzień tygodnia jest określany przez zmienną systemową `FirstWeekDay`. Możesz również zmienić pierwszy dzień tygodnia, używając argumentu `first_week_day` w funkcji `week()`.

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 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 `FirstWeekDay` i `ReferenceDay`.

## Kiedy używać

Funkcja `The week()` jest przydatna, gdy chcesz porównać agregacje według tygodni. Można jej na przykład użyć, aby wyświetlić całkowitą sprzedaż produktów w ujęciu tygodniowym. Funkcja `week()` jest wybierana zamiast funkcji `weekname()`, gdy użytkownik nie chce, aby w obliczeniach były wykorzystywane zmienne systemowe aplikacji `BrokenWeeks`, `FirstWeekDay` lub `ReferenceDay`.

Na przykład, jeśli chcesz zobaczyć całkowitą sprzedaż produktów w tygodniu.

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.

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

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

```
Set DateFormat= 'MM/DD/YYYY';  
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;
```

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| week('12/28/2021') | Zwraca 52. |
| week(44614) | Zwraca 8, ponieważ jest to numer seryjny dla 02/22/2022. |
| week('01/03/2021') | Zwraca 53. |
| week('01/03/2021',6) | Zwraca wartość 1. |

## Przykład 1 – Domyślne zmienne systemowe

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.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 ostatni tydzień 2021 r., który jest ładowany do tabeli o nazwie Transactions.

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

* Utworzenie pola, week\_number, które zwraca rok i numer tygodnia, w którym zawarto transakcję.

* Utworzenie pola o nazwie week\_day, pokazującego wartość dnia tygodnia każdej daty transakcji.

Skrypt ładowania

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(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 | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 53 |
| 8184 | 12/28/2021 | Wto | 53 |
| 8185 | 12/29/2021 | Śro | 53 |
| 8186 | 12/30/2021 | Thu | 53 |
| 8187 | 12/31/2021 | Fri | 53 |
| 8188 | 01/01/2022 | Sat | 1 |
| 8189 | 01/02/2022 | Nie | 2 |
| 8190 | 01/03/2022 | Pon | 2 |
| 8191 | 01/04/2022 | Wto | 2 |
| 8192 | 01/05/2022 | Śro | 2 |
| 8193 | 01/06/2022 | Thu | 2 |
| 8194 | 01/07/2022 | Fri | 2 |
| 8195 | 01/08/2022 | Sat | 2 |
| 8196 | 01/09/2022 | Nie | 3 |
| 8197 | 01/10/2022 | Pon | 3 |
| 8198 | 01/11/2022 | Wto | 3 |
| 8199 | 01/12/2022 | Śro | 3 |
| 8200 | 01/13/2022 | Thu | 3 |
| 8201 | 01/14/2022 | Fri | 3 |

Pole week\_number jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji week() i przekazanie pola date jako argumentu funkcji.

Do funkcji nie są przekazywane żadne inne parametry, w związku z czym obowiązują następujące domyślne zmienne wpływające na funkcję week():

* BrokenWeeks: Numerowanie tygodni zaczyna się od 1 stycznia

* FirstWeekDay: Pierwszy dzień tygodnia to niedziela

Diagram funkcji week() używającej domyślnych zmiennych systemowych

Diagram funkcji week() używającej domyślnych zmiennych systemowych

Diagram funkcji week()week() używającej domyślnych zmiennych systemowych![Diagram pokazujący, jak funkcja week przyporządkowuje daty roku do tygodni o odpowiednich numerach.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

Ponieważ aplikacja używa domyślnej zmiennej systemowej BrokenWeeks, tydzień pierwszy zaczyna się 1 stycznia, czyli w sobotę.

Ze względu na domyślną zmienną systemową FirstWeekDay tygodnie zaczynają się w niedzielę. Pierwsza niedziela po 1 stycznia przypada 2 stycznia, więc tego dnia zaczyna się tydzień drugi.

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

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

#### Skrypt ładowania i wyniki

Przegląd

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

Skrypt ładowania zawiera:

* Utworzenie pola, week\_number, które zwraca rok i numer tygodnia, w którym zawarto transakcję.

* Utworzenie pola o nazwie week\_day, pokazującego wartość dnia tygodnia każdej daty transakcji.

W tym przykładzie chcemy ustawić początek tygodnia roboczego na wtorek.

Skrypt ładowania

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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 | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 52 |
| 8184 | 12/28/2021 | Wto | 53 |
| 8185 | 12/29/2021 | Śro | 53 |
| 8186 | 12/30/2021 | Thu | 53 |
| 8187 | 12/31/2021 | Fri | 53 |
| 8188 | 01/01/2022 | Sat | 1 |
| 8189 | 01/02/2022 | Nie | 1 |
| 8190 | 01/03/2022 | Pon | 1 |
| 8191 | 01/04/2022 | Wto | 2 |
| 8192 | 01/05/2022 | Śro | 2 |
| 8193 | 01/06/2022 | Thu | 2 |
| 8194 | 01/07/2022 | Fri | 2 |
| 8195 | 01/08/2022 | Sat | 2 |
| 8196 | 01/09/2022 | Nie | 2 |
| 8197 | 01/10/2022 | Pon | 2 |
| 8198 | 01/11/2022 | Wto | 3 |
| 8199 | 01/12/2022 | Śro | 3 |
| 8200 | 01/13/2022 | Thu | 3 |
| 8201 | 01/14/2022 | Fri | 3 |

Aplikacja nadal używa podzielonych tygodni. Jednak argument first\_week\_day w funkcji week() został ustawiony na 1. To ustawia wtorek jako pierwszy dzień tygodnia.

Diagram funkcji week(), przykład z argumentem first\_week\_day

Diagram funkcji week(), przykład z argumentem first\_week\_day

Diagram funkcji week()week(), przykład z argumentem first\_week\_day![Diagram pokazujący, jak funkcja week przyporządkowuje daty roku do tygodni o odpowiednich numerach.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-first-week-day.png)

Aplikacja używa domyślnej zmiennej systemowej BrokenWeeks, więc tydzień pierwszy zaczyna się 1 stycznia, czyli w sobotę.

Argument first\_week\_day funkcji week() ustawia pierwszy dzień tygodnia na wtorek. W efekcie tydzień 53 zaczyna się 28 grudnia 2021 r.

Ponieważ jednak funkcja nadal używa dzielonych tygodni, tydzień pierwszy będzie miał tylko dwa dni, ponieważ pierwszy wtorek po 1 stycznia wypada 3 stycznia.

## Przykład 3 – unbroken\_weeks

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.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 zestaw danych i scenariusz co w pierwszym przykładzie.

W tym przykładzie używamy niepodzielonych tygodni.

Skrypt ładowania

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,6,0) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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

Diagram funkcji week(), przykład obiektu wykresu

Diagram funkcji week(), przykład obiektu wykresu

Diagram funkcji week()week(), przykład obiektu wykresu![DODAĆ TEKST ATRYBUTU ALT.....!!!!!!](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-chart-object.png)

Tabela wynikowa

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

Parametr first\_week\_date jest ustawiony na 1, co czyni wtorek pierwszym dniem tygodnia. Parametr broken\_weeks jest ustawiony na 0, co zmusza funkcję do używania niedzielonych tygodni. Trzeci parametr ustawia argument reference\_day na 2.

Parametr first\_week\_date jest ustawiony na 6, co czyni niedzielę pierwszym dniem tygodnia. Parametr broken\_weeks jest ustawiony na 0, co zmusza funkcję do używania niepodzielonych tygodni.

Diagram funkcji week(), przykład użycia niedzielonych tygodni

Diagram funkcji week(), przykład użycia niedzielonych tygodni

Diagram funkcji week(), przykład użycia niedzielonych tygodni![Diagram pokazujący, jak funkcja week przyporządkowuje daty roku do tygodni o odpowiednich numerach.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-unbroken-weeks.png)

Dzięki użyciu niedzielonych tygodni pierwszy tydzień nie musi zaczynać się 1 stycznia. Zamiast tego musi mieć przynajmniej pięć dni. W związku z tym, w zestawie danych, tydzień 52 kończy się w sobotę 1 stycznia 2022 r. Zatem pierwszy tydzień zaczyna się w dniu wskazywanym przez zmienną systemową FirstWeekDay, który jest niedzielą 2 stycznia. Ten tydzień kończy się w następną sobotę 8 stycznia.

## Przykład 4 – reference\_day

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.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 zestaw danych i scenariusz co w trzecim przykładzie.

* Utworzenie pola, week\_number, które zwraca rok i numer tygodnia, w którym zawarto transakcję.

* Utworzenie pola o nazwie week\_day, pokazującego wartość dnia tygodnia każdej daty transakcji.

Ponadto muszą być spełnione następujące warunki:

* Tydzień roboczy zaczyna się we wtorek.

* Firma używa niepodzielonych tygodni.

* Wartość reference\_day wynosi 2. Innymi słowy, minimalna liczba dni w styczniu w tygodniu pierwszym wynosi 2.

Skrypt ładowania

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

Transactions:
    Load
        *,
        WeekDay(date) as week_day,
        Week(date,1,0,2) as week_number
        ;
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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 | week\_number |
| --- | --- | --- | --- |
| 8183 | 12/27/2021 | Pon | 52 |
| 8184 | 12/28/2021 | Wto | 1 |
| 8185 | 12/29/2021 | Śro | 1 |
| 8186 | 12/30/2021 | Thu | 1 |
| 8187 | 12/31/2021 | Fri | 1 |
| 8188 | 01/01/2022 | Sat | 1 |
| 8189 | 01/02/2022 | Nie | 1 |
| 8190 | 01/03/2022 | Pon | 1 |
| 8191 | 01/04/2022 | Wto | 2 |
| 8192 | 01/05/2022 | Śro | 2 |
| 8193 | 01/06/2022 | Thu | 2 |
| 8194 | 01/07/2022 | Fri | 2 |
| 8195 | 01/08/2022 | Sat | 2 |
| 8196 | 01/09/2022 | Nie | 2 |
| 8197 | 01/10/2022 | Pon | 2 |
| 8198 | 01/11/2022 | Wto | 3 |
| 8199 | 01/12/2022 | Śro | 3 |
| 8200 | 01/13/2022 | Thu | 3 |
| 8201 | 01/14/2022 | Fri | 3 |

Parametr first\_week\_date jest ustawiony na 1, co czyni wtorek pierwszym dniem tygodnia. Parametr broken\_weeks jest ustawiony na 0, co zmusza funkcję do używania niepodzielonych tygodni. Trzeci parametr ustawia parametr reference\_day na 2.

Diagram funkcji week(), przykład z argumentem reference\_day

Diagram funkcji week(), przykład z argumentem reference\_day

Diagram funkcji week()week(), przykład z argumentem reference\_day![Diagram pokazujący, jak funkcja week przyporządkowuje daty roku do tygodni o odpowiednich numerach.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-reference-day.png)

W przypadku tej funkcji używającej niedzielonych tygodni i argumentu reference\_day o wartości 2, pierwszy tydzień w styczniu musi mieć tylko dwa dni. Ponieważ pierwszy dzień tygodnia to wtorek, pierwszy tydzień zaczyna się 28 grudnia 2021 r. i kończy się w poniedziałek, 3 stycznia 2022 r.

## Przykład 5 – Przykład z użyciem obiektu wykresu

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

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia zwracające numer tygodnia zostały utworzone jako miara w obiekcie wykresu.

Skrypt ładowania

```
Transactions:
Load
*
Inline 
[
id,date,amount
8183,12/27/2022,58.27
8184,12/28/2022,67.42
8185,12/29/2022,23.80
8186,12/30/2022,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

Wykonaj następujące czynności:

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

2. Dodaj następujące pola jako wymiary:

   * id

   * date

3. Następnie utwórz następującą miarę:

   =week (date)

4. Utwórz miarę , week\_day, aby pokazać wartość dnia tygodnia każdej daty transakcji:

   =weekday(date)

Tabela wynikowa

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

Pole week\_number jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji week() i przekazanie pola date jako argumentu funkcji.

Do funkcji nie są przekazywane żadne inne parametry, w związku z czym obowiązują następujące domyślne zmienne wpływające na funkcję week():

* BrokenWeeks: Numerowanie tygodni zaczyna się od 1 stycznia

* FirstWeekDay: Pierwszy dzień tygodnia to niedziela

Diagram funkcji week(), przykład obiektu wykresu

Diagram funkcji week(), przykład obiektu wykresu

Diagram funkcji week()week(), przykład obiektu wykresu![Diagram pokazujący, jak funkcja week przyporządkowuje daty roku do tygodni o odpowiednich numerach.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-week-examples-def-sys-variables.png)

Ponieważ aplikacja używa domyślnej zmiennej systemowej BrokenWeeks, tydzień pierwszy zaczyna się 1 stycznia, czyli w sobotę.

Ze względu na domyślną zmienną systemową FirstWeekDay tygodnie zaczynają się w niedzielę. Pierwsza niedziela po 1 stycznia przypada 2 stycznia, więc tego dnia zaczyna się tydzień drugi.

## Przykład 6 – Scenariusz

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.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:

* Zestaw danych zawierający zestaw transakcji za ostatni tydzień 2019 r. i pierwsze dwa tygodnie 2020 r., który jest ładowany do tabeli o nazwie Transactions.

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

Aplikacja używa przede wszystkim podzielonych tygodni na swoim pulpicie. Jednak użytkownik końcowy chciałby otrzymać obiekt wykresu przedstawiający łączną sprzedaż w ujęciu tygodniowym przy użyciu tygodni niedzielonych. Dniem odniesienia powinien być 2 stycznia, przy tygodniach zaczynających się we wtorek. Można to osiągnąć nawet wtedy, gdy ten wymiar nie jest dostępny w modelu danych, używając funkcji week() jako wymiaru obliczanego na wykresie.

Skrypt ładowania

```
SET BrokenWeeks=1;
SET ReferenceDay=0;
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

Wykonaj następujące czynności:

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

2. Utwórz następujący wymiar wyliczany:

   =week(date)

3. Następnie utwórz następującą miarę agregacji:

   =sum(amount)

4. Ustaw Formatowanie liczb miary na Waluta.

5. Wybierz menu Sortowanie i dla wymiaru wyliczanego usuń sortowanie niestandardowe.

6. Usuń zaznaczenie opcji Sortuj w kolejności liczbowej i Sortuj alfabetycznie.

Tabela wynikowa

| week(date) | sum(amount) |
| --- | --- |
| 52 | $125.69 |
| 53 | $146.42 |
| 1 | $200.09 |
| 2 | $347.57 |
| 3 | $122.01 |