In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
Die Funktion inyeartodate() segmentiert einen bestimmten Teil des Jahres, wobei das base_date das späteste zulässige Datum für das Jahressegment definiert. Die Funktion wertet dann aus, ob ein Datumsfeld oder Wert in dieses Segment fällt und gibt ein boolesches Ergebnis zurück.
Argumente
Argument
Beschreibung
timestamp
Das Datum, das mit base_date verglichen werden soll.
base_date
Datum, das für die Interpretation des Jahres verwendet wird.
period_no
Mit period_no können Sie den Beginn des Jahres festlegen.period_no ist eine ganze Zahl, wobei 0 für das Jahr steht, das base_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.
Verwendung
Die Funktion inyeartodate() 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 ein ausgewertetes Datum in das Jahr bis einschließlich zum betreffenden Datum fällt.
Beispielsweise kann die Funktion inyeartodate() verwendet werden, um alle in einem Jahr bis zu einem bestimmten Datum gefertigten Geräte zu identifizieren.
In diesen Beispielen wird das Datumsformat MM/TT/JJJJ verwendet. Das Datumsformat wird im Befehl SET DateFormat oben in Ihrem Datenladeskript angegeben. Ändern Sie das Format in den Beispielen nach Bedarf.
Funktionsbeispiele
Beispiel
Ergebnis
inyeartodate ('01/25/2013', '02/01/2013', 0)
Gibt TRUE zurück.
inyeartodate ('01/25/2012', '01/01/2013', 0)
Gibt FALSE zurück.
inyeartodate ('01/25/2012', '02/01/2013', -1)
Gibt TRUE zurück.
inyeartodate ('11/25/2012', '01/31/2013', 0, 4)
Liefert TRUE. Der Wert von timestamp fällt in das Geschäftsjahr, das im vierten Monat beginnt, und vor den Wert von base_date.
inyeartodate ('3/31/2013', '01/31/2013', 0, 4 )
Liefert FALSE. Im Vergleich zum vorherigen Beispiel, liegt der Wert von timestamp noch im Geschäftsjahr, aber nach dem Wert von base_date und deshalb außerhalb des Teils des Jahres.
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
in_year_to_date
Ergebnistabelle
date
in_year_to_date
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
-1
02/03/2021
-1
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Das Feld „in_year_to_date“ wird im vorangehenden load-Befehl mithilfe der Funktion inyeartodate() erstellt. Das erste angegebene Argument identifiziert, welches Feld ausgewertet wird.
Das zweite Argument ist ein hardcodiertes Datum für den 26. Juli 2021. Dies ist das base_date, das die Endbegrenzung des Jahressegments identifiziert. Eine period_no von 0 ist das abschließende Argument, was bedeutet, dass die Funktion keine Jahre vor oder nach dem segmentierten Jahr vergleicht.
Jede Transaktion, die zwischen dem 1. Januar und 26. Juli stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Transaktionen vor 2021 und nach dem 26. Juli 2021 geben FALSE zurück.
Beispiel 2 – period_no
Ü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.
Die Erstellung eines Felds previous_year_to_date, das bestimmt, welche Transaktionen ein ganzes Jahr vor dem Jahressegment stattfanden, das am 26. Juli 2021 endet.
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
previous_year_to_date
Ergebnistabelle
date
previous_year_to_date
01/13/2020
-1
02/26/2020
-1
03/27/2020
-1
04/16/2020
-1
05/21/2020
-1
06/14/2020
-1
08/07/2020
0
09/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
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Ein period_no-Wert von -1 gibt an, dass die Funktion inyeartodate () das Eingabequartalssegment mit dem vorherigen Jahr vergleicht. Mit dem Eingabedatum 26. Juli 2021 wurde das Segment vom 1. Januar 2021 bis 26. Juli 2021 zuerst als „Jahr bis dato“ identifiziert. Die period_no verschiebt dann dieses Segment um ein volles Jahr zurück, sodass die Datumsgrenzen der 1. Januar bis zum 26. Juli 2020 werden.
Daher gibt jede Transaktion, die zwischen dem 1. Januar und dem 26. Juli 2020 stattfindet, ein boolesches Ergebnis von TRUE zurück.
Beispiel 3 – first_month_of_year
Ü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.
Die Erstellung eines Felds in_year_to_date, das bestimmt, welche Transaktionen im gleichen Jahr bis zum 26. Juli 2021 stattfanden.
In diesem Beispiel wird März als erster Monat des Geschäftsjahrs 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
in_year_to_date
Ergebnistabelle
date
in_year_to_date
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
0
02/03/2021
0
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Indem 3 als das Argument first_month_of_year in der Funktion inyeartodate() verwendet wird, beginnt die Funktion das Jahr am 1. März. Das base_date vom 26. Juli 2021 legt dann das Enddatum für dieses Jahressegment fest.
Daher gibt jede Transaktion, die zwischen dem 1. März und dem 26. Juli 2021 stattfand, ein boolesches Ergebnis von TRUE zurück, während Transaktionen mit Datum außerhalb dieser Grenzen einen Wert von FALSE zurückgeben.
Beispiel 4 – 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 gleichen Jahr bis zum 26. Juli 2021 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.
Erstellen Sie die folgende Kennzahl:
=inyeartodate(date,'07/26/2021', 0)
Ergebnistabelle
date
=inyeartodate(date,'07/26/2021', 0)
01/13/2020
0
02/26/2020
0
03/27/2020
0
04/16/2020
0
05/21/2020
0
06/14/2020
0
08/07/2020
0
09/05/2020
0
01/22/2021
-1
02/03/2021
-1
03/17/2021
-1
04/23/2021
-1
05/04/2021
-1
06/30/2021
-1
07/26/2021
-1
07/27/2021
0
06/06/2022
0
07/18/2022
0
11/14/2022
0
12/12/2022
0
Die Kennzahl in_year_to_date wird im Diagrammobjekt anhand der Funktion inyeartodate() erstellt. Das erste angegebene Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hardcodiertes Datum für den 26. Juli 2021. Dies ist das base_date, das die Endbegrenzung des Vergleichsjahressegments identifiziert. Eine period_no von 0 ist das abschließende Argument, was bedeutet, dass die Funktion keine Jahre vor oder nach dem segmentierten Jahr vergleicht.
Jede Transaktion, die zwischen dem 1. Januar und dem 26. Juli 2021 stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Transaktionen mit Datum vor 2021 und nach dem 26. Juli 2021 geben FALSE zurück.
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, der in eine Tabelle namens Products geladen wird.
Informationen bezüglich Produkt-ID, Produkttyp, Herstellungsdatum und Selbstkosten.
Der Endbenutzer möchte ein Diagrammobjekt, das nach Produkttyp die Kosten der im Jahr 2021 bis zum 26. Juli gefertigten Produkte anzeigt.
Die Funktion inyeartodate() gibt einen booleschen Wert zurück, wenn sie das Herstellungsdatum der einzelnen Produkte auswertet. Für alle 2021 vor dem 27. Juli hergestellten Produkte gibt die Funktion inyeartodate() einen booleschen Wert von TRUE zurück und summiert cost_price.
Produkt D ist das einzige Produkt, das auch nach dem 26. Juli 2021 hergestellt wurde. Der Eintrag mit product_ID 8203 wurde am 27. Dezember gefertigt, und die Kosten betrugen $25.12. Daher wurden diese Kosten nicht in den Gesamtbetrag für Produkt D im Diagrammobjekt eingeschlossen.
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!