Diese Funktion findet den Eingabe-Zeitstempel innerhalb des Jahres mit dem Datum, an welchem das Skript zuletzt aufgerufen wurde, und gibt True zurück, wenn der Zeitstempel gefunden wurde bzw. False, wenn er nicht gefunden wurde.
In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
Wird kein weiterer Parameter verwendet, ist das Jahr bis dato das laufende Kalenderjahr, vom 1. Januar bis einschließlich des Tags der letzten Ausführung des Skripts.
In anderen Worten wird die Funktion yeartodate(), wenn sie ohne zusätzliche Parameter ausgelöst wird, dazu verwendet, einen Zeitstempel auszuwerten und ein boolesches Ergebnis basierend darauf zurückzugeben, ob das Datum innerhalb des Kalenderjahres bis einschließlich dem Datum liegt, an dem der Ladevorgang stattfand.
Es ist jedoch auch möglich, das Startdatum des Jahres zu überschreiben, indem das Argument firstmonth verwendet wird, und es können Vergleiche mit dem davor oder danach liegenden Jahr anhand des Arguments yearoffset vorgenommen werden.
Im Fall historischer Datensätze gibt die Funktion yeartodate() einen festzulegenden Parameter todaydate an, mit dem stattdessen der Zeitstempel mit dem Kalenderjahr bis einschließlich dem Datum verglichen wird, das im Argument todaydate angegeben wird.
Argumente
Argument
Beschreibung
timestamp
Der zu beurteilende Zeitstempel, beispielsweise „10/12/2012“.
yearoffset
Durch das Festlegen von yearoffset, liefert yeartodate für denselben Zeitraum in einem anderen Jahr True. Ein negativer Wert von yearoffset verweist auf ein vorheriges Jahr, ein positiver Startwert auf ein Jahr in der Zukunft. Das aktuellste Jahr bis dato wird durch die Festlegung von yearoffset = -1 ausgewählt. Ist nichts definiert, wird 0 angenommen.
firstmonth
Durch Angabe eines Werts für firstmonth zwischen 1 und 12 (fehlt die Angabe, wird 1 angenommen) wird der Jahresbeginn auf den ersten Tag eines beliebigen Monats festgelegt. Wenn Sie beispielsweise mit einem Geschäftsjahr arbeiten möchten, das am 1. Mai beginnt, geben Sie firstmonth = 5 an. Ein Wert von 1 gibt ein Geschäftsjahr an, das am 1. Januar beginnt, und ein Wert von 12 gibt ein Geschäftsjahr an, das am 1. Dezember beginnt.
todaydate
Durch Angabe einer Zahl für todaydate kann das Ende der Zeitperiode festgelegt werden. Fehlt dieser Parameter, wird stattdessen der Zeitstempel der letzten Ausführung des Skripts verwendet.
Verwendung
Die Funktion yeartodate() gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einem IF-Ausdruck verwendet. Damit wird eine Aggregierung oder Berechnung zurückgegeben, abhängig davon, ob das ausgewertete Datum in das Jahr bis einschließlich zum letzten Ladedatum der Anwendung fällt.
Beispielsweise kann die Funktion „YearToDate()“ verwendet werden, um alle bisher im laufenden Jahr gefertigten Geräte zu identifizieren.
In den folgenden Beispielen wird als letzte Ladezeit 11/18/2011 angenommen.
Funktionsbeispiele
Beispiel
Ergebnis
yeartodate( '11/18/2010')
gibt False zurück
yeartodate( '02/01/2011')
gibt True zurück
yeartodate( '11/18/2011')
gibt True zurück
yeartodate( '11/19/2011')
gibt False zurück
yeartodate( '11/19/2011', 0, 1, '12/31/2011')
gibt True zurück
yeartodate( '11/18/2010', -1)
gibt True zurück
yeartodate( '11/18/2011', -1)
gibt False zurück
yeartodate( '04/30/2011', 0, 5)
gibt False zurück
yeartodate( '05/01/2011', 0, 5)
gibt True zurück
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. Weitere Informationen finden Sie unter Ändern von regionalen Einstellungen für Apps und Skripte.
Regionale Standardeinstellungen in Apps basieren auf dem Benutzerprofil. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Cloud angezeigt wird. Qlik Cloud wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
year_to_date
Ergebnistabelle
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
Das Feld year_to_date wird im vorangehenden load-Befehl erstellt, indem die Funktion yeartodate() verwendet und das Feld date als Argument der Funktion übergeben wird.
Da keine weiteren Parameter an die Funktion übergeben werden, identifiziert die Funktion yeartodate() zunächst das Ladedatum und somit die Grenzen für das aktuelle Kalenderjahr (das am 1. Januar beginnt), das ein boolesches Ergebnis von TRUE zurückgeben wird.
Daher gibt jede Transaktion, die zwischen dem 1. Januar und dem 26. April, dem Ladedatum, stattfindet, ein boolesches Ergebnis von TRUE zurück Jede Transaktion, die vor Beginn des Jahres 2022 stattfindet, gibt ein boolesches Ergebnis von FALSE zurück.
Beispiel 2 – yearoffset
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld two_years_prior erstellt, das bestimmt, welche Transaktionen zwei volle Jahre vor dem Kalenderjahr bis dato stattfanden.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
two_years_prior
Ergebnistabelle
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
Da -2 als das Argument yearoffset in der Funktion yeartodate() verwendet wird, verschiebt die Funktion die Grenzen des Vergleichs-Kalenderjahressegments um volle zwei Jahre. Anfänglich entspricht das Jahressegment dem 1. Januar bis 26. April 2022. Das Argument yearoffset versetzt dieses Segment dann um zwei Jahre zurück. Die Datumsgrenzen fallen somit auf den 1. Januar bis 26. April 2020.
Daher gibt jede Transaktion, die zwischen dem 1. Januar und dem 26. April 2020 stattfindet, ein boolesches Ergebnis von TRUE zurück. Alle Transaktionen vor oder nach diesem Segment geben FALSE zurück.
Beispiel 3 – firstmonth
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld year_to_date erstellt, das bestimmt, welche Transaktionen im Kalenderjahr bis zum Datum des letzten Ladevorgangs stattfanden.
In diesem Beispiel wird der Start des Geschäftsjahres auf den 1. Juli festgelegt.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
year_to_date
Ergebnistabelle
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
Da in diesem Fall das Argument firstmonth von 7 in der Funktion yeartodate() verwendet wird, legt sie den ersten Tag des Jahres auf den 1. Juli und den letzten Tag des Jahres auf den 30. Juni fest.
Daher gibt jede Transaktion, die zwischen dem 1. Juli 2021 und dem 26. April 2022 stattfindet, ein boolesches Ergebnis von TRUE zurück. Jede Transaktion, die vor dem 1. Juli 2021 stattfindet, gibt ein boolesches Ergebnis von FALSE zurück.
Beispiel 4 – todaydate
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld year_to_date erstellt, das bestimmt, welche Transaktionen im Kalenderjahr bis zum Datum des letzten Ladevorgangs stattfanden.
In diesem Beispiel müssen wir jedoch alle Transaktionen identifizieren, die im Kalenderjahr bis einschließlich 1. März 2022 stattgefunden haben.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
year_to_date
Ergebnistabelle
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
Da in diesem Fall das Argument todaydate von 03/01/2022 in der Funktion yeartodate() verwendet wird, wird die Endgrenze des Vergleichsjahressegments auf den 1. März 2022 festgelegt. Der Parameter firstmonth (zwischen 1 und 12) muss unbedingt angegeben werden; andernfalls gibt die Funktion Nullwerte zurück.
Daher gibt der Parameter todaydate für jede Transaktion, die zwischen dem 1. Januar 2022 und dem 1. März 2022 stattfindet, ein boolesches Ergebnis von TRUE zurück. Jede Transaktion, die vor dem 1. Januar 2022 oder nach dem 1. März 2022 stattfindet, gibt ein boolesches Ergebnis von FALSE zurück.
Beispiel 5 – Diagrammobjektbeispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript verwendet den gleichen Datensatz und das gleiche Szenario wie das erste Beispiel.
In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Die Berechnung, die bestimmt, ob Transaktionen im Kalenderjahr bis einschließlich zum Datum des letzten Ladevorgangs stattfanden, 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 dieses Feld als Dimension hinzu: date.
Fügen Sie die folgende Kennzahl hinzu:
=yeartodate(date)
Ergebnistabelle
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
Die Kennzahl year_to_date wird im Diagrammobjekt erstellt, indem die Funktion yeartodate() verwendet und das Feld date als Argument der Funktion übergeben wird.
Da keine weiteren Parameter an die Funktion übergeben werden, identifiziert die Funktion yeartodate() zunächst das Ladedatum und somit die Grenzen für das aktuelle Kalenderjahr (das am 1. Januar beginnt), das ein boolesches Ergebnis von TRUE zurückgeben wird.
Jede Transaktion, die zwischen dem 1. Januar und dem 26. April, dem Ladedatum, stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Jede Transaktion, die vor Beginn des Jahres 2022 stattfindet, gibt ein boolesches Ergebnis von FALSE zurück.
Beispiel 6 – Szenario
Ü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.
Datumsfeld, das im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt wird
Der Endbenutzer möchte ein KPI-Objekt, das den Gesamtumsatz für den entsprechenden Zeitraum im Jahr 2021 wie im aktuellen Jahr bis dato als letzte Ladezeit darstellt.
Erstellen Sie die folgende Aggregierungskennzahl, um den Gesamtumsatz zu berechnen:
=sum(if(yeartodate(date,-1),amount,0))
Legen Sie das Zahlenformat der Kennzahl auf Währung fest.
Die Funktion yeartodate() gibt einen booleschen Wert zurück, wenn sie die Datumswerte für jede Transaktions-ID auswertet. Da der Ladevorgang am 16. Juni 2022 stattfand, segmentiert die Funktion yeartodate den Jahreszeitraum auf den Zeitraum zwischen dem 01/01/2022 und dem 06/16/2022. Da aber ein Wert für period_no von -1 in der Funktion verwendet wurde, werden diese Grenzen dann auf das vorherige Jahr verschoben. Somit gibt die Funktion yeartodate() für jede Transaktion, die zwischen dem 01/01/2021 und dem 06/16/2021 stattgefunden hat, einen booleschen Wert von TRUE zurück und summiert den Betrag.
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!