W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.
Funkcja inweek() używa argumentu base_date do identyfikacji, w którym siedmiodniowym okresie wypada określona data. Dzień początkowy tygodnia jest określany na podstawie zmiennej systemowej FirstWeekDay. Możesz jednak również zmienić pierwszy dzień tygodnia, używając argumentu first_week_day funkcji inweek().
Kiedy zostanie zdefiniowany wybrany tydzień, funkcja zwraca w wyniku wartość logiczną na podstawie porównania określonych wartości dat z danym segmentem tygodnia.
Kiedy używać
Funkcja inweek() zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w if expression. Funkcja inweek() zwraca agregację lub obliczenia zależne od tego, czy dana data wypada w tygodniu obejmującym wybraną datę argumentu base_date.
Na przykład funkcja inweek() może służyć do identyfikacji całego sprzętu wyprodukowanego w danym tygodniu.
Argumenty
Argument
Opis
timestamp
Data, która ma być porównana z wartością base_date.
base_date
Data używana do oceny tygodnia.
period_no
Tydzień może zostać przesunięty o wartość period_no. period_no jest liczbą całkowitą, gdzie 0 oznacza tydzień zawierający wartość base_date. Wartości ujemne parametru period_no oznaczają tygodnie poprzednie, a wartości dodatnie — tygodnie następne.
first_week_day
Domyślnie pierwszym dniem tygodnia jest niedziela (zgodnie ze zmienną systemową FirstWeekDay), począwszy od północy między sobotą a niedzielą. Parametr first_week_day zastępuje zmienną FirstWeekDay. Aby wskazać, że tydzień zaczyna się innego dnia, należy określić flagę w zakresie od 0 do 6.
first_week_day values
Dzień
Wartość
poniedziałek
0
wtorek
1
środa
2
czwartek
3
piątek
4
sobota
5
niedziela
6
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 funkcji
Przykład
Wynik
inweek ('01/12/2006', '01/14/2006', 0)
Zwraca TRUE
inweek ('01/12/2006', '01/20/2006', 0 )
Zwraca FALSE
inweek ('01/12/2006', '01/14/2006', -1 )
Zwraca FALSE
inweek ('01/07/2006', '01/14/2006', -1)
Zwraca TRUE
inweek ('01/12/2006', '01/09/2006', 0, 3)
Zwraca FALSE, ponieważ argument first_week_day ma wartość 3 (czwartek), co sprawia, że 12.01.2006 r. jest pierwszym dniem tygodnia następującego po tygodniu obejmującym datę 09.01.2006 r.
W pracy z tą funkcją mogą Ci pomóc poniższe tematy:
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
week_day
in_week
Tabela wynikowa
date
week_day
in_week
01/02/2022
Nie
0
01/05/2022
Śro
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Nie
-1
01/10/2022
Pon
-1
01/11/2022
Wto
-1
01/12/2022
Śro
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Nie
0
01/17/2022
Pon
0
01/18/2022
Wto
0
01/26/2022
Śro
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Nie
0
01/31/2022
Pon
0
Pole in_week jest tworzone w poprzedniej instrukcji load przy użyciu funkcji inweek(). Pierwszy argument określa, które pole jest oceniane. Drugi argument to wpisana bezpośrednio w kod data 14 stycznia, która jest wartością argumentu base_date. Argument base_date w połączeniu ze zmienną systemową FirstWeekDay identyfikuje tydzień porównawczy. Argument period_no o wartości 0 – oznaczający, że funkcja nie porównuje tygodni poprzedzających segmentowany tydzień ani następujących po nim – jest ostatni.
Zmienna systemowa FirstWeekDay określa, że tygodnie zaczynają się w niedzielę i kończą w sobotę. W związku z tym styczeń zostałby podzielony na tygodnie zgodnie z poniższym wykresem, a daty między 9 a 15 stycznia stanowiłyby prawidłowy okres dla obliczeń funkcji inweek():
Wszelkie transakcje zawarte między 9 a 15 stycznia powodują zwrócenie logicznej wartości TRUE.
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 zawierający zestaw transakcji za rok 2022 zostaje załadowany do tabeli o nazwie Transactions.
Zmienna systemowa FirstWeekDay, która jest ustawiona na 6 (niedziela).
Ładunek poprzedzający, który zawiera następujące elementy:
Funkcja inweek (), ustawiona jako pole prev_week określające, które transakcje zostały zawarte cały tydzień przed tygodniem obejmującym datę 14 lutego 2022 r.
Funkcja weekday(), ustawiona jako pole week_day pokazujące, który dzień tygodnia odpowiada każdej dacie.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
week_day
prev_week
Tabela wynikowa
date
week_day
prev_week
01/02/2022
Nie
-1
01/05/2022
Śro
-1
01/06/2022
Thu
-1
01/08/2022
Sat
-1
01/09/2022
Nie
0
01/10/2022
Pon
0
01/11/2022
Wto
0
01/12/2022
Śro
0
01/13/2022
Thu
0
01/14/2022
Fri
0
01/15/2022
Sat
0
01/16/2022
Nie
0
01/17/2022
Pon
0
01/18/2022
Wto
0
01/26/2022
Śro
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Nie
0
01/31/2022
Pon
0
Przekazanie funkcji inweek() wartości -1 jako argumentu period_no powoduje przesunięcie granic tygodnia porównawczego wstecz o pełne siedem dni. W przypadku argumentu period_no o wartości 0 tydzień obejmowałby dni od 9 do 15 stycznia. Jednak w tym przykładzie argument period_no o wartości -1 przesuwa początek i koniec tego segmentu o tydzień wstecz. Zakres dat zmienia się na okres od 2 do 8 stycznia.
W związku z tym każda transakcja, która ma miejsce między 2 a 8 stycznia spowoduje zwrócenie logicznej prawdy.
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 zawierający zestaw transakcji za rok 2022 zostaje załadowany do tabeli o nazwie Transactions.
Zmienna systemowa FirstWeekDay, która jest ustawiona na 6 (niedziela).
Ładunek poprzedzający, który zawiera następujące elementy:
Funkcja inweek(), ustawiona jako pole in_week określające, które transakcje zostały zawarte w tygodniu obejmującym datę 14 lutego 2022 r.
Funkcja weekday(), ustawiona jako pole week_day pokazujące, który dzień tygodnia odpowiada każdej dacie.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
week_day
in_week
Tabela wynikowa
date
week_day
in_week
01/02/2022
Nie
0
01/05/2022
Śro
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Nie
0
01/10/2022
Pon
-1
01/11/2022
Wto
-1
01/12/2022
Śro
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Nie
-1
01/17/2022
Pon
0
01/18/2022
Wto
0
01/26/2022
Śro
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Nie
0
01/31/2022
Pon
0
Przekazanie wartości 0 jako argumentu first_week_day funkcji inweek() powoduje zastąpienie zmiennej systemowej FirstWeekDay i ustawienie poniedziałku jako pierwszego dnia tygodnia.
W związku z tym każda transakcja zawarta między 10 a 16 stycznia spowoduje zwrócenie w wyniku logicznej prawdy.
Przykład 4 — przykład z obiektem wykresu
Przegląd
Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
Jednak w tym przykładzie zestaw danych pozostaje bez zmian i jest ładowany do aplikacji. Utwórz miarę w tabeli wyników znajdującą transakcje, które zostały zawarte w tygodniu obejmującym datę 14 stycznia 2022 r.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:
date
Utwórz następujące miary:
=inweek (date,'01/14/2022',0), aby obliczyć, czy transakcje zostały zawarte w tym samym tygodniu, w którym wypada 14 stycznia.
=weekday(date), aby pokazać, który dzień tygodnia odpowiada każdej dacie.
Tabela wynikowa
date
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
Nie
0
01/05/2022
Śro
0
01/06/2022
Thu
0
01/08/2022
Sat
0
01/09/2022
Nie
-1
01/10/2022
Pon
-1
01/11/2022
Wto
-1
01/12/2022
Śro
-1
01/13/2022
Thu
-1
01/14/2022
Fri
-1
01/15/2022
Sat
-1
01/16/2022
Nie
0
01/17/2022
Pon
0
01/18/2022
Wto
0
01/26/2022
Śro
0
01/27/2022
Thu
0
01/28/2022
Fri
0
01/29/2022
Sat
0
01/30/2022
Nie
0
01/31/2022
Pon
0
Miara in_week jest tworzona na wykresie przy użyciu funkcji inweek(). Pierwszy argument określa, które pole jest oceniane. Drugi argument to wpisana bezpośrednio w kod data 14 stycznia, która jest wartością argumentu base_date. Argument base_date w połączeniu ze zmienną systemową FirstWeekDay identyfikuje tydzień porównawczy. Ostatni argument to period_no o wartości 0.
Zmienna systemowa FirstWeekDay określa, że tygodnie zaczynają się w niedzielę i kończą w sobotę. W związku z tym styczeń zostałby podzielony na tygodnie zgodnie z poniższym wykresem, a daty między 9 a 15 stycznia stanowiłyby prawidłowy okres dla obliczeń funkcji inweek():
Wszelkie transakcje zawarte między 9 a 15 stycznia powodują zwrócenie logicznej wartości TRUE.
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.
Tabela zawiera następujące pola:
identyfikator produktu,
typ produktu,
data produkcji,
cena.
Stwierdzono, że z powodu błędu sprzętowego produkty wytworzone w tygodniu z 12 stycznia były wadliwe. Użytkownik końcowy chciałby, aby wykres wyświetlał według tygodni informację, czy produkty były wadliwe, czy bez wad oraz koszt produktów wytworzonych w danym tygodniu.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:
=weekname(manufacture_date)
Utwórz następujące miary:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless') – określa, które produkty są wadliwe, a które bez wad, za pomocą funkcji inweek().
=sum(cost_price) – pokazuje sumę kosztów wszystkich produktów.
Funkcja inweek() zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów. W przypadku każdego produktu wyprodukowanego w tygodniu obejmującym 12 stycznia funkcja inweek() zwraca wartość logiczną PRAWDA i oznacza produkty jako „Defective” (Wadliwe). Każdy produkt, dla którego jest zwracana wartość FALSE, a zatem niewyprodukowanego 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ć!