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. Więcej informacji można znaleźć w temacie Modyfikowanie ustawień regionalnych na potrzeby aplikacji i skryptów.
Domyślne ustawienia regionalne w aplikacjach są oparte na profilu użytkownika. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Cloud. Interfejs Qlik Cloud będzie wyświetlany w tym samym języku co używana przeglądarka.
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 instrukcji ładowania poprzedzającego 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ć!