Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy ostatniego dnia roku zawierającego wartość date. Domyślnym formatem wyjściowym będzie format DateFormat skonfigurowany w skrypcie.
Innymi słowy, funkcja yearend() określa, na który rok przypada data. Następnie zwraca znacznik czasu w formacie daty dla ostatniej milisekundy tego roku. Pierwszym miesiącem roku jest domyślnie styczeń. Możesz jednak również zmienić pierwszy dzień tygodnia, używając argumentu first_month_of_year w funkcji yearend().
Informacja Funkcja yearend() nie uwzględnia zmiennej systemowej FirstMonthOfYear. Rok rozpoczyna się 1 stycznia, chyba że do jego zmiany użyto argumentu first_month_of_year.
Kiedy używać
Funkcja yearend() jest powszechnie używana jako część wyrażenia, gdy użytkownik chce, by w obliczeniach użyto ułamka roku, który jeszcze nie nastąpił. Na przykład, jeśli chcesz obliczyć łączne odsetki, które nie zostały jeszcze naliczone w ciągu roku.
Typ zwracanych danych: dual
Argumenty
Argument
Opis
date
Data lub znacznik czasu do oszacowania.
period_no
period_no jest liczbą całkowitą, gdzie 0 oznacza rok, który zawiera datę 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.
Aby ustawić pierwszy miesiąc roku w argumencie first_month_of_year, możesz użyć następujących wartości:
first_month_of_year values
Miesiąc
Wartość
Luty
2
Marzec
3
Kwiecień
4
May
5
Czerwiec
6
Lipiec
7
Sierpień
8
Wrzesień
9
Październik
10
Listopad
11
Grudzień
12
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łady funkcji
Przykład
Wynik
yearend('10/19/2001')
Zwraca 12/31/2001 23:59:59.
yearend('10/19/2001', -1)
Zwraca 12/31/2000 23:59:59.
yearend('10/19/2001', 0, 4)
Zwraca 03/31/2002 23:59:59.
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 jest ładowany do tabeli o nazwie „Transactions”.
Pole daty zostało podane w formacie zmiennej systemowej DateFormat(MM/DD/YYYY).
Instrukcja ładowania poprzedzającego, która zawiera:
Funkcję yearend(), która jest ustawiona jako pole year_end.
Funkcję Timestamp(), która jest ustawiona jako pole year_end_timestamp.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
id
date
year_end
year_end_timestamp
Tabela wynikowa
id
date
year_end
year_end_timestamp
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
Pole „year_end” jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji yearend() i przekazanie pola daty jako jej argumentu.
Funkcja yearend() początkowo identyfikuje, w którym roku przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego roku.
Transakcja 8199 miała miejsce 23 kwietnia 2021 r. Funkcja yearend() zwraca ostatnią milisekundę tego roku, czyli 31 grudnia o godz 23:59:59 (11:59:59 PM).
Przykład 2 – period_no
Przegląd
Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
Jednak w tym przykładzie zadaniem jest utworzenie pola „previous_year_end”, które zwraca znacznik czasu daty końcowej roku poprzedzającego rok, w którym miała miejsce transakcja.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
id
date
previous_year_end
previous_ year_end_timestamp
Tabela wynikowa
id
date
previous_year_end
previous_year_end_timestamp
8188
01/13/2020
12/31/2019
12/31/2019 11:59:59 PM
8189
02/26/2020
12/31/2019
12/31/2019 11:59:59 PM
8190
03/27/2020
12/31/2019
12/31/2019 11:59:59 PM
8191
04/16/2020
12/31/2019
12/31/2019 11:59:59 PM
8192
05/21/2020
12/31/2019
12/31/2019 11:59:59 PM
8193
08/14/2020
12/31/2019
12/31/2019 11:59:59 PM
8194
10/07/2020
12/31/2019
12/31/2019 11:59:59 PM
8195
12/05/2020
12/31/2019
12/31/2019 11:59:59 PM
8196
01/22/2021
12/31/2020
12/31/2020 11:59:59 PM
8197
02/03/2021
12/31/2020
12/31/2020 11:59:59 PM
8198
03/17/2021
12/31/2020
12/31/2020 11:59:59 PM
8199
04/23/2021
12/31/2020
12/31/2020 11:59:59 PM
8200
05/04/2021
12/31/2020
12/31/2020 11:59:59 PM
8201
06/30/2021
12/31/2020
12/31/2020 11:59:59 PM
8202
07/26/2021
12/31/2020
12/31/2020 11:59:59 PM
8203
12/27/2021
12/31/2020
12/31/2020 11:59:59 PM
8204
06/06/2022
12/31/2021
12/31/2021 11:59:59 PM
8205
07/18/2022
12/31/2021
12/31/2021 11:59:59 PM
8206
11/14/2022
12/31/2021
12/31/2021 11:59:59 PM
8207
12/12/2022
12/31/2021
12/31/2021 11:59:59 PM
Ponieważ period_no o wartości -1 użyto jako argumentu przesunięcia w funkcji yearend(), funkcja najpierw identyfikuje rok, w którym odbywają się transakcje. Następnie identyfikuje ostatnią milisekundę poprzedniego roku.
Transakcja 8199 ma miejsce 23 kwietnia 2021 r. Funkcja yearend() zwraca ostatnią milisekundę poprzedniego roku, czyli 31 grudnia 2020 r. o godz 23:59:59 (11:59:59 PM), dla pola „previous_year_end”.
Przykład 3 — first_month_of_year
Przegląd
Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
W tym przykładzie jednak, zgodnie z polityką firmy, rok zaczyna się 1 kwietnia.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
id
date
year_end
year_end_timestamp
Tabela wynikowa
id
date
year_end
year_end_timestamp
8188
01/13/2020
03/31/2020
3/31/2020 11:59:59 PM
8189
02/26/2020
03/31/2020
3/31/2020 11:59:59 PM
8190
03/27/2020
03/31/2020
3/31/2020 11:59:59 PM
8191
04/16/2020
03/31/2021
3/31/2021 11:59:59 PM
8192
05/21/2020
03/31/2021
3/31/2021 11:59:59 PM
8193
08/14/2020
03/31/2021
3/31/2021 11:59:59 PM
8194
10/07/2020
03/31/2021
3/31/2021 11:59:59 PM
8195
12/05/2020
03/31/2021
3/31/2021 11:59:59 PM
8196
01/22/2021
03/31/2021
3/31/2021 11:59:59 PM
8197
02/03/2021
03/31/2021
3/31/2021 11:59:59 PM
8198
03/17/2021
03/31/2021
3/31/2021 11:59:59 PM
8199
04/23/2021
03/31/2022
3/31/2022 11:59:59 PM
8200
05/04/2021
03/31/2022
3/31/2022 11:59:59 PM
8201
06/30/2021
03/31/2022
3/31/2022 11:59:59 PM
8202
07/26/2021
03/31/2022
3/31/2022 11:59:59 PM
8203
12/27/2021
03/31/2022
3/31/2022 11:59:59 PM
8204
06/06/2022
03/31/2023
3/31/2023 11:59:59 PM
8205
07/18/2022
03/31/2023
3/31/2023 11:59:59 PM
8206
11/14/2022
03/31/2023
3/31/2023 11:59:59 PM
8207
12/12/2022
03/31/2023
3/31/2023 11:59:59 PM
Ponieważ argument first_month_of_year o wartości 4 jest używany w funkcji yearend(), ustawia pierwszy dzień roku na 1 kwietnia, a ostatni dzień roku na 31 marca.
Transakcja 8199 ma miejsce 23 kwietnia 2021 r. Ponieważ funkcja yearend() ustawia początek roku na 1 kwietnia, zwraca 31 marca 2022 r. jako wartość „year_end” dla transakcji.
Przykład 4 — przykład z obiektem wykresu
Przegląd
Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.
Jednak w tym przykładzie zestaw danych pozostaje bez zmian i jest ładowany do aplikacji. Obliczenie zwracające znacznik czasu końcowej daty roku, kiedy wystąpiła transakcja, jest tworzone jako miara w obiekcie wykresu aplikacji.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
id
date
Aby obliczyć, w którym roku miała miejsce transakcja, utwórz następujące miary:
=yearend(date)
=timestamp(yearend(date))
Tabela wynikowa
id
date
=yearend(date)
=timestamp(yearend(date))
8188
01/13/2020
12/31/2020
12/31/2020 11:59:59 PM
8189
02/26/2020
12/31/2020
12/31/2020 11:59:59 PM
8190
03/27/2020
12/31/2020
12/31/2020 11:59:59 PM
8191
04/16/2020
12/31/2020
12/31/2020 11:59:59 PM
8192
05/21/2020
12/31/2020
12/31/2020 11:59:59 PM
8193
08/14/2020
12/31/2020
12/31/2020 11:59:59 PM
8194
10/07/2020
12/31/2020
12/31/2020 11:59:59 PM
8195
12/05/2020
12/31/2020
12/31/2020 11:59:59 PM
8196
01/22/2021
12/31/2021
12/31/2021 11:59:59 PM
8197
02/03/2021
12/31/2021
12/31/2021 11:59:59 PM
8198
03/17/2021
12/31/2021
12/31/2021 11:59:59 PM
8199
04/23/2021
12/31/2021
12/31/2021 11:59:59 PM
8200
05/04/2021
12/31/2021
12/31/2021 11:59:59 PM
8201
06/30/2021
12/31/2021
12/31/2021 11:59:59 PM
8202
07/26/2021
12/31/2021
12/31/2021 11:59:59 PM
8203
12/27/2021
12/31/2021
12/31/2021 11:59:59 PM
8204
06/06/2022
12/31/2022
12/31/2022 11:59:59 PM
8205
07/18/2022
12/31/2022
12/31/2022 11:59:59 PM
8206
11/14/2022
12/31/2022
12/31/2022 11:59:59 PM
8207
12/12/2022
12/31/2022
12/31/2022 11:59:59 PM
Miarę „end_of_year” tworzy się w obiekcie wykresu, używając funkcji yearend() i przekazując pole daty jako jej argument.
Funkcja yearend() początkowo identyfikuje, w którym roku przypada wartość daty, i zwraca znacznik czasu ostatniej milisekundy danego roku.
Transakcja 8199 ma miejsce 23 kwietnia 2021 r. Funkcja yearend() zwraca ostatnią milisekundę tego roku, czyli 31 grudnia o godz 23:59:59 (11:59:59 PM).
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 jest ładowany do tabeli o nazwie Employee_Expenses. Tabela zawiera następujące pola:
identyfikatory pracowników
imię i nazwisko pracownika
średnie dzienne rozliczenia wydatków każdego pracownika
Użytkownik końcowy chciałby, aby obiekt wykresu wyświetlał, według identyfikatora pracownika oraz imienia i nazwiska pracownika, szacowane roszczenia z tytułu wydatków do poniesienia przez pozostałą część roku. Rok obrotowy rozpoczyna się w styczniu.
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
employee_id
employee_name
Aby obliczyć przewidywane roszczenia z tytułu wydatków, utwórz następującą miarę:
=(yearend(today(1))-today(1))*avg_daily_claim
Ustaw Formatowanie liczb miary na Waluta.
Tabela wynikowa
employee_id
employee_name
=(yearend(today(1))-today(1))*avg_daily_claim
182
Mark
$3240.00
183
Deryck
$2700.00
184
Dexter
$2700.00
185
Sydney
$5832.00
186
Agatha
$3888.00
Używając dzisiejszej daty jako jedynego argumentu, funkcja yearend() zwraca datę końcową bieżącego roku. Następnie, odejmując dzisiejszą datę od daty zakończenia roku, wyrażenie zwraca liczbę dni pozostałych w tym roku.
Wartość ta jest następnie mnożona przez średnie dzienne roszczenie z tytułu wydatków przez każdego pracownika, aby obliczyć szacunkową wartość roszczeń, które każdy pracownik złoży w pozostałej części roku.
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ć!