Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia i każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
Składnia:
LunarweekEnd(date[, period_no[, first_week_day]])
Typ zwracanych danych: dual
Funkcja lunarweekend() sprawdza, do którego tygodnia księżycowego należy date. Następnie zwraca znacznik czasu w formacie daty dla ostatniej milisekundy tego tygodnia.
Argumenty
Argument
Opis
date
Data lub znacznik czasu do oszacowania.
period_no
Parametr period_no jest liczbą całkowitą lub wyrażeniem, którego wynikiem jest liczba całkowita, gdzie wartość 0 wskazuje tydzień księżycowy zawierający wartość date. Wartości ujemne parametru period_no oznaczają poprzednie tygodnie księżycowe, a wartości dodatnie — następne tygodnie księżycowe.
first_week_day
Przesunięcie może być większe lub mniejsze od zera. Zmienia to początek roku o określoną liczbę dni lub części dnia.
Kiedy używać
Funkcja lunarweekend() jest powszechnie używana jako część wyrażenia, gdy użytkownik chce, by w obliczeniach użyto ułamka tygodnia, który jeszcze nie nastąpił. Inaczej niż w przypadku funkcji weekend(), ostatni tydzień księżycowy każdego roku kalendarzowego będzie się kończył 31 grudnia. Na przykład, za pomocą funkcji lunarweekend() można obliczyć odsetki, które jeszcze nie zostały zapłacone w tym tygodniu.
Przykłady funkcji
Przykład
Wynik
lunarweekend('01/12/2013')
Zwraca wartość 01/14/2013 23:59:59.
lunarweekend('01/12/2013', -1)
Zwraca wartość 01/07/2013 23:59:59.
lunarweekend('01/12/2013', 0, 1)
Zwraca wartość 01/15/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ład 1 — bez dodatkowych argumentów
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 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 księżycowego, w którym zostały zawarte 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
end_of_week
end_of_week_timestamp
1/7/2022
01/07/2022
1/7/2022 11:59:59 PM
1/19/2022
01/21/2022
1/21/2022 11:59:59 PM
2/5/2022
02/11/2022
2/11/2022 11:59:59 PM
2/28/2022
03/04/2022
3/4/2022 11:59:59 PM
3/16/2022
03/18/2022
3/18/2022 11:59:59 PM
4/1/2022
04/01/2022
4/1/2022 11:59:59 PM
5/7/2022
05/13/2022
5/13/2022 11:59:59 PM
5/16/2022
05/20/2022
5/20/2022 11:59:59 PM
6/15/2022
06/17/2022
6/17/2022 11:59:59 PM
6/26/2022
07/01/2022
7/1/2022 11:59:59 PM
7/9/2022
07/15/2022
7/15/2022 11:59:59 PM
7/22/2022
07/22/2022
7/22/2022 11:59:59 PM
7/23/2022
07/29/2022
7/29/2022 11:59:59 PM
7/27/2022
07/29/2022
7/29/2022 11:59:59 PM
8/2/2022
08/05/2022
8/5/2022 11:59:59 PM
8/8/2022
08/12/2022
8/12/2022 11:59:59 PM
8/19/2022
08/19/2022
8/19/2022 11:59:59 PM
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
10/14/2022
10/14/2022
10/14/2022 11:59:59 PM
10/29/2022
11/04/2022
11/4/2022 11:59:59 PM
Pole end_of_week jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji lunarweekend() i przekazanie pola date jako argumentu funkcji.
Funkcja lunarweekend() identyfikuje, w którym tygodniu księżycowym przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego tygodnia.
Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekend() oblicza, że tydzień księżycowy zaczyna się 15 stycznia. W związku z tym wartość end_of_week dla tamtej transakcji zwraca ostatnią milisekundę tygodnia księżycowego (21 stycznia o godz. 23:59:59).
Przykład 2 – period_no
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.
Utworzenie pola previous_lunar_week_end zwracającego znacznik czasu końca tygodnia księżycowego przed transakcją.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
previous_lunar_week_end
previous_lunar_week_end_timestamp
Tabela wynikowa
date
previous_lunar_week_end
previous_lunar_week_end_timestamp
1/7/2022
12/31/2021
12/31/2021 11:59:59 PM
1/19/2022
01/14/2022
1/14/2022 11:59:59 PM
2/5/2022
02/04/2022
2/4/2022 11:59:59 PM
2/28/2022
02/25/2022
2/25/2022 11:59:59 PM
3/16/2022
03/11/2022
3/18/2022 11:59:59 PM
4/1/2022
03/25/2022
3/25/2022 11:59:59 PM
5/7/2022
05/06/2022
5/6/2022 11:59:59 PM
5/16/2022
05/13/2022
5/13/2022 11:59:59 PM
6/15/2022
06/10/2022
6/10/2022 11:59:59 PM
6/26/2022
06/24/2022
6/24/2022 11:59:59 PM
7/9/2022
07/08/2022
7/8/2022 11:59:59 PM
7/22/2022
07/15/2022
7/15/2022 11:59:59 PM
7/23/2022
07/22/2022
7/22/2022 11:59:59 PM
7/27/2022
07/22/2022
7/22/2022 11:59:59 PM
8/2/2022
07/29/2022
7/29/2022 11:59:59 PM
8/8/2022
08/05/2022
8/5/2022 11:59:59 PM
8/19/2022
08/12/2022
8/12/2022 11:59:59 PM
9/26/2022
09/23/2022
9/23/2022 11:59:59 PM
10/14/2022
10/07/2022
10/7/2022 11:59:59 PM
10/29/2022
10/28/2022
10/28/2022 11:59:59 PM
W tym przypadku, ponieważ wartości period_no -1 użyto jako argumentu przesunięcia w funkcji lunarweekend(), funkcja najpierw identyfikuje tydzień księżycowy, w którym zawarto transakcje. Następnie przesuwa zakres o tydzień wstecz i identyfikuje ostatnią milisekundę tego tygodnia księżycowego.
Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekend() oblicza, że tydzień księżycowy zaczyna się 15 stycznia. W efekcie poprzedni tydzień księżycowy rozpoczynał się 8 stycznia i kończył 14 stycznia o godzinie 23:59:59. Ta wartość jest zwracana dla pola previous_lunar_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. W tym przykładzie ustawiamy początek tygodni księżycowych na 5 stycznia.
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
end_of_week
end_of_week_timestamp
1/7/2022
01/11/2022
1/11/2022 11:59:59 PM
1/19/2022
01/25/2022
1/25/2022 11:59:59 PM
2/5/2022
02/08/2022
2/8/2022 11:59:59 PM
2/28/2022
03/01/2022
3/1/2022 11:59:59 PM
3/16/2022
03/22/2022
3/22/2022 11:59:59 PM
4/1/2022
04/05/2022
4/5/2022 11:59:59 PM
5/7/2022
05/10/2022
5/10/2022 11:59:59 PM
5/16/2022
05/17/2022
5/17/2022 11:59:59 PM
6/15/2022
06/21/2022
6/21/2022 11:59:59 PM
6/26/2022
06/28/2022
6/28/2022 11:59:59 PM
7/9/2022
07/12/2022
7/12/2022 11:59:59 PM
7/22/2022
07/26/2022
7/26/2022 11:59:59 PM
7/23/2022
07/26/2022
7/26/2022 11:59:59 PM
7/27/2022
08/02/2022
8/2/2022 11:59:59 PM
8/2/2022
08/02/2022
8/2/2022 11:59:59 PM
8/8/2022
08/09/2022
8/9/2022 11:59:59 PM
8/19/2022
08/23/2022
8/23/2022 11:59:59 PM
9/26/2022
09/27/2022
9/27/2022 11:59:59 PM
10/14/2022
10/18/2022
10/18/2022 11:59:59 PM
10/29/2022
11/01/2022
11/1/2022 11:59:59 PM
W tym przypadku przekazano wartość 4 jako argument first_week_date funkcji lunarweekend(), w wyniku czego początek roku został przesunięty z 1 stycznia na 5 stycznia.
Transakcja 8189 miała miejsce 19 stycznia. Ponieważ tygodnie księżycowe zaczynają się 5 stycznia, funkcja lunarweekend() oblicza, że tydzień księżycowy obejmujący datę 19 stycznia zaczyna się właśnie w tym dniu. W efekcie koniec tego tygodnia księżycowego wypada 25 stycznia o godzinie 23:59:59. Ta wartość zostaje zwrócona dla pola end_of_week.
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 księżycowego, w którym zawarto 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.
Dodaj następujące miary:
=lunarweekend(date)
=timestamp(lunarweekend(date))
Tabela wynikowa
date
=lunarweekend(date)
=timestamp(lunarweekend(date))
1/7/2022
01/07/2022
1/7/2022 11:59:59 PM
1/19/2022
01/21/2022
1/21/2022 11:59:59 PM
2/5/2022
02/11/2022
2/11/2022 11:59:59 PM
2/28/2022
03/04/2022
3/4/2022 11:59:59 PM
3/16/2022
03/18/2022
3/18/2022 11:59:59 PM
4/1/2022
04/01/2022
4/1/2022 11:59:59 PM
5/7/2022
05/13/2022
5/13/2022 11:59:59 PM
5/16/2022
05/20/2022
5/20/2022 11:59:59 PM
6/15/2022
06/17/2022
6/17/2022 11:59:59 PM
6/26/2022
07/01/2022
7/1/2022 11:59:59 PM
7/9/2022
07/15/2022
7/15/2022 11:59:59 PM
7/22/2022
07/22/2022
7/22/2022 11:59:59 PM
7/23/2022
07/29/2022
7/29/2022 11:59:59 PM
7/27/2022
07/29/2022
7/29/2022 11:59:59 PM
8/2/2022
08/05/2022
8/5/2022 11:59:59 PM
8/8/2022
08/12/2022
8/12/2022 11:59:59 PM
8/19/2022
08/19/2022
8/19/2022 11:59:59 PM
9/26/2022
09/30/2022
9/30/2022 11:59:59 PM
10/14/2022
10/14/2022
10/14/2022 11:59:59 PM
10/29/2022
11/04/2022
11/4/2022 11:59:59 PM
Miarę end_of_week tworzy się w obiekcie wykresu, używając funkcji lunarweekend() i przekazując pole daty date jako jej argument.
Funkcja lunarweekend() identyfikuje, w którym tygodniu księżycowym przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego tygodnia.
Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekend() oblicza, że tydzień księżycowy zaczyna się 15 stycznia. W związku z tym wartość end_of_week dla tamtej transakcji zwraca ostatnią milisekundę tygodnia księżycowego (21 stycznia o godz. 23:59:59).
Przykład 5 — scenariusz
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Zestaw danych załadowany do tabeli o nazwie Employee_Expenses.
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 księżycowego.
Funkcja lunarkweekend(), przyjmująca jako argument tylko dzisiejszą datę, zwraca datę końcową bieżącego tygodnia księżycowego. Następnie wyrażenie odejmuje dzisiejszą datę od daty zakończenia tygodnia księżycowego 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 księżycowego.
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ć!