Diese Funktion gibt ein Datum zurück, das sich aus dem Jahr YYYY, der Woche WW und dem Tag der Woche D berechnet.
Syntax:
MakeWeekDate(YYYY [ , WW [ , D ] ])
Rückgabe Datentyp: dual
Die Funktion makeweekdate() ist sowohl als Skript als auch als Diagrammfunktion verfügbar. Mit der Funktion wird das Datum basierend auf den an die Funktion übergebenen Parametern berechnet. Wenn der Parameter „day-of-week“ ausgelassen wird, gibt die Funktion das Datum des Montags dieser Woche zurück.
Die Funktion makeweekdate() berücksichtigt die Systemvariablen BrokenWeek, ReferenceDay oder FirstWeekDay nicht. Woche 1 beginnt mit dem ersten Montag im Januar. Beispielsweise beginnt im Jahr 2022 die Woche 1 am 3. Januar.
Argumente
Argument
Beschreibung
YYYY
Das Jahr als ganze Zahl.
WW
Die Woche als ganze Zahl.
Die Woche kann positiv oder negativ und größer als 52 sein, um Datumsangaben in verschiedenen Jahren zurückzugeben.
D
Der Wochentag als ganze Zahl.
Fehlt die Wochentagszahl, wird 0 (Montag) angenommen. Die verbleibenden Tage der Woche werden wie folgt zugewiesen: 1 für Dienstag, 2 für Mittwoch, 3 für Donnerstag, 4 für Freitag, 5 für Samstag und 6 für Sonntag.
Verwendung
Die Funktion makeweekdate() wird in der Regel im Skript für die Datengenerierung verwendet, um eine Liste von Datumsangaben zu generieren oder um Datumswerte zu konstruieren, wenn Jahr, Woche und Tag der Woche in den Eingabedaten bereitgestellt werden.
Funktionsbeispiele
Beispiel
Ergebnis
makeweekdate(2014,6,6)
gibt 02/09/2014 zurück
makeweekdate(2014,6,1)
gibt 02/04/2014 zurück
makeweekdate(2014,6)
gibt 02/03/2014 zurück (Wochentag 0 wird angenommen)
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.
Beispiel 1 – Tag eingeschlossen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit wöchentlichen Umsätzen für 2022 in einer Tabelle namens Sales.
Transaktionsdatumswerte, die in drei Feldern bereitgestellt werden: year, week und sales.
Eine vorangehende load-Anweisung, die verwendet wird, um eine Kennzahl end_of_week zu erstellen. Dabei wird die Funktion makeweekdate() verwendet, um das Datum für den Freitag dieser Woche im Format MM/TT/JJJJ zurückzugeben.
Um zu beweisen, dass das zurückgegebene Datum ein Freitag ist, ist die Formel end_of_week auch in die Funktion weekday() eingeschlossen, um den Tag der Woche zu zeigen.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
transaction_year
transaction_week
end_of_week
week_day
Ergebnistabelle
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fr
2022
02
01/14/2022
Fr
2022
03
01/21/2022
Fr
2022
04
01/28/2022
Fr
2022
05
02/04/2022
Fr
2022
06
02/11/2022
Fr
2022
07
02/18/2022
Fr
Das Feld end_of_week wird in der vorangehenden load-Anweisung mithilfe der Funktion makeweekdate() erstellt. Die Felder transaction_year und transaction_week werden über die Funktion als die Argumente für Jahr und Woche übergeben. Ein Wert von 4 wird als Argument für Tag verwendet.
Die Funktion kombiniert diese Werte dann und konvertiert sie in ein Datumsfeld. Die Ergebnisse werden im Format der Systemvariablen DateFormat zurückgegeben.
Die Funktion makeweekdate() und ihre Argumente sind auch in eine Funktion weekday() eingeschlossen, um das Feld week_day zurückzugeben. Wie in der Tabelle oben zu sehen ist, zeigt das Feld week_day, dass diese Datumswerte tatsächlich an einem Freitag liegen.
Beispiel 2 – Tag ausgeschlossen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit wöchentlichen Umsätzen für 2022 in einer Tabelle namens Sales
Transaktionsdatumswerte, die in drei Feldern bereitgestellt werden: year, week und sales.
Eine vorangehende load-Anweisung, die verwendet wird, um eine Kennzahl first_day_of_week zu erstellen; dabei wird die Funktion makeweekdate() verwendet. Damit wird das Datum für den Montag dieser Woche im Format MM/TT/JJJJ zurückgegeben.
Um zu beweisen, dass das zurückgegebene Datum ein Montag ist, ist die Formel first_day_of_week auch in die Funktion weekday() eingeschlossen, um den Tag der Woche zu zeigen.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
transaction_year
transaction_week
first_day_of_week
week_day
Ergebnistabelle
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Mo
2022
02
01/10/2022
Mo
2022
03
01/17/2022
Mo
2022
04
01/24/2022
Mo
2022
05
01/31/2022
Mo
2022
06
02/07/2022
Mo
2022
07
02/14/2022
Mo
Das Feld first_day_of_week wird in der vorangehenden load-Anweisung mithilfe der Funktion makeweekdate() erstellt. Die Parameter transaction_year und transaction_week werden als Funktionsargumente übergeben, und der Parameter für Tag wird leer gelassen.
Die Funktion kombiniert diese Werte dann und konvertiert sie in ein Datumsfeld. Die Ergebnisse werden im Format der Systemvariablen DateFormat zurückgegeben.
Die Funktion makeweekdate() und ihre Argumente sind auch in eine Funktion weekday() eingeschlossen, um das Feld week_day zurückzugeben. Wie in der Tabelle oben zu sehen ist, zeigt das Feld week_day, dass diese Datumswerte tatsächlich an einem Montag liegen (obwohl die Variable FirstWeekDay den Sonntag als ersten Tag der Woche festlegt), weil der Parameter für Tag in der Funktion makeweekdate() leer gelassen wurde.
Beispiel 3 – Diagrammobjektbeispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz mit wöchentlichen Umsätzen für 2022 in einer Tabelle namens Sales
Transaktionsdatumswerte, die in drei Feldern bereitgestellt werden: year, week und sales.
In diesem Beispiel wird ein Diagrammobjekt verwendet, um eine Kennzahl zu erstellen, die der Berechnung für end_of_week im ersten Beispiel entspricht. Diese Kennzahl verwendet die Funktion makeweekdate(), um das Datum für den Freitag dieser Woche im Format MM/TT/JJJJ zurückzugeben.
Um zu beweisen, dass das zurückgegebene Datum an einem Freitag liegt, wird eine zweite Kennzahl erstellt, um den Tag der Woche zurückzugeben.
Ein dem end_of_week entsprechendes Feld wird im Diagrammobjekt als Kennzahl erstellt, indem die Funktion makeweekdate() verwendet wird. Die Felder transaction_year und transaction_week werden als die Argumente für Jahr und Woche übergeben. Ein Wert von 4 wird als Argument für Tag verwendet.
Die Funktion kombiniert diese Werte dann und konvertiert sie in ein Datumsfeld. Die Ergebnisse werden im Format der Systemvariablen DateFormat zurückgegeben.
Die Funktion makeweekdate() und ihre Argumente sind auch in eine Funktion weekday() eingeschlossen, um eine Berechnung zurückzugeben, die derjenigen für das Feld week_day im ersten Beispiel entspricht. Wie in der Tabelle oben zu sehen ist, zeigt die letzte Spalte rechts, dass diese Datumswerte tatsächlich auf einen Freitag fallen.
Beispiel 4 – Szenario
Übersicht
In diesem Beispiel erstellen Sie eine Liste der Datumswerte, die alle Freitage für das Jahr 2022 umfasst.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Ladeskript
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Ergebnisse
Ergebnistabelle
date
weekday
01/07/2022
Fr
01/14/2022
Fr
01/21/2022
Fr
01/28/2022
Fr
02/04/2022
Fr
02/11/2022
Fr
02/18/2022
Fr
02/25/2022
Fr
03/04/2022
Fr
03/11/2022
Fr
03/18/2022
Fr
03/25/2022
Fr
04/01/2022
Fr
04/08/2022
Fr
04/15/2022
Fr
04/22/2022
Fr
04/29/2022
Fr
05/06/2022
Fr
05/13/2022
Fr
05/20/2022
Fr
05/27/2022
Fr
06/03/2022
Fr
06/10/2022
Fr
06/17/2022
Fr
+ 27 weitere Zeilen
Die Funktion makeweekdate() findet jeden Freitag im Jahr 2022. Ein Wochenparameter von -2 sorgt dafür, dass keine Datumswerte ausgelassen werden. Abschließend erstellt eine vorangehende load-Anweisung ein weiteres Feld weekday zur Klarstellung, um zu zeigen, dass jeder Wert für date ein Freitag ist.
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!