Diese Funktion liefert einen Zeitstempel, der dem Beginn des ersten Jahres mit date entspricht. Das Ergebnis wird entsprechend dem im Skript definierten DateFormat formatiert.
Die Funktion yearstart() legt also fest, in welches Jahr das Datum fällt. Sie gibt dann einen Zeitstempel im Datumsformat für die erste 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 yearstart() verwenden.
Verwendung
Die Funktion yearstart() wird als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Jahres verwendet werden soll, der bisher verstrichen ist. Beispiel: Sie möchten die Zinsen berechnen, die in einem Jahr bis dato aufgelaufen sind.
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.
Die folgenden Monate können im first_month_of_year argument verwendet werden:
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
yearstart('10/19/2001')
Gibt 01/01/2001 00:00:00 zurück.
yearstart('10/19/2001',-1)
Gibt 01/01/2000 00:00:00 zurück.
yearstart('10/19/2001',0,4)
Gibt 04/01/2001 00:00:00 zurück.
Beispiel 1 – einfaches Beispiel
Ü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 yearstart(), die als Feld year_start festgelegt ist.
Funktion Timestamp(), die als Feld year_start_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_start
year_start_timestamp
Ergebnistabelle
id
date
year_start
year_start_timestamp
8188
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8189
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8190
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8191
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8192
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8193
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8194
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8195
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
8196
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8201
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8202
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8203
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8204
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8205
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8206
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8207
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
Das Feld „year_start“ wird in der vorangehenden load-Anweisung erstellt, indem die Funktion yearstart() verwendet und das Datumsfeld als Argument der Funktion übergeben wird.
Die Funktion yearstart() identifiziert zuerst, in welches Jahr der Datumswert fällt, und gibt einen Zeitstempel für die erste Millisekunde dieses Jahres zurück.
Transaktion 8199 fand am 23. April 2021 statt. Die Funktion yearstart() gibt die erste Millisekunde dieses Jahres zurück, also den 1. Januar um 12:00:00 AM.
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_start“ zu erstellen, das den Startdatumsstempel 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_start
previous_ year_start_timestamp
Ergebnistabelle
id
date
previous_year_start
previous_year_start_timestamp
8188
01/13/2020
01/01/2019
1/1/2019 12:00:00 AM
8189
02/26/2020
01/01/2019
1/1/2019 12:00:00 AM
8190
03/27/2020
01/01/2019
1/1/2019 12:00:00 AM
8191
04/16/2020
01/01/2019
1/1/2019 12:00:00 AM
8192
05/21/2020
01/01/2019
1/1/2019 12:00:00 AM
8193
08/14/2020
01/01/2019
1/1/2019 12:00:00 AM
8194
10/07/2020
01/01/2019
1/1/2019 12:00:00 AM
8195
12/05/2020
01/01/2019
1/1/2019 12:00:00 AM
8196
01/22/2021
01/01/2020
1/1/2020 12:00:00 AM
8197
02/03/2021
01/01/2020
1/1/2020 12:00:00 AM
8198
03/17/2021
01/01/2020
1/1/2020 12:00:00 AM
8199
04/23/2021
01/01/2020
1/1/2020 12:00:00 AM
8200
05/04/2021
01/01/2020
1/1/2020 12:00:00 AM
8201
06/30/2021
01/01/2020
1/1/2020 12:00:00 AM
8202
07/26/2021
01/01/2020
1/1/2020 12:00:00 AM
8203
12/27/2021
01/01/2020
1/1/2020 12:00:00 AM
8204
06/06/2022
01/01/2021
1/1/2021 12:00:00 AM
8205
07/18/2022
01/01/2021
1/1/2021 12:00:00 AM
8206
11/14/2022
01/01/2021
1/1/2021 12:00:00 AM
8207
12/12/2022
01/01/2021
1/1/2021 12:00:00 AM
Da in dieser Instanz eine period_no von -1 als Versatzargument in der Funktion yearstart() verwendet wird, identifiziert die Funktion zuerst das Jahr, in dem die Transaktionen stattfinden. Dann geht sie ein Jahr zurück und identifiziert die erste Millisekunde dieses Jahres.
Transaktion 8199 fand am 23. April 2021 statt. Die Funktion yearstart() gibt die erste Millisekunde des vorherigen Jahres, also den 1. Januar 2020 um 12:00:00 AM, für das Feld „previous_year_start“ 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_start
year_start_timestamp
Ergebnistabelle
id
date
year_start
year_start_timestamp
8188
01/13/2020
04/01/2019
4/1/2019 12:00:00 AM
8189
02/26/2020
04/01/2019
4/1/2019 12:00:00 AM
8190
03/27/2020
04/01/2019
4/1/2019 12:00:00 AM
8191
04/16/2020
04/01/2020
4/1/2020 12:00:00 AM
8192
05/21/2020
04/01/2020
4/1/2020 12:00:00 AM
8193
08/14/2020
04/01/2020
4/1/2020 12:00:00 AM
8194
10/07/2020
04/01/2020
4/1/2020 12:00:00 AM
8195
12/05/2020
04/01/2020
4/1/2020 12:00:00 AM
8196
01/22/2021
04/01/2020
4/1/2020 12:00:00 AM
8197
02/03/2021
04/01/2020
4/1/2020 12:00:00 AM
8198
03/17/2021
04/01/2020
4/1/2020 12:00:00 AM
8199
04/23/2021
04/01/2021
4/1/2021 12:00:00 AM
8200
05/04/2021
04/01/2021
4/1/2021 12:00:00 AM
8201
06/30/2021
04/01/2021
4/1/2021 12:00:00 AM
8202
07/26/2021
04/01/2021
4/1/2021 12:00:00 AM
8203
12/27/2021
04/01/2021
4/1/2021 12:00:00 AM
8204
06/06/2022
04/01/2022
4/1/2022 12:00:00 AM
8205
07/18/2022
04/01/2022
4/1/2022 12:00:00 AM
8206
11/14/2022
04/01/2022
4/1/2022 12:00:00 AM
8207
12/12/2022
04/01/2022
4/1/2022 12:00:00 AM
Da in diesem Fall das Argument first_month_of_year von 4 in der Funktion yearstart() 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 fand am 23. April 2021 statt. Da die Funktion yearstart() den Beginn des Jahres auf den 1. April festlegt, gibt sie den Wert „year_start“ 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 Startdatumszeitstempel 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:
=yearstart(date)
=timestamp(yearstart(date))
Ergebnistabelle
id
date
=yearstart(date)
=timestamp(yearstart(date))
8188
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8189
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8190
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8191
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
8192
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8193
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8194
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8195
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8196
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8201
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8202
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8203
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8204
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8205
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8206
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8207
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
Die Kennzahl „start_of_year“ wird im Diagrammobjekt erstellt, indem die Funktion yearstart() verwendet und das Feld als Argument der Funktion übergeben wird.
Die Funktion yearstart() identifiziert zuerst, in welches Jahr der Datumswert fällt, und gibt einen Zeitstempel für die erste Millisekunde dieses Jahres zurück.
Transaktion 8199 fand am 23. April 2021 statt. Die Funktion yearstart() gibt die erste Millisekunde dieses Jahres zurück, also den 1. Januar um 12:00:00 AM.
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 „Loans“ geladen. Die Tabelle enthält die folgenden Felder:
Darlehens-IDs.
Den Saldo zu Beginn des Jahres.
Die einfache Zinsrate, die für jedes Darlehen pro Jahr berechnet wird.
Der Endbenutzer möchte ein Diagrammobjekt, das nach Darlehens-ID die aktuellen Zinsen anzeigt, die für jedes Darlehen im Jahr bis dato aufgelaufen sind.
Die Funktion yearstart() verwendet das aktuelle Datum als einziges Argument und gibt das Startdatum des aktuellen Jahres zurück. Die Formel zieht dieses Ergebnis vom aktuellen Datum ab und gibt die Anzahl der Tage zurück, die bisher im Jahr verstrichen sind.
Dieser Wert wird dann mit dem Zinssatz multipliziert und durch 365 geteilt, um den effektiven Zinssatz für den Zeitraum zurückzugeben. Der effektive Zinssatz für den Zeitraum wird dann mit dem Anfangssaldo des Darlehens multipliziert, was die Zinsen ergibt, die bislang in diesem Jahr aufgelaufen sind.
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!