Diese Funktion liefert das Jahr, zu dem die Kalenderwoche gemäß ISO 8601 zählt. Die Kalenderwochen bewegen sich zwischen 1 und circa 52.
Syntax:
weekyear(expression)
Rückgabe Datentyp: ganze Zahl
Die Funktion weekyear() bestimmt, in welche Woche eines Jahres das Datum fällt. Dann gibt sie das Jahr zurück, das dieser Wochennummer entspricht.
Standardmäßig verwenden Qlik-Apps gestückelte Wochen (von der Systemvariablen BrokenWeeks definiert), und Woche Nr. 1 beginnt am 1. Januar und das Jahr endet nach Woche 52. Daher gibt die Funktion weekyear() immer den gleichen Wert wie die Funktion week() zurück, wenn die Anwendung gestückelte Wochen verwendet.
Wenn jedoch die Systemvariable BrokenWeeks auf nicht gestückelte Wochen festgelegt ist, darf Woche 1 nur eine bestimmte Anzahl Tage im Januar umfassen, basierend auf dem Wert, der in der Systemvariablen ReferenceDay angegeben ist.
Wenn beispielsweise ein Wert für ReferenceDay von 4 verwendet wird, muss Woche 1 mindestens vier Tage im Januar enthalten. Woche 1 kann Datumswerte im Dezember des Vorjahres enthalten, oder die letzte Wochennummer eines Jahres kann Datumswerte im Januar des Folgejahres enthalten. In diesen Situationen gibt die Funktion weekyear() einen anderen Wert als die Funktion year() zurück.
Verwendung
Die Funktion weekyear() ist nützlich, wenn Sie Aggregierungen nach Jahren vergleichen möchten. Das ist beispielsweise der Fall, wenn Sie den Gesamtumsatz von Produkten nach Jahr anzeigen möchten. Die Funktion weekyear() wird anstelle von year() gewählt, wenn der Benutzer die Einheitlichkeit mit der Systemvariablen BrokenWeeks in der App beibehalten möchte.
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
weekyear('12/30/1996')
Gibt 1997 zurück, weil Woche 1 von 1997 am 12/30/1996 beginnt
weekyear('01/02/1997')
Gibt 1997 zurück
weekyear('12/28/1997')
Gibt 1997 zurück
weekyear('12/30/1997')
Gibt 1998 zurück, weil die Woche 1 von 1998 am 12/29/1997 beginnt
weekyear('01/02/1999')
Gibt 1998, weil die Woche 53 von 1998 am 01/03/1999 endet
Gibt das Jahr als Ganzzahl zurück, wenn die Formel entsprechend der Standardzahleninterpretation als Datum interpretiert wird.
Beispiel 1 – Gestückelte Wochen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit einer Reihe von Transaktionen für die letzte Woche in 2020 und die erste Woche in 2021, der in eine Tabelle namens „Transactions“ geladen wird
Variable BrokenWeeks, die auf 1 festgelegt ist
Eine vorangehende load-Anweisung, die Folgendes enthält:
Die Funktion weekyear(), die als das Feld „week_year“ festgelegt ist, das das Jahr zurückgibt, in dem die Transaktion stattfand.
Die Funktion week(), die als das Feld „week“ festgelegt ist, das die Wochennummer für jedes Transaktionsdatum zeigt.
Ladeskript
SET BrokenWeeks=1;
Transactions:
Load
*,
week(date) as week,
weekyear(date) as week_year
;
Load
*
Inline
[
id,date,amount
8176,12/28/2020,19.42
8177,12/29/2020,23.80
8178,12/30/2020,82.06
8179,12/31/2020,40.56
8180,01/01/2021,37.23
8181,01/02/2021,17.17
8182,01/03/2021,88.27
8183,01/04/2021,57.42
8184,01/05/2021,67.42
8185,01/06/2021,23.80
8186,01/07/2021,82.06
];
Ergebnisse
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
week
week_year
Ergebnistabelle
id
date
week
week_year
8176
12/28/2020
53
2020
8177
12/29/2020
53
2020
8178
12/30/2020
53
2020
8179
12/31/2020
53
2020
8180
01/01/2021
1
2021
8181
01/02/2021
1
2021
8182
01/03/2021
2
2021
8183
01/04/2021
2
2021
8184
01/05/2021
2
2021
8185
01/06/2021
2
2021
8186
01/07/2021
2
2021
Das Feld „week_year“ wird in der vorangehenden load-Anweisung erstellt, indem die Funktion weekyear() verwendet und das Datumsfeld als Argument der Funktion übergeben wird.
Die Systemvariable BrokenWeeks ist auf 1 festgelegt, was bedeutet, dass die App gestückelte Wochen verwendet. Woche 1 beginnt am 1. Januar.
Transaktion 8181 findet am 2. Januar statt, der in Woche 1 liegt. Daher wird ein Wert von 2021 für das Feld „week_year“ zurückgegeben.
Beispiel 2 – Ungestückelte Wochen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit einer Reihe von Transaktionen für die letzte Woche in 2020 und die erste Woche in 2021, der in eine Tabelle namens „Transactions“ geladen wird
Variable BrokenWeeks, die auf 0 festgelegt ist
Eine vorangehende load-Anweisung, die Folgendes enthält:
Die Funktion weekyear(), die als das Feld „week_year“ festgelegt ist, das das Jahr zurückgibt, in dem die Transaktion stattfand.
Die Funktion week(), die als das Feld „week“ festgelegt ist, das die Wochennummer für jedes Transaktionsdatum zeigt.
In diesem Beispiel legt die Unternehmensrichtlinie aber die Verwendung von nicht gestückelten Wochen fest.
Ladeskript
SET BrokenWeeks=0;
Transactions:
Load
*,
week(date) as week,
weekyear(date) as week_year
;
Load
*
Inline
[
id,date,amount
8176,12/28/2020,19.42
8177,12/29/2020,23.80
8178,12/30/2020,82.06
8179,12/31/2020,40.56
8180,01/01/2021,37.23
8181,01/02/2021,17.17
8182,01/03/2021,88.27
8183,01/04/2021,57.42
8184,01/05/2021,67.42
8185,01/06/2021,23.80
8186,01/07/2021,82.06
];
Ergebnisse
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
week
week_year
Ergebnistabelle
id
date
week
week_year
8176
12/28/2020
53
2020
8177
12/29/2020
53
2020
8178
12/30/2020
53
2020
8179
12/31/2020
53
2020
8180
01/01/2021
53
2020
8181
01/02/2021
53
2020
8182
01/03/2021
1
2021
8183
01/04/2021
1
2021
8184
01/05/2021
1
2021
8185
01/06/2021
1
2021
8186
01/07/2021
1
2021
Die Systemvariable BrokenWeeks ist auf 0 festgelegt, was bedeutet, dass die Anwendung nicht gestückelte Wochen verwendet. Daher ist es nicht erforderlich, dass Woche 1 am 1. Januar beginnt.
Woche 53 des Jahres 2020 dauert bis zum Ende des 2. Januars 2021, und Woche 1 von 2021 beginnt am Sonntag, den 3. Januar 2021.
Transaktion 8181 findet am 2. Januar statt, der in Woche 1 liegt. Daher wird ein Wert von 2021 für das Feld „week_year“ zurückgegeben.
Beispiel 3 – 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 die Wochennummer des Jahres zurückgibt, in dem die Transaktionen stattfanden, wird als Kennzahl in einem Diagramm 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 die Woche zu berechnen, in der eine Transaktion stattfindet, erstellen Sie die folgende Kennzahl:
=week(date)
Um das Jahr, in dem eine Transaktion stattfindet, basierend auf der Wochennummer zu berechnen, erstellen Sie die folgende Kennzahl:
=weekyear(date)
Ergebnistabelle
id
date
week
week_year
8176
12/28/2020
53
2020
8177
12/29/2020
53
2020
8178
12/30/2020
53
2020
8179
12/31/2020
53
2020
8180
01/01/2021
1
2021
8181
01/02/2021
1
2021
8182
01/03/2021
2
2021
8183
01/04/2021
2
2021
8184
01/05/2021
2
2021
8185
01/06/2021
2
2021
8186
01/07/2021
2
2021
Das Feld „week_year“ wird in der vorangehenden load-Anweisung erstellt, indem die Funktion weekyear() verwendet und das Datumsfeld als Argument der Funktion übergeben wird.
Die Systemvariable BrokenWeeks ist auf 1 festgelegt, was bedeutet, dass die App gestückelte Wochen verwendet. Woche 1 beginnt am 1. Januar.
Transaktion 8181 findet am 2. Januar statt, der in Woche 1 liegt. Daher wird ein Wert von 2021 für das Feld „week_year“ zurückgegeben.
Beispiel 4 – Szenario
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit einer Reihe von Transaktionen für die letzte Woche in 2020 und die erste Woche in 2021, der in eine Tabelle namens „Transactions“ geladen wird
Variable BrokenWeeks, die auf 0 festgelegt ist Das bedeutet, das die App nicht gestückelte Wochen verwendet.
Die Variable ReferenceDay ist auf 2 festgelegt. Das bedeutet, dass das Jahr am 2. Januar beginnt und mindestens zwei Tage im Januar umfasst.
Die Variable FirstWeekDay ist auf 1 festgelegt. Damit wird der erste Tag der Woche auf einen Dienstag festgelegt.
Gemäß der Unternehmensrichtlinie werden nicht gestückelte Wochen verwendet. Der Endbenutzer möchte ein Diagramm, das den Gesamtumsatz nach Jahr darstellt. Die App verwendet nicht gestückelte Wochen, wobei Woche 1 mindestens zwei Tage im Januar enthält.
Ladeskript
SET BrokenWeeks=0;
SET ReferenceDay=2;
SET FirstWeekDay=1;
Transactions:
Load
*
Inline
[
id,date,amount
8176,12/28/2020,19.42
8177,12/29/2020,23.80
8178,12/30/2020,82.06
8179,12/31/2020,40.56
8180,01/01/2021,37.23
8181,01/02/2021,17.17
8182,01/03/2021,88.27
8183,01/04/2021,57.42
8184,01/05/2021,67.42
8185,01/06/2021,23.80
8186,01/07/2021,82.06
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle.
Um das Jahr, in dem eine Transaktion stattfindet, basierend auf der Wochennummer zu berechnen, erstellen Sie die folgende Kennzahl:
=weekyear(date)
Erstellen Sie die folgende Kennzahl, um den Gesamtumsatz zu berechnen:
sum(amount)
Legen Sie das Zahlenformat der Kennzahl auf Währung fest.
Ergebnistabelle
weekyear(date)
=sum(amount)
2020
19.42
2021
373.37
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!