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. 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_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 instrukcji ładowania poprzedzającego 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ć!