Ta funkcja sprawdza, czy wejściowy znacznik czasu przypada w roku daty dnia, w którym skrypt został ostatnio załadowany, i zwraca True, jeśli przypada, a False, jeśli nie przypada.
W Qlik Sense wartość logiczna Prawda jest reprezentowana przez -1, a wartość Fałsz jest reprezentowana przez 0.
Jeśli żaden z parametrów opcjonalnych nie jest używany, wówczas data od początku roku oznacza dowolną datę w ciągu roku kalendarzowego od 1 stycznia aż do daty ostatniego wykonania skryptu włącznie.
Innymi słowy, funkcja yeartodate(), jeśli zostanie wywołana bez żadnych dodatkowych parametrów, pobiera znacznik czasu i zwraca wartość logiczną zależną od tego, czy dana data wypadła w roku kalendarzowym do daty przeładowania włącznie.
Istnieje jednak także możliwość zmiany daty początkowej roku za pomocą argumentu firstmonth, jak również dokonywania porównań z poprzednimi lub następnymi latami za pomocą argumentu yearoffset.
Ponadto, w przypadku historycznych zestawów danych, funkcja yeartodate() udostępnia parametr umożliwiający ustawienie argumentu todaydate, co spowoduje porównanie znacznika czasu z rokiem kalendarzowym do daty przekazanej w argumencie todaydate włącznie.
Argumenty
Argument
Opis
timestamp
Znacznik czasu do porównania, np. '10/12/2012'.
yearoffset
Po określeniu wartości yearoffset parametr yeartodate zwraca wartość True dla tego samego okresu w innym roku. Ujemna wartość yearoffset wskazuje poprzedni rok, a dodatnie przesunięcie — przyszły rok. Najnowszą datę od początku roku uzyskuje się przez określenie yearoffset = -1. W przypadku pominięcia przyjmuje się wartość 0.
firstmonth
Przez określenie wartości firstmonth z zakresu od 1 do 12 (1 w przypadku pominięcia) można przesunąć początek roku do pierwszego dnia dowolnego miesiąca. Na przykład w celu ustalenia roku obrotowego z początkiem 1 maja należy określić firstmonth = 5. Wartość 1 oznaczałaby rok podatkowy zaczynający się 1 stycznia, a wartość 12 – rok podatkowy zaczynający się 1 grudnia.
todaydate
Określenie parametru todaydate (w przypadku pominięcia jest to znacznik czasu ostatniego wykonania skryptu) umożliwia przeniesienie dnia używanego jako górna granica okresu.
Kiedy używać
Funkcja yeartodate() zwraca wynik logiczny. Zazwyczaj ten typ funkcji będzie używany jako warunek w wyrażeniu if. Spowoduje to zwrócenie agregacji lub obliczeń w zależności od tego, czy przetwarzana data wypada w roku do daty ostatniego przeładowania aplikacji włącznie.
Na przykład funkcja YearToDate() może zostać użyta do identyfikacji całego sprzętu wyprodukowanego do danego momentu w roku.
W poniższych przykładach przyjmuje się, że ostatnie przeładowanie miało miejsce 18.11.2011 r.
Przykłady funkcji
Przykład
Wynik
yeartodate( '11/18/2010')
zwraca wartość False
yeartodate( '02/01/2011')
zwraca wartość True
yeartodate( '11/18/2011')
zwraca wartość True
yeartodate( '11/19/2011')
zwraca wartość False
yeartodate( '11/19/2011', 0, 1, '12/31/2011')
zwraca wartość True
yeartodate( '11/18/2010', -1)
zwraca wartość True
yeartodate( '11/18/2011', -1)
zwraca wartość False
yeartodate( '04/30/2011', 0, 5)
zwraca wartość False
yeartodate( '05/01/2011', 0, 5)
zwraca wartość True
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 — Przykład podstawowy
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, year_to_date, określającego, które transakcje miały miejsce w roku kalendarzowym do daty ostatniego przeładowania.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
year_to_date
Tabela wynikowa
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/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
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Pole year_to_date jest tworzone w poprzedzającej instrukcji LOAD przez użycie funkcji yeartodate() i przekazanie pola date jako argumentu funkcji.
Ponieważ do funkcji nie zostały przekazane żadne dalsze parametry, funkcja yeartodate() najpierw identyfikuje datę przeładowania, a więc granice bieżącego roku kalendarzowego (zaczynającego się 1 stycznia), które zwrócą logiczną wartość TRUE.
W związku z tym każda transakcja, która ma miejsce między 1 stycznia a 26 kwietnia, zwróci wynik logiczny TRUE. Każda transakcja mająca miejsce przed początkiem roku 2022 zwróci logiczną wartość FALSE.
Przykład 2 – yearoffset
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 two_years_prior określającego, które transakcje miały miejsce dwa pełne lata przed datą kalendarzową.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
two_years_prior
Tabela wynikowa
date
two_years_prior
01/10/2020
-1
02/28/2020
-1
04/09/2020
-1
04/16/2020
-1
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/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
12/27/2021
0
02/02/2022
0
02/26/2022
0
03/07/2022
0
03/11/2022
0
Przekazanie wartości -2 jako argument yearoffset funkcji yeartodate() powoduje przesunięcie granic porównawczego segmentu roku kalendarzowego o dwa pełne lata. Początkowo segment roku obejmuje dni między 1 stycznia a 26 kwietnia 2022 roku. Argument yearoffset przesuwa ten segment o dwa lata wstecz. W efekcie zakres dat zmienia się na przedział od 1 stycznia do 26 kwietnia 2020 roku.
W związku z tym każda transakcja, która ma miejsce między 1 stycznia a 26 kwietnia, zwróci wynik logiczny TRUE. Wszystkie transakcje mające miejsce przed tym segmentem lub po nim, spowodują zwrócenie wartości FALSE.
Przykład 3 – firstmonth
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, year_to_date, określającego, które transakcje miały miejsce w roku kalendarzowym do daty ostatniego przeładowania.
W tym przykładzie ustawiamy początek roku podatkowego na 1 lipca.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
year_to_date
Tabela wynikowa
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/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
-1
12/27/2021
-1
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
W tym przypadku, ponieważ jako argument firstmonth funkcji yeartodate() przekazano wartość 7, funkcja ta ustawia pierwszy dzień roku na 1 lipca, a ostatni dzień roku na 30 czerwca.
W związku z tym każda transakcja, która ma miejsce między 1 lipca 2021 roku a 26 kwietnia 2022 roku, spowoduje zwrócenie wartości logicznej TRUE. Każda transakcja mająca miejsce przed 1 lipca spowoduje zwrócenie wartości logicznej FALSE.
Przykład 4 – todaydate
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, year_to_date, określającego, które transakcje miały miejsce w roku kalendarzowym do daty ostatniego przeładowania.
Jednak w tym przykładzie musimy zidentyfikować wszystkie transakcje, które miały miejsce w roku kalendarzowym do 1 marca 2022 r. włącznie.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
date
year_to_date
Tabela wynikowa
date
year_to_date
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/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
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
0
03/11/2022
0
W tym przypadku funkcji yeartodate() przekazano datę 01.03.2022 jako argument todaydate, w związku z czym funkcja ta ustawia granicę końcową porównawczego segmentu roku kalendarzowego na 1 marca 2022 r. Przekazanie parametru firstmonth (o wartości z przedziału od 1 do 12) ma krytyczne znaczenie. Jeśli tego nie zrobimy, funkcja będzie zwracać puste wyniki.
W związku z tym każda transakcja zawarta między 1 stycznia a 1 marca 2022 roku, parametr todaydate, spowoduje zwrócenie logicznej wartości TRUE. Każda transakcja mająca miejsce przed 1 stycznia i po 1 marca 2022 roku spowoduje zwrócenie wartości logicznej FALSE.
Przykład 5 – Przykład z użyciem obiektu 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. Obliczenia określające, które transakcje miały miejsce w roku kalendarzowym do daty ostatniego przeładowania są 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.
Dodaj następującą miarę:
=yeartodate(date)
Tabela wynikowa
date
=yeartodate(date)
01/10/2020
0
02/28/2020
0
04/09/2020
0
04/16/2020
0
05/21/2020
0
08/14/2020
0
10/07/2020
0
12/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
12/27/2021
0
02/02/2022
-1
02/26/2022
-1
03/07/2022
-1
03/11/2022
-1
Miara year_to_date została utworzona w obiekcie wykresu przy użyciu funkcji yeartodate(), której przekazano pole daty date jako argument.
Ponieważ do funkcji nie zostały przekazane żadne dalsze parametry, funkcja yeartodate() najpierw identyfikuje datę przeładowania, a więc granice bieżącego roku kalendarzowego (zaczynającego się 1 stycznia), które zwrócą logiczną wartość TRUE.
Każda transakcja, która ma miejsce między 1 stycznia a 26 kwietnia, zwróci wynik logiczny TRUE. Każda transakcja mająca miejsce przed początkiem roku 2022 zwróci logiczną wartość FALSE.
Przykład 6 – Scenariusz
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).
Użytkownik potrzebuje obiektu wskaźnika KPI przedstawiającego łączną sprzedaż za okres 2021 roku analogiczny do okresu od początku bieżącego roku do daty ostatniego przeładowania.
Utwórz następującą miarę agregacji, aby obliczyć łączną sprzedaż
=sum(if(yeartodate(date,-1),amount,0))
Ustaw Formatowanie liczb miary na Waluta.
Funkcja yeartodate() zwraca wartość logiczną na podstawie ocen dat transakcji określonych za pomocą identyfikatorów. Ponieważ przeładowanie miało miejsce 16 czerwca 2022 roku, funkcja yeartodate wydziela segment roku obejmujący okres od 01.01.2022 do 16.06.2022. Ponieważ jednak funkcji przekazano wartość -1 jako argument period_no, te granice zostały przesunięte do poprzedniego roku. W związku z tym, dla każdej transakcji mającej miejsce między 01.01.2021 a 16.06.2021 funkcja yeartodate() zwraca wartość logiczną TRUE i sumuje kwotę.
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ć!