Ta funkcja zwraca wartość pokazującą rok i numer tygodnia księżycowego odpowiadający znacznikowi czasu pierwszej milisekundy pierwszego 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.
Funkcja lunarweekname() określa, w którym tygodniu księżycowym wypada ta data, zaczynając liczenie tygodni od 1 stycznia. Następnie zwraca wartość złożoną z year/weekcount.
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 lunarweekname() jest przydatna, gdy chcesz porównać agregacje według tygodni księżycowych. Na przykład, za pomocą tej funkcji można obliczyć całkowitą wielkość sprzedaży produktów według tygodnia księżycowego. Tygodnie księżycowe są przydatne, gdy chcemy mieć pewność, że wszystkie wartości znajdujące się w pierwszym tygodniu roku obejmują tylko wartości nie wcześniejsze niż z 1 stycznia.
Te wymiary można utworzyć w skrypcie ładowania za pomocą funkcji tworzenia pola w tabeli kalendarza głównego. Tej funkcji można także użyć bezpośrednio na wykresie jako wymiaru wyliczanego.
Przykłady funkcji
Przykład
Wynik
lunarweekname('01/12/2013')
Zwraca wartość 2006/02.
lunarweekname('01/12/2013', -1)
Zwraca wartość 2006/01.
lunarweekname('01/12/2013', 0, 1)
Zwraca wartość 2006/02.
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 — data 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 zmiennej systemowej DateFormat (MM/DD/YYYY).
Utworzenie pola , lunar_week_name, które zwraca rok i numer tygodnia dla tygodnia księżycowego, w którym zawarto transakcję.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
lunar_week_name
Tabela wynikowa
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
Pole lunar_week_name jest tworzone w poprzedzającej instrukcji LOAD przez użycie funkcji lunarweekname() i przekazanie pola date jako argumentu funkcji.
Funkcja lunarweekname() sprawdza, w którym tygodniu księżycowym wypada wartość daty oraz zwraca rok i numer tygodnia obejmujące tę datę.
Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekname() oblicza, że ta data wypada w tygodniu księżycowym zaczynającym się 15 stycznia, czyli trzecim tygodniu księżycowym roku. W efekcie dla tej transakcji zostaje zwrócona wartość lunar_week_name 2022/03.
Przykład 2 – data z argumentem 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_name, które zwraca rok i numer tygodnia dla tygodnia księżycowego, w którym zawarto transakcję.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
previous_lunar_week_name
Tabela wynikowa
date
previous_lunar_week_name
1/7/2022
2021/52
1/19/2022
2022/02
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/10
4/1/2022
2022/12
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/23
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/28
7/23/2022
2022/29
7/27/2022
2022/29
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/32
9/26/2022
2022/38
10/14/2022
2022/40
10/29/2022
2022/43
W tym przypadku, ponieważ wartości period_no -1 użyto jako argumentu przesunięcia w funkcji lunarweekname(), funkcja najpierw identyfikuje tydzień księżycowy, w którym zawarto transakcje. Następnie zwraca rok i numer poprzedniego tygodnia.
Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekname() oblicza, że ta transakcja została zawarta w trzecim tygodniu księżycowym roku, więc zwraca rok i wartość dla tygodnia wcześniejszego o jeden, 02.2022, dla pola previous_lunar_week_name.
Example 3 – data z argumentem 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
lunar_week_name
Tabela wynikowa
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/24
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/29
7/23/2022
2022/29
7/27/2022
2022/30
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/33
9/26/2022
2022/38
10/14/2022
2022/41
10/29/2022
2022/43
W tym przypadku przekazano wartość 4 jako argument first_week_date funkcji lunarweekname(), w wyniku czego początek tygodni księżycowych został przesunięty z 1 stycznia na 5 stycznia.
Transakcja 8188 została zawarta 7 stycznia. Ponieważ tygodnie księżycowe zaczynają się 5 stycznia, funkcja lunarweekname() oblicza, że tydzień księżycowy obejmujący 7 stycznia jest pierwszym tygodniem księżycowym roku. W efekcie dla tej transakcji zostaje zwrócona wartość lunar_week_name 2022/01.
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 numer tygodnia księżycowego i rok, w którym zostały zawarte transakcje, są tworzone jako miara na obiekcie wykresu aplikacji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: date.
Aby obliczyć datę początkową tygodnia księżycowego, kiedy ma miejsce transakcja, utwórz następującą miarę:
=lunarweekname(date)
Tabela wynikowa
date
=lunarweekname(date)
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
Miarę „lunar_week_name” tworzy się w obiekcie wykresu, używając funkcji lunarweekname() i przekazując pole daty date jako jej argument.
Funkcja lunarweekname() sprawdza, w którym tygodniu księżycowym wypada wartość daty oraz zwraca rok i numer tygodnia obejmujące tę datę.
Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekname() oblicza, że ta data wypada w tygodniu księżycowym zaczynającym się 15 stycznia, czyli trzecim tygodniu księżycowym roku. W efekcie wartość lunar_week_name dla tej transakcji to 2022/03.
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 zawierający zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie „Transactions”.
Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Użytkownik końcowy chciałby otrzymać obiekt wykresu przedstawiający łączną sprzedaż w ujęciu tygodniowym dla bieżącego roku. Tydzień 1, o długości siedmiu dni, powinien zaczynać się 1 stycznia. Można to osiągnąć nawet, jeśli ten wymiar jest nieodstępny w modelu danych przy użyciu funkcji lunarweekname() jako wymiaru wyliczanego na wykresie.