Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia tygodnia kalendarzowego, który zawiera wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
Funkcja weekend() określa, w którym tygodniu wypada data. Następnie zwraca znacznik czasu w formacie daty dla ostatniej milisekundy tego tygodnia. Pierwszy dzień tygodnia jest określany przez zmienną systemową FirstWeekDay. Można ją jednak zastąpić argumentem first_week_day funkcji weekend().
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.
Możliwe wartości argumentu first_week_day to poniedziałek — 0, wtorek — 1, środa — 2, czwartek — 3, piątek — 4, sobota — 5 oraz niedziela — 6.
Aby uzyskać więcej informacji o tej zmiennej systemowej, zobacz FirstWeekDay
Kiedy używać
Funkcja weekend() jest używana jako część wyrażenia, gdy użytkownik chce, aby w obliczeniach użyto liczby pozostałych dni tygodnia dla określonej daty. Na przykład, można jej użyć, jeśli użytkownik chce obliczyć sumę odsetek, które nie zostały jeszcze naliczone w ciągu tygodnia.
W poniższych przykładach zakłada się:
SET FirstWeekDay=0;
Przykład
Wynik
weekend('01/10/2013')
Zwraca wartość 01/12/2013 23:59:59.
weekend('01/10/2013', -1)
Zwraca wartość 01/05/2013 23:59:59..
weekend('01/10/2013', 0, 1)
Zwraca wartość 01/14/2013 23:59:59.
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:
Jeśli chcesz używać ustawień ISO dla tygodni i numerów tygodni, w skrypcie muszą się znajdować następujące elementy:
Set DateFormat ='YYYY-MM-DD';
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; //(use unbroken weeks)
Set ReferenceDay =4; // Jan 4th is always in week 1
Jeśli chcesz używać ustawień amerykańskich, w skrypcie muszą się znajdować następujące elementy:
Set DateFormat ='M/D/YYYY';
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; //(use broken weeks)
Set ReferenceDay =1; // Jan 1st is always in week 1
Powyższe przykłady dają następujące wyniki z funkcji weekend():
Przykład funkcji Weekend
Data
Koniec tygodnia według ISO
Koniec tygodnia w USA
Sob 2020 Gru 26
2020-12-27
12/26/2020
Niedz 2020 Gru 27
2020-12-27
2.01.2021
Pon 2020 Gru 28
03.01.2021
2.01.2021
Wt 2020 Gru 29
03.01.2021
2.01.2021
Śr 30 Gru 2020
03.01.2021
2.01.2021
Czw 31 Gru 2020
03.01.2021
02.01.2021
Pt 1 sty 2021
03.01.2021
02.01.2021
Sob. 2 sty. 2021
03.01.2021
2.01.2021
Niedz. 3 sty 2021
03.01.2021
9.01.2021
pon. 4 sty 2021
2021-01-10
9.01.2021
Wt 5 sty 2021
2021-01-10
9.01.2021
InformacjaTygodnie kończą się w niedziele w kolumnie ISO, a w soboty w kolumnie US.
Przykład 1 — Przykład podstawowy
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 rok 2022, który jest ładowany do tabeli o nazwie „Transactions”.
Pole danych w formacie DateFormat zmiennej systemowej (MM/DD/RRRR).
Utworzenie pola end_of_week zwracającego znacznik czasu końca tygodnia, w którym miały miejsce transakcje.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
end_of_week
end_of_week_timestamp
Tabela wynikowa
date
koniec_tygodnia
koniec_tygodnia_znacznik_czasu
1/7/2022
01/08/2022
08.01.2022 23:59:59
1/19/2022
22.01.2022
22.01.2022 23:59:59 PM
2/5/2022
02/05/2022
05.02.2022 23:59:59 PM
2/28/2022
03/05/2022
05.03.2022 23:59:59 PM
3/16/2022
03/19/2022
19.03.2022 23:59:59
4/1/2022
02.04.2022
02.04.2022 23:59:59
5/7/2022
05/07/2022
07.05.2022 23:59:59
5/16/2022
05/21/2022
21.05.2022 23:59:59
6/15/2022
06/18/2022
18.06.2022 23:59:59
6/26/2022
07/02/2022
02.07.2022 23:59:59
7/9/2022
07/09/2022
09.07.2022 23:59:59
7/22/2022
07/23/2022
23.07.2022 23:59:59
7/23/2022
07/23/2022
23.07.2022 23:59:59
7/27/2022
07/30/2022
30.07.2022 23:59:59
8/2/2022
08/06/2022
6.08.2022 23:59:59
8/8/2022
08/13/2022
13.08.2022 23:59:59
8/19/2022
20.08.2022
20.08.2022 23:59:59
9/26/2022
10/01/2022
01.10.2022 23:59:59
10/14/2022
15.10.2022
15.10.2022 23:59:59
10/29/2022
10/29/2022
10/29/2022 11:59:59 PM
Pole „end_of_week” jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji weekend() i przekazanie pola daty jako jej argumentu.
Funkcja weekend() identyfikuje, w którym tygodniu wypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego tygodnia.
Diagram funkcji weekend(), przykład podstawowy
Transakcja 8191 miała miejsce 5 lutego. Zmienna systemowa FirstWeekDay ustawia pierwszy dzień tygodnia na niedzielę. Funkcja weekend() dowiaduje się, że pierwsza sobota po 5 lutego – a więc po końcu tygodnia – wypadała 5 lutego. W związku z tym wartość end_of_week dla tej transakcji zwraca ostatnią milisekundę tego dnia – 5 lutego, godz. 23:59:59.
Przykład 2 – period_no
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.
Skrypt ładowania zawiera:
Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.
Utworzenie pola previous_week_end zwracającego znacznik czasu początku tygodnia przed transakcją.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
previous_week_end
previous_week_end_timestamp
Tabela wynikowa
date
koniec_tygodnia
koniec_tygodnia_znacznik_czasu
1/7/2022
01/01/2022
01.01.2022 23:59:59
1/19/2022
01/15/2022
15.01.2022 23:59:59
2/5/2022
01/29/2022
29.01.2022 23:59:59
2/28/2022
02/26/2022
26.02.2022 23:59:59
3/16/2022
03/12/2022
12.03.2022 23:59:59
4/1/2022
03/26/2022
26.03.2022 23:59:59
5/7/2022
04/30/2022
30.04.2022 23:59:59
5/16/2022
05/14/2022
14.05.2022 23:59:59
6/15/2022
06/11/2022
11.06.2022 23:59:59
6/26/2022
06/25/2022
25.06.2022 23:59:59
7/9/2022
07/02/2022
02.07.2022 23:59:59
7/22/2022
07/16/2022
16.07.2022 23:59:59
7/23/2022
07/16/2022
16.07.2022 23:59:59
7/27/2022
07/23/2022
23.07.2022 23:59:59
8/2/2022
07/30/2022
30.07.2022 23:59:59
8/8/2022
08/06/2022
6.08.2022 23:59:59
8/19/2022
08/13/2022
13.08.2022 23:59:59
9/26/2022
09/24/2022
24.09.2022 23:59:59
10/14/2022
10/08/2022
10/8/2022 11:59:59 PM
10/29/2022
10/22/2022
10/22/2022 11:59:59 PM
W tym przypadku, ponieważ wartości period_no -1 użyto jako argumentu przesunięcia w funkcji weekend(), funkcja najpierw identyfikuje tydzień, w którym zawarto transakcje. Następnie identyfikuje ostatnią milisekundę poprzedniego tygodnia.
Diagram funkcji weekend(), przykład z argumentem period_no
Transakcja 8196 miała miejsce 15 czerwca. Funkcja weekend() oblicza, że tydzień zaczyna się 12 czerwca. W związku z tym poprzedni tydzień kończy się 11 czerwca o godz. 23:59:59. Ta wartość jest zwracana dla pola previous_week_end.
Przykład 3 — first_week_day
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 musimy ustawić wtorek jako pierwszy dzień tygodnia roboczego.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
end_of_week
end_of_week_timestamp
Tabela wynikowa
date
koniec_tygodnia
koniec_tygodnia_znacznik_czasu
1/7/2022
01/10/2022
1/10/2022 11:59:59 PM
1/19/2022
01/24/2022
1/24/2022 11:59:59 PM
2/5/2022
02/07/2022
07.02.2022 23:59:59
2/28/2022
02/28/2022
28.02.2022 23:59:59
3/16/2022
03/21/2022
21.03.2022 23:59:59
4/1/2022
04/04/2022
4 kwietnia 2022 23:59:59
5/7/2022
05/09/2022
9 maja 2022 23:59:59
5/16/2022
05/16/2022
16 maja 2022 23:59:59
6/15/2022
06/20/2022
6/20/2022 11:59:59 PM
6/26/2022
06/27/2022
6/27/2022 11:59:59 PM
7/9/2022
07/11/2022
7/11/2022 11:59:59 PM
7/22/2022
25.07.2022
25.07.2022 23:59:59
7/23/2022
25.07.2022
25.07.2022 23:59:59
7/27/2022
08/01/2022
01.08.2022 23:59:59
8/2/2022
08.08.2022
08.08.2022 23:59:59
8/8/2022
08.08.2022
8.08.2022 23:59:59
8/19/2022
08/22/2022
22.08.2022 23:59:59
9/26/2022
09/26/2022
26.09.2022 23:59:59
10/14/2022
10/17/2022
10/17/2022 11:59:59 PM
10/29/2022
10/31/2022
10/31/2022 11:59:59 PM
W tym przypadku, ponieważ funkcji weekend() przekazano wartość 1 jako argument first_week_date, funkcja ta ustawia wtorek jako pierwszy dzień tygodnia.
Diagram funkcji weekend(), przykład z argumentem first_week_day
Transakcja 8191 miała miejsce 5 lutego. Funkcja weekend() oblicza, że pierwszy poniedziałek po tej dacie – a zatem także koniec tygodnia i zwracana wartość – przypadł na 6 lutego o godz. 23:59:59.
Przykład 4 — przykład z obiektem 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 znacznik czasu końca tygodnia, w którym wystąpiły transakcje, są tworzone jako miara w obiekcie wykresu aplikacji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: date.
Aby obliczyć początek tygodnia, kiedy ma miejsce transakcja, dodaj następujące miary:
=weekend(date)
=timestamp(weekend(date))
Tabela wynikowa
date
=weekend(date)
=znacznik czasu(weekend(data))
1/7/2022
01/08/2022
08.01.2022 23:59:59
1/19/2022
22.01.2022
22.01.2022 23:59:59 PM
2/5/2022
02/05/2022
05.02.2022 23:59:59 PM
2/28/2022
03/05/2022
05.03.2022 23:59:59 PM
3/16/2022
03/19/2022
19.03.2022 23:59:59
4/1/2022
02.04.2022
02.04.2022 23:59:59
5/7/2022
05/07/2022
07.05.2022 23:59:59
5/16/2022
05/21/2022
21.05.2022 23:59:59
6/15/2022
06/18/2022
18.06.2022 23:59:59
6/26/2022
07/02/2022
02.07.2022 23:59:59
7/9/2022
07/09/2022
09.07.2022 23:59:59
7/22/2022
07/23/2022
23.07.2022 23:59:59
7/23/2022
07/23/2022
23.07.2022 23:59:59
7/27/2022
07/30/2022
30.07.2022 23:59:59
8/2/2022
08/06/2022
6.08.2022 23:59:59
8/8/2022
08/13/2022
13.08.2022 23:59:59
8/19/2022
20.08.2022
20.08.2022 23:59:59
9/26/2022
10/01/2022
01.10.2022 23:59:59
10/14/2022
15.10.2022
15.10.2022 23:59:59
10/29/2022
10/29/2022
10/29/2022 11:59:59 PM
Miarę „end_of_week” tworzy się w obiekcie wykresu, używając funkcji weekend() i przekazując pole daty jako jej argument. Funkcja weekend() identyfikuje, w którym tygodniu przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego tygodnia.
Diagram funkcji weekend(), przykład obiektu wykresu
Transakcja 8191 miała miejsce 5 lutego. Zmienna systemowa FirstWeekDay ustawia pierwszy dzień tygodnia na niedzielę. Funkcja weekend() dowiaduje się, że pierwsza sobota po 5 lutego – a więc po końcu tygodnia – wypadała 5 lutego. W związku z tym wartość end_of_week dla tej transakcji zwraca ostatnią milisekundę tego dnia – 5 lutego, godz. 23:59:59.
Przykład 5 — zastosowanie
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.
Skrypt ładowania zawiera:
Zestaw danych załadowany do tabeli o nazwie Employee_Expenses.
Dane zawierające identyfikatory pracowników, imiona i nazwiska pracowników oraz średnie dzienne roszczenia z tytułu wydatków każdego pracownika.
Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał, według identyfikatora pracownika oraz imienia i nazwiska pracownika, szacowane roszczenia z tytułu wydatków do poniesienia przez pozostałą część tygodnia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
employee_id
employee_name
Następnie utwórz miarę, aby obliczyć narosłe odsetki:
=(weekend(today(1))-today(1))*avg_daily_claim
Ustaw Formatowanie liczb miary na Waluta.
Tabela wynikowa
employee_id
nazwa_pracownika
=(weekend(today(1))-today(1))*avg_daily_claim
182
Mark
$90.00
183
Deryck
75,00 USD
184
Dexter
75,00 USD
185
Sydney
$162.00
186
Agata
$108.00
Funkcja weekend(), przyjmująca jako argument tylko dzisiejszą datę, zwraca datę końcową bieżącego tygodnia. Następnie wyrażenie odejmuje dzisiejszą datę od daty zakończenia tygodnia i zwraca liczbę dni pozostałych w tym tygodniu.
Wartość ta jest następnie mnożona przez średnie dzienne roszczenie z tytułu wydatków przez każdego pracownika, aby obliczyć szacunkową wartość roszczeń, które każdy pracownik złoży w pozostałej części tygodnia.
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ć!