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.
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 lata 2020–2022, który jest ładowany do tabeli o nazwie Transactions.
Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/YYYY).
Utworzenie pola, in_year_to_date, które określa, jakie transakcje miały miejsce w roku do 26 lipca 2021 r.
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 poprzedniej instrukcji load 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ć!