inquartertodate — funkcja skryptu i funkcja wykresu
Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części kwartału zawierającego wartość base_date, z dokładnością do ostatniej milisekundy wartości base_date włącznie.
W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.
Funkcja inquartertodate() dzieli rok na cztery równe kwartały między 1 stycznia a 31 grudnia (lub zdefiniowanym przez użytkownika początkiem roku a odpowiadającą mu datą zakończenia). Używając base_date, funkcja dokona segmentacji określonego kwartału, przy czym base_date identyfikuje zarówno kwartał, jak i maksymalną dozwoloną datę dla tego segmentu kwartału. Na koniec funkcja zwraca wynik logiczny podczas porównywania określonych wartości dat z tym segmentem.
Argumenty
Argument
Opis
timestamp
Data, która ma być porównana z wartością base_date.
base_date
Data używana do oceny kwartału.
period_no
Kwartał może zostać przesunięty o wartość period_no. period_no jest liczbą całkowitą, gdzie 0 oznacza kwartał zawierający wartość base_date. Wartości ujemne parametru period_no oznaczają kwartały poprzednie, a wartości dodatnie — kwartały następne.
first_month_of_year
Jeśli użytkownik zamierza korzystać z lat (obrotowych), które nie zaczynają się w styczniu, powinien wskazać wartość od 2 do 12 jako parametr first_month_of_year.
Kiedy używać
Funkcja inquartertodate() zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w wyrażeniu if. Można użyć funkcji inquartertodate(), aby zwróciła agregację lub obliczenia w zależności od tego, czy oceniana data nastąpiła w kwartale do danej daty włącznie.
Na przykład funkcja inquartertodate() może służyć do identyfikacji całego sprzętu wyprodukowanego w kwartale do określonej daty.
Przykłady funkcji
Przykład
Wynik
inquartertodate('01/25/2013', '03/25/2013', 0)
Zwraca TRUE, ponieważ wartość timestamp, 01/25/2013, przypada w okresie trzech miesięcy od 01/01/2013 do 03/25/2013, w którym przypada wartość base_date, 03/25/2013.
inquartertodate('04/26/2013', '03/25/2013', 0)
Zwraca FALSE, ponieważ 04/26/2013 przypada poza tym samym okresem co poprzedni przykład.
inquartertodate('02/25/2013', '06/09/2013', -1)
Zwraca TRUE, ponieważ wartośćperiod_no, -1, cofa okres wyszukiwania o jeden okres trzymiesięczny (jeden kwartał roku). W związku z tym okres wyszukiwania jest od 01/01/2013 do 03/09/2013.
inquartertodate('03/25/2006', '04/15/2006', 0, 2)
Zwraca TRUE, ponieważ wartość first_month_of_year jest ustawiona na 2, co sprawia, że okres wyszukiwania jest od 02/01/2006 do 04/15/2006 zamiast od 04/01/2006 do 04/15/2006.
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 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, in_quarter_to_date, które określa, jakie transakcje miały miejsce w kwartale do 15 maja 2022 r.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
in_quarter_to_date
Tabela wynikowa
date
in_quarter_to_date
1/7/2022
0
1/19/2022
0
2/5/2022
0
2/28/2022
0
3/16/2022
0
4/1/2022
-1
5/7/2022
-1
5/16/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Pole in_quarter_to_date jest tworzone w poprzedniej instrukcji load przy użyciu funkcji inquartertodate(). Pierwszy podany argument określa, które pole jest oceniane. Drugi argument to ustalona data 15 maja — jest to argument base_date, który wskazuje kwartał do posegmentowania i definiuje granicę końcową tego segmentu. Argument period_no o wartości 0 jest ostatnim argumentem, co oznacza, że funkcja nie porównuje kwartałów poprzedzających segmentowany kwartał ani następujących po nim.
Każda transakcja, która ma miejsce w okresie od 1 kwietnia do 15 maja, zwraca wynik logiczny TRUE. Daty transakcji 16 maja i późniejsze zwrócą FALSE, podobnie jak wszelkie transakcje sprzed 1 kwietnia.
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.
Utworzenie pola, previous_qtr_to_date, które określa, jakie transakcje miały miejsce w pełnym kwartale przed segmentem kwartału kończącego się 15 maja 2022 r.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
previous_qtr_to_date
Tabela wynikowa
date
previous_qtr_to_date
1/7/2022
-1
1/19/2022
-1
2/5/2022
-1
2/28/2022
0
3/16/2022
0
4/1/2022
0
5/7/2022
0
5/16/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Wartość period_no równa -1 wskazuje, że funkcja inquartertodate () porównuje wejściowy segment kwartału z poprzednim kwartałem. 15 maja przypada na drugi kwartał roku, więc segment początkowo równa się od 1 kwietnia do 15 maja. Wartość period_no następnie przesuwa ten segment o trzy miesiące wcześniej, powodując, że datami granicznymi są 1 stycznia i 15 lutego.
W związku z tym każda transakcja, która ma miejsce między 1 stycznia a 15 lutego, zwróci wynik logicznyTRUE.
Przykład 3 — first_month_of_year
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, in_quarter_to_date, które określa, jakie transakcje miały miejsce w tym samym kwartale do 15 maja 2022 r.
W tym przykładzie jako pierwszy miesiąc roku obrachunkowego ustawiliśmy marzec.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
in_quarter_to_date
Tabela wynikowa
date
in_quarter_to_date
1/7/2022
0
1/19/2022
0
2/5/2022
0
2/28/2022
0
3/16/2022
-1
4/1/2022
-1
5/7/2022
-1
5/16/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Używając 3 jako argumentu first_month_of_year w funkcji inquartertodate(), funkcja rozpoczyna rok 1 marca, a następnie dzieli rok na kwartały. Dlatego segmenty kwartałów to:
Od marca do maja
Od czerwca do sierpnia
Od września do listopada
Od grudnia do lutego
Wartość base_date z 15 maja dzieli kwartał od marca do maja, ustawiając granicę końcową na 15 maja.
W związku z tym każda transakcja, która ma miejsce między 1 marca a 15 maja, zwróci wynik logiczny TRUE, podczas gdy transakcje z datami poza tymi granicami zwrócą wartość FALSE.
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. Obliczenie określające, które transakcje miały miejsce w tym samym kwartale co 15 maja, jest tworzone jako miara w obiekcie wykresu.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:date.
Utwórz następującą miarę:
=inquartertodate(date,'05/15/2022', 0)
Tabela wynikowa
date
=inquartertodate(date,'05/15/2022', 0)
1/7/2022
0
1/19/2022
0
2/5/2022
0
2/28/2022
0
3/16/2022
0
4/1/2022
-1
5/7/2022
-1
5/16/2022
0
6/15/2022
0
6/26/2022
0
7/9/2022
0
7/22/2022
0
7/23/2022
0
7/27/2022
0
8/2/2022
0
8/8/2022
0
8/19/2022
0
9/26/2022
0
10/14/2022
0
10/29/2022
0
Miara in_quarter_to_date jest tworzona w obiekcie wykresu przy użyciu funkcji inquartertodate(). Pierwszym argumentem jest oceniane pole daty. Drugi argument to ustalona data 15 maja — jest to argument base_date, który wskazuje kwartał do posegmentowania i definiuje granicę końcową tego segmentu. Argument period_no o wartości 0 jest ostatnim argumentem, co oznacza, że funkcja nie porównuje kwartałów poprzedzających segmentowany kwartał ani następujących po nim.
Każda transakcja, która ma miejsce w okresie od 1 kwietnia do 15 maja, zwraca wynik logiczny TRUE. Transakcje z 16 maja i późniejsze zwrócą FALSE, podobnie jak wszelkie transakcje sprzed 1 kwietnia.
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 dotyczące identyfikatora produktu, daty produkcji i kosztu.
15 maja 2022 r. w procesie produkcyjnym zidentyfikowano i naprawiono błąd sprzętowy. Produkty wyprodukowane w tym kwartale do tego dnia będą wadliwe. Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał według nazw kwartałów status produktów: „defective” (wadliwe) lub „faultless” (bez wad) oraz koszt produktów wytworzonych w danym kwartale do daty bieżącej.
Funkcja inquartertodate() zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów. Dla tych, które zwracają wartość logiczną TRUE, oznacza produkty jako ‘Defective’. W przypadku każdego produktu zwracającego wartość FALSE, a zatem niewyprodukowanego w kwartale do 15 maja włącznie, oznacza ona produkty jako ‘Faultless’.
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ć!