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. 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.
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 instrukcji ładowania poprzedzającego 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).
Ładowanie poprzedzające, które 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).
Ładowanie poprzedzające, które 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ć!