Ta funkcja zwraca wartość True, jeśli wartość timestamp należy do części roku 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 inyeartodate() dokona segmentacji określonej części roku przy użyciu base_date, identyfikując maksymalną dozwoloną datę dla tego segmentu roku. Następnie funkcja ocenia, czy pole lub wartość daty należy do tego segmentu, i zwraca wynik logiczny.
Argumenty
Argument
Opis
timestamp
Data, która ma być porównana z wartością base_date.
base_date
Data używana do oceny roku.
period_no
Rok może zostać przesunięty o wartość period_no. period_no jest liczbą całkowitą, gdzie 0 oznacza rok zawierający wartość base_date. Wartości ujemne parametru period_no oznaczają lata poprzednie, a wartości dodatnie — lata 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 inyeartodate() zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w wyrażeniu if. Spowoduje to zwrócenie agregacji lub obliczenia w zależności od tego, czy oceniana data nastąpiła w roku do danej daty włącznie.
Na przykład funkcja inyeartodate() może służyć do identyfikacji całego sprzętu wyprodukowanego w roku do określonej daty.
W tych przykładach używany jest format daty MM/DD/YYYY. Format daty jest określony w instrukcji SET DateFormat u góry skryptu ładowania danych. Format zastosowany w przykładach można zmienić, aby dostosować go do konkretnych potrzeb.
Przykłady funkcji
Przykład
Wynik
inyeartodate ('01/25/2013', '02/01/2013', 0)
Zwraca wartość TRUE.
inyeartodate ('01/25/2012', '01/01/2013', 0)
Zwraca wartość FALSE.
inyeartodate ('01/25/2012', '02/01/2013', -1)
Zwraca wartość TRUE.
inyeartodate ('11/25/2012', '01/31/2013', 0, 4)
Zwraca wartość TRUE. Wartość timestamp przypada w roku obrotowym zaczynającym się w czwartym kwartale, przed wartością base_date.
inyeartodate ('3/31/2013', '01/31/2013', 0, 4 )
Zwraca wartość FALSE. W porównaniu z poprzednim przykładem wartość timestamp wciąż mieści się w roku obrotowym, ale jest po wartości base_date, dlatego przypada poza częścią roku.
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_year_to_date
Tabela wynikowa
date
in_year_to_date
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
-1
02/03/2021
-1
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Pole in_year_to_date jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji inyeartodate(). Pierwszy podany argument określa, które pole jest oceniane.
Drugi argument to ustalona data 26 lipca 2021 r. — jest to argument base_date, który wskazuje granicę końcową segmentu roku. Argument period_no o wartości 0 jest ostatnim argumentem, co oznacza, że funkcja nie porównuje lat poprzedzających segmentowany rok ani następujących po nim.
Wszelkie transakcje, które występują między 1 stycznia a 26 lipca, zwracają jako wynik wartość logiczną TRUE. Daty transakcji sprzed 2021 roku i po 26 lipca 2021 r. zwracają FALSE.
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_year_to_date, które określa, jakie transakcje miały miejsce w pełnym roku przed segmentem roku kończącego się 26 lipca 2021 r.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
previous_year_to_date
Tabela wynikowa
date
previous_year_to_date
01/13/2020
-1
02/26/2020
-1
03/27/2020
-1
04/16/2020
-1
05/21/2020
-1
06/14/2020
-1
08/07/2020
0
09/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
0
04/23/2021
0
05/04/2021
0
06/30/2021
0
07/26/2021
0
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Wartość period_no równa -1 wskazuje, że funkcja inyeartodate () porównuje wejściowy segment kwartału z poprzednim rokiem. Z datą wejściową 26 lipca 2021 r. segment od 1 stycznia 2021 r. do 26 lipca 2021 r. został wstępnie zidentyfikowany jako od początku roku. Wartość period_no następnie przesuwa ten segment o cały rok wcześniej, powodując, że datami granicznymi są 1 stycznia i 26 lipca.
W związku z tym każda transakcja, która ma miejsce między 1 stycznia a 26 lipca, 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_year_to_date, które określa, jakie transakcje miały miejsce w tym samym roku do 26 lipca 2021 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_year_to_date
Tabela wynikowa
date
in_year_to_date
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Kiedy używa się 3 jako argumentu first_month_of_year w funkcji inyeartodate(), funkcja rozpoczyna rok 1 marca. Wartość base_date 26 lipca 2021 r. następnie ustawia datę końcową dla tego segmentu roku.
W związku z tym każda transakcja, która ma miejsce między 1 marca a 26 lipca 2021 r., 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 roku do 26 lipca 2021 r., 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.
Utwórz następującą miarę:
=inyeartodate(date,'07/26/2021', 0)
Tabela wynikowa
date
=inyeartodate(date,'07/26/2021', 0)
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
-1
02/03/2021
-1
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Miara in_year_to_date jest tworzona w obiekcie wykresu przy użyciu funkcji inyeartodate(). Pierwszy podany argument określa, które pole jest oceniane. Drugi argument to ustalona data 26 lipca 2021 r. — jest to argument base_date, który wskazuje granicę końcową segmentu roku komparatora. Argument period_no o wartości 0 jest ostatnim argumentem, co oznacza, że funkcja nie porównuje lat poprzedzających segmentowany rok ani następujących po nim.
Wszelkie transakcje, które występują między 1 stycznia a 26 lipca 2021 r., zwracają jako wynik wartość logiczną TRUE. Daty transakcji sprzed 2021 roku i po 26 lipca 2021 r. zwracają FALSE.
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, typu produktu, daty produkcji i kosztu.
Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał według typu produktu koszt produktów wyprodukowanych w 2021 r. do 26 lipca.
Funkcja inyeartodate() zwraca wartość logiczną podczas oceny dat wytworzenia każdego z produktów. W przypadku każdego produktu wyprodukowanego w 2021 r. przed 27 lipca funkcja inyeartodate() zwraca wartość logiczną TRUE i sumuje cost_price.
Produkt D to jedyny produkt, który został wyprodukowany również po 26 lipca 2021 roku. Pozycja z product_ID 8203 została wyprodukowana 27 grudnia i kosztowała 25,12 USD. W związku z tym ten koszt nie został uwzględniony w sumie produktu D w obiekcie wykresu.
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ć!