Diese Funktion liefert den Zeitstempel der letzten Millisekunde des letzten Tages des Jahres, in dem date liegt. Das Ergebnis wird entsprechend dem im Skript definierten DateFormat formatiert.
Die Funktion yearend() legt also fest, in welches Jahr das Datum fällt. Sie gibt dann einen Zeitstempel im Datumsformat für die letzte Millisekunde dieses Jahres zurück. Der erste Monat des Jahres ist standardmäßig der Januar. Sie können aber ändern, welcher Monat als erster festgelegt wird, indem Sie das Argument first_month_of_year in der Funktion yearend() verwenden.
Informationshinweis Die Funktion yearend() berücksichtigt die Systemvariable FirstMonthOfYear nicht. Das Jahr beginnt am 1. Januar, es sei denn, das Argument first_month_of_year wird verwendet, um dies zu ändern.
Verwendung
Die Funktion yearend() wird als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Jahres verwendet werden soll, der noch nicht eingetreten ist. Beispiel: Sie möchten die gesamten, während des Jahres noch nicht fällig gewordenen Zinsen berechnen.
Rückgabe Datentyp: dual
Argumente
Argument
Beschreibung
date
Datum oder Zeitstempel für die Evaluierung.
period_no
period_no ist eine ganze Zahl, wobei 0 für das Jahr steht, das date enthält. Negative Werte von period_no stehen für vorangehende, positive Werte für nachfolgende Jahre.
first_month_of_year
Wenn Sie mit abweichenden Geschäftsjahren arbeiten möchten, definieren Sie mit einer Zahl zwischen 2 und 12 für first_month_of_year einen anderen Startmonat.
Sie können die folgenden Werte verwenden, um den ersten Monat des Jahres im Argument first_month_of_year festzulegen.
Werte für first_month_of_year
Monat
Wert
Februar
2
März
3
April
4
Mai
5
Juni
6
Juli
7
August
8
September
9
Oktober
10
November
11
Dezember
12
Regionaleinstellungen
Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung SET DateFormat in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern.
Die standardmäßigen regionalen Einstellungen in Apps basieren auf den regionalen Systemeinstellungen der Computer oder Server, auf denen Qlik Sense installiert ist. Wenn der Qlik Sense-Server, auf den Sie zugreifen, auf Schweden festgelegt ist, verwendet der Dateneditor die schwedischen regionalen Einstellungen für Datums-, Uhrzeit- und Währungsangaben. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Sense angezeigt wird. Qlik Sense wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.
Funktionsbeispiele
Beispiel
Ergebnis
yearend('10/19/2001')
Liefert 12/31/2001 23:59:59.
yearend('10/19/2001', -1)
Liefert 12/31/2000 23:59:59.
yearend('10/19/2001', 0, 4)
Liefert 03/31/2002 23:59:59.
Beispiel 1 – keine zusätzlichen Argumente
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz, der eine Reihe von Transaktionen zwischen 2020 und 2022 enthält, wird in eine Tabelle namens „Transactions“ geladen.
Das Datumsfeld wurde im Format DateFormat der Systemvariablen (MM/DD/YYYY) bereitgestellt.
Ein vorangehender load-Befehl, der Folgendes enthält:
Funktion yearend(), die als Feld year_end festgelegt ist.
Funktion Timestamp(), die als Feld year_end_timestamp festgelegt ist.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
id
date
year_end
year_end_timestamp
Ergebnistabelle
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
Das Feld „year_end“ wird in der vorangehenden load-Anweisung erstellt, indem die Funktion yearend() verwendet und das Datumsfeld als Argument der Funktion übergeben wird.
Die Funktion yearend() identifiziert zuerst, in welches Jahr der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieses Jahres zurück.
Transaktion 8199 fand am 23. April 2021 statt. Die Funktion yearend() gibt die letzte Millisekunde dieses Jahres zurück, also den 31. Dezember um 11:59:59 PM.
Beispiel 2 – period_no
Übersicht
Es werden derselbe Datenatz und dasselbe Szenario wie im ersten Beispiel verwendet.
In diesem Beispiel besteht aber die Aufgabe darin, ein Feld „previous_year_end“ zu erstellen, das den Enddatumsstempel des Jahres vor dem Jahr zurückgibt, in dem die Transaktion stattfand.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
id
date
previous_year_end
previous_ year_end_timestamp
Ergebnistabelle
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
Da eine period_no von -1 als Versatzargument in der Funktion yearend() verwendet wurde, identifiziert die Funktion zuerst das Jahr, in dem die Transaktionen stattfinden. Dann geht sie ein Jahr zurück und identifiziert die letzte Millisekunde dieses Jahres.
Transaktion 8199 findet am 23. April 2021 statt. Die Funktion yearend() gibt die letzte Millisekunde des vorherigen Jahres, also den 31. Dezember 2020 um 11:59:59 PM. für das Feld „previous_year_end“ zurück.
Beispiel 3 – first_month_of_year
Übersicht
Es werden derselbe Datenatz und dasselbe Szenario wie im ersten Beispiel verwendet.
In diesem Beispiel soll aber laut der Unternehmensrichtlinie das Jahr am 1. April beginnen.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
id
date
year_end
year_end_timestamp
Ergebnistabelle
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
Da das Argument first_month_of_year von 4 in der Funktion yearend() verwendet wird, legt sie den ersten Tag des Jahres auf den 1. April und den letzten Tag des Jahres auf den 31. März fest.
Transaktion 8199 findet am 23. April 2021 statt. Da die Funktion yearend() den Beginn des Jahres auf den 1. April festlegt, gibt sie den 31. März 2022 als den Wert „year_end“ für die Transaktion zurück.
Beispiel 4 – Diagrammobjektbeispiel
Übersicht
Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.
In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Die Berechnung, die den Enddatumzeitstempel für das Jahr zurückgibt, in dem eine Transaktion stattfand, wird als Kennzahl in einem Diagrammobjekt der Anwendung erstellt.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
id
date
Um zu berechnen, in welchem Jahr eine Transaktion stattfand, erstellen Sie die folgenden Kennzahlen:
=yearend(date)
=timestamp(yearend(date))
Ergebnistabelle
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
Die Kennzahl „end_of_year“ wird im Diagrammobjekt erstellt, indem die Funktion yearend() verwendet und das Feld als Argument der Funktion übergeben wird.
Die Funktion yearend() identifiziert zuerst, in welches Jahr der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieses Jahres zurück.
Transaktion 8199 findet am 23. April 2021 statt. Die Funktion yearend() gibt die letzte Millisekunde dieses Jahres zurück, also den 31. Dezember um 11:59:59 PM.
Beispiel 5 – Szenario
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz wird in eine Tabelle namens „Employee_Expenses“ geladen. Die Tabelle enthält die folgenden Felder:
Mitarbeiter-IDs
Mitarbeitername
Durchschnittliche tägliche Spesenanträge pro Mitarbeiter
Der Endbenutzer möchte ein Diagrammobjekt, das nach Mitarbeiter-ID und Mitarbeitername die geschätzten Spesenanträge anzeigt, die für das restliche Jahr noch anfallen. Das Geschäftsjahr beginnt im Januar.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
employee_id
employee_name
Erstellen Sie die folgende Kennzahl, um die voraussichtlichen Spesenanträge zu berechnen:
=(yearend(today(1))-today(1))*avg_daily_claim
Legen Sie die Zahlenformatierung der Kennzahl auf Währung fest.
Ergebnistabelle
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
Indem das aktuelle Datum als einziges Argument verwendet wird, gibt die Funktion yearend() das Enddatum des aktuellen Jahres zurück. Dann zieht die Formel das aktuelle Datum vom Jahresenddatum ab und gibt die Anzahl der in diesem Jahr verbleibenden Tage zurück.
Dieser Wert wird dann mit den durchschnittlichen täglichen Spesenanträgen der einzelnen Mitarbeitern multipliziert, um den geschätzten Spesenbetrag pro Mitarbeiter für das verbleibende Jahr zu berechnen.
Hat diese Seite Ihnen geholfen?
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!