Ta funkcja zwraca rok, do którego należy numer tygodnia zgodnie z normą ISO 8601. Numer tygodnia należy do zakresu od 1 do około 52.
Składnia:
weekyear(expression)
Typ zwracanych danych: integer
Funkcja weekyear() określa, w którym tygodniu roku wypada określona data. Zwraca rok odpowiadający danemu numerowi tygodnia.
Domyślnie aplikacje Qlik używają tygodni dzielonych (zdefiniowanych przez zmienną systemową BrokenWeeks) i pierwszy tydzień zaczyna się 1 stycznia, a rok kończy się po tygodniu 52. W związku z tym, jeśli aplikacja używa tygodni dzielonych, funkcja weekyear() zawsze zwraca taką samą wartość, jak funkcja week().
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().
Kiedy używać
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 funkcji 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/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
weekyear('12/30/1996')
Zwraca 1997, ponieważ pierwszy tydzień 1997 roku zaczyna się dnia 30.12.1996 roku.
weekyear('01/02/1997')
Zwraca wartość 1997
weekyear('12/28/1997')
Zwraca wartość 1997
weekyear('12/30/1997')
Zwraca 1998, ponieważ pierwszy tydzień 1998 roku zaczyna się 29.12.1997 roku.
weekyear('01/02/1999')
zwraca 1998, ponieważ 53. tydzień 1998 roku kończy się 03.01.1990 roku.
Zwraca liczbę całkowitą reprezentującą rok, gdy wyrażenie jest interpretowane jako data zgodnie ze standardową interpretacją liczb.
Przykład 1 – Tygodnie dzielone
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ń 2020 r. i pierwszy tydzień 2021 r., który jest ładowany do tabeli o nazwie „Transactions”.
Zmienna BrokenWeeks, która jest ustawiona na 1.
Ł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.
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ń
week_year
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 poprzedzającej instrukcji LOAD 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.
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
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ń 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ń
week_year
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.
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
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.
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ń
week_year
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 poprzedzającej instrukcji LOAD 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.
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 — Scenariusz
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ń 2020 r. i pierwszy tydzień 2021 r., który jest ładowany do tabeli o nazwie „Transactions”.
Zmienna BrokenWeeks, która jest ustawiona na 0. Zo 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(date)
=sum(amount)
2020
19.42
2021
373.37
Czy ta strona była pomocna?
Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!