Ta funkcja sprawdza, czy wartość timestamp należy do tygodnia księżycowego zawierającego wartość base_date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia. Każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.
W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.
Funkcja inlunarweek() sprawdza, do którego tygodnia księżycowego należy base_date. Następnie zwraca wynik logiczny po określeniu, czy każdy znacznik czasu wypada w tym samym tygodniu księżycowym co base_date.
Kiedy używać
Funkcja inlunarweek() zwraca wynik logiczny. Zazwyczaj tego typu funkcji używa się jako warunku w wyrażeniu IF. Spowoduje to zwrócenie agregacji lub obliczenia w zależności od tego, czy oceniana data nastąpiła w danym tygodniu księżycowym.
Na przykład funkcja inlunarweek() może służyć do identyfikacji całego sprzętu wyprodukowanego w danym tygodniu księżycowym.
Argumenty
Argument
Opis
timestamp
Data, która ma być porównana z wartością base_date.
base_date
Data używana do oceny tygodnia księżycowego.
period_no
Tydzień księżycowy może zostać przesunięty o wartość period_no. period_no jest liczbą całkowitą, gdzie 0 oznacza tydzień księżycowy zawierający wartość base_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.
Przykłady funkcji
Przykład
Wynik
inlunarweek('01/12/2013', '01/14/2013',
0)
Zwraca TRUE, ponieważ wartość timestamp, 01/12/2013, wypada w tygodniu od 01/08/2013 do 01/14/2013.
inlunarweek('01/12/2013', '01/07/2013',
0)
Zwraca FALSE, ponieważ base_date01/07/2013 wypada w tygodniu księżycowym zdefiniowanym jako obejmujący dni od 01/01/2013 do 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Zwraca wartość FALSE. Nadanie argumentowi period_no wartości -1 powoduje przesunięcie tygodnia do poprzedniego tygodnia, od 01/01/2013 do 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Zwraca wartość TRUE. W odróżnieniu od poprzedniego przykładu, timestamp przypada w następnym tygodniu po uwzględnieniu przesunięcia do tyłu.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Zwraca wartość FALSE. Jeśli argumentowi first_week_day przypiszemy wartość 3, to początek roku będzie obliczany od 01/04/2013. W związku z tym wartość base_date wypada w pierwszym tygodniu, a wartość timestamp wypada w tygodniu od 01/11/2013 do 01/17/2013.
Funkcja inlunarweek() jest często używana w połączeniu z następującymi funkcjami:
Ta funkcja służy do określania numeru tygodnia księżycowego roku, w którym wypada data przekazana na wejściu.
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 transakcji zawartych w styczniu, który jest ładowany do tabeli o nazwie Transactions.
Pole daty zostało podane w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Utwórz pole, in_lunar_week, określające czy transakcje miały miejsce w tym samym tygodniu księżycowym, w którym wypada data 10 stycznia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
in_lunar_week
Tabela wynikowa
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Pole in_lunar_week jest tworzone w poprzedzającej instrukcji ładowania za pomocą funkcji inlunarweek(). Następnie do funkcji zostają przekazane następujące argumenty:
Pole date
Data 10 stycznia wpisana bezpośrednio w kod jako base_date
Argument period_no o wartości 0
Ponieważ tygodnie księżycowe zaczynają się 1 stycznia, data 10 stycznia wypadłaby w tygodniu księżycowym zaczynającym się 8 stycznia i kończącym się 14 stycznia. W związku z tym wszelkie transakcje, które mają miejsce między tymi dwiema styczniowymi datami, zwracałyby wartość TRUE. Można to zweryfikować w tabeli wyników.
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.
Pole daty zostało podane w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Jednak w tym przykładzie chodzi o utworzenie pola, 2_lunar_weeks_later, które będzie sprawdzało, czy transakcje miały miejsce dwa tygodnie księżycowe po 10 stycznia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
2_lunar_weeks_later
Tabela wynikowa
date
2_lunar_weeks_later
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
W tym przykładzie, ponieważ do funkcji inlunarweek() jako wartość przesunięcia przekazano argument period_no o wartości 2, jako tydzień, według którego mają być sprawdzane transakcje, został zdefiniowany tydzień zaczynający się dnia 22 stycznia. W związku z tym każda transakcja, która ma miejsce między 22 a 28 stycznia zwróci wynik logiczny TRUE.
Przykład 3 — first_week_day
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania używa tego samego zestawu danych i scenariusza co w pierwszym przykładzie. Jednak w tym przykładzie ustawiamy początek tygodni księżycowych na 6 stycznia.
Ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
Została użyta domyślna zmienna systemowa DateFormat MM/DD/RRRR.
Argument first_week_day o wartości. W ten sposób ustawiamy początek tygodni księżycowych na dzień 5 stycznia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
in_lunar_week
Tabela wynikowa
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
W tym przykładzie przekazaliśmy funkcji inlunarweek() argument first_week_date o wartości 5, który przesuwa początek tygodnia księżycowego na 6 stycznia. W efekcie 10 stycznia wypada w tygodniu księżycowym zaczynającym się 6 stycznia i kończącym się 12 stycznia. Wszelkie transakcje mające miejsce między tymi dwiema datami będą zwracać logiczną wartość TRUE.
Przykład 4 – obiekt 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.
Pole daty zostało podane w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia określające, czy transakcje miały miejsce w tym samym tygodniu księżycowym, w którym wypada 10 stycznia, jest 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ć, czy transakcja ma miejsce w tygodniu księżycowym obejmującym 10 stycznia, utwórz następującą miarę:
= inlunarweek(date,'01/10/2022', 0)
Tabela wynikowa
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
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 Products.
Informacje obejmujące identyfikator produktu, datę produkcji i cenę.
Stwierdzono, że z powodu błędu sprzętowego produkty wytworzone w tygodniu księżycowym obejmującym 12 stycznia były wadliwe. Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał według tygodni księżycowych informację, czy produkty były wadliwe, czy bez wad oraz koszt produktów wytworzonych w danym miesiącu.
Funkcja inlunarweek() zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów. W przypadku każdego produktu wyprodukowanego w tygodniu obejmującym 10 stycznia funkcja inlunarweek() zwraca wartość logiczną TRUE i oznacza produkty jako wadliwe. Każdy produkt, dla którego jest zwracana wartość FALSE, a zatem niewyprodukowany w tym tygodniu, oznacza jako pozbawiony wad.
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ć!