Diese Funktion gibt an, ob timestamp in dem Teil der Mondwoche liegt, die base_date enthält, und zwar bis einschließlich der letzten Millisekunde davon. Bei Mondwochen in Qlik Sense wird der 1. Januar als der erste Tag der Woche gezählt. Mit Ausnahme der letzten Woche des Jahres umfasst jede Woche genau sieben Tage.
In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
Die Funktion inlunarweektodate() verhält sich als Endpunkt der Mondwoche. Im Gegensatz dazu bestimmt die Funktion inlunarweek(), in welche Mondwoche das base_date fällt. Wenn beispielsweise das base_date der 5. Januar ist, gibt jeder Zeitstempel zwischen dem 1. und 5. Januar einen booleschen Wert von TRUE zurück, während Datumswerte am 6. und 7. Januar oder später ein boolesches Ergebnis von FALSE zurückgeben.
Argumente
Argument
Beschreibung
timestamp
Das Datum, das mit base_date verglichen werden soll.
base_date
Datum, das für die Interpretation der Mondwoche verwendet wird.
period_no
Mit period_no kann ein anderer Beginn für die Mondwoche definiert werden. period_no ist eine ganze Zahl, wobei 0 für die Mondwoche steht, die base_date enthält. Negative Werte von period_no stehen für vorangehende, positive Werte für nachfolgende Mondwochen.
first_week_day
Ein Startwert, der größer oder kleiner als Null sein kann. Dadurch wird der Beginn des Jahres um die angegebene Anzahl an Tagen und/oder den Bruchteil eines Tages verschoben.
Verwendung
Die Funktion inlunarweektodate() gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einem IF-Ausdruck verwendet. Die Funktion inlunarweektodate() kann dann verwendet werden, wenn der Benutzer möchte, dass die Berechnung eine Aggregierung oder eine Berechnung zurückgibt, je nachdem, ob das ausgewertete Datum in einem bestimmten Segment der betreffenden Woche lag.
Beispielsweise kann die Funktion inlunarweektodate() verwendet werden, um alle in einer bestimmten Woche bis zu einem bestimmten Datum gefertigten Geräte zu identifizieren.
Funktionsbeispiele
Beispiel
Ergebnis
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Gibt TRUE zurück, da der Wert von timestamp, 01/12/2013, in den Teil der Woche vom 01/08/2013 bis zum 01/13/2013 fällt.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Gibt FALSE zurück, weil der Wert von timestamp nach dem Wert base_date liegt, obwohl die beiden Datumswerte in derselben Mondwoche vor dem 01/12/2012 liegen.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Gibt TRUE zurück. Durch die Angabe eines Werts von 1 für period_no wird base_date eine Woche nach vorne verschoben, sodass der Wert von timestamp in den Teil der Mondwoche fällt.
Die Funktion inlunarweektodate() wird oft in Kombination mit den folgenden Funktionen verwendet:
Diese Funktion wird verwendet, um die Mondwochennummer des Jahres zu bestimmen, in dem ein Eingabedatum liegt.
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.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz enthält eine Reihe von Transaktionen für den Monat Januar und wird in eine Tabelle namens Transactions geladen. Die DateFormat-Standardsystemvariable MM/TT/JJJJ wird verwendet.
Erstellen Sie ein Feldin_lunar_week_to_date, das bestimmt, welche Transaktionen bisher in der Mondwoche des 10. Januar 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
in_lunar_week_to_date
Ergebnistabelle
Datum
in_lunar_week_to_date
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Das Feld in_lunar_week_to_date wird im vorangehenden load-Befehl erstellt, indem die Funktion inlunarweektodate() verwendet und das Feld date, ein hartcodierter Zeitstempel für den 10. Januar als base_date und ein Versatz von 0 als Argumente der Funktion übergeben werden.
Da Mondwochen am 1. Januar beginnen, fällt der 10. Januar in die Mondwoche, die am 8. Januar beginnt, und weil die Funktion inlunarweektodate() verwendet wird, endet diese Mondwoche am 10. Daher gibt jede Transaktion, die zwischen diesen beiden Datumswerten im Januar stattfindet, einen booleschen Wert von TRUE zurück. Dies wird in der Ergebnistabelle validiert.
Beispiel 2 – period_no
Ü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 besteht die Aufgabe aber darin, ein Feld 2_lunar_weeks_later zu erstellen, das bestimmt, ob die Transaktionen zwei Wochen nach der laufenden Mondwoche des 1. Januar stattfanden oder nicht.
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
2_lunar_weeks_later
Ergebnistabelle
Datum
2_lunar_weeks_later
1/1/2022
0
1/4/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
-1
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
In diesem Fall bestimmt die Funktion inlunarweektodate(), dass die Mondwoche bis zum 10. Januar drei Tagen entspricht (dem 8., 9. und 10. Januar). Da eine period_no von 2 als Versatzargument verwendet wurde, wird diese Mondwoche um 14 Tage verschoben. Somit wird definiert, dass die Dreitage-Mondwoche den 22., 23. und 24. Januar umfasst. Jede Transaktion, die vom 22. Januar bis zum 24. Januar stattfindet, gibt ein boolesches Ergebnis von TRUE zurück.
Beispiel 3 – first_week_day
Ü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 DateFormat-Standardsystemvariable MM/TT/JJJJ wird verwendet.
Ein Argument für first_week_date von 3. Damit wird der Mondwochenbeginn auf den 3. Januar 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_lunar_week_to_date
Ergebnistabelle
Datum
in_lunar_week_to_date
1/1/2022
0
1/4/2022
-1
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Da in diesem Fall das Argument für the first_week_date von 3 in der Funktion inlunarweek() verwendet wird, dauert die erste Mondwoche vom 3. bis zum 10. Januar. Da der 10. Januar auch das base_date ist, gibt jede Transaktion, die zwischen diesen beiden Datumswerten liegt, einen booleschen Wert von TRUE zurück.
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 in der Mondwoche bis zum 10. Januar 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:
=inlunarweektodate(date,'01/10/2022', 0)
Ergebnistabelle
Datum
=inlunarweektodate(date,'01/10/2022', 0)
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Die Kennzahl in_lunar_week_to_date wird im Diagrammobjekt erstellt, indem die Funktion inlunarweektodate() verwendet und das Datumsfeld, ein hartcodierter Zeitstempel für den 10. Januar als base_date und ein Versatz von 0 als Argumente der Funktion übergeben werden.
Da Mondwochen am 1. Januar beginnen, fällt der 10. Januar in die Mondwoche, die am 8. Januar beginnt. Da zudem die Funktion inlunarweektodate() verwendet wird, endet diese Mondwoche am 10. Daher gibt jede Transaktion, die zwischen diesen beiden Datumswerten im Januar stattfindet, einen booleschen Wert von TRUE zurück. Dies wird in der Ergebnistabelle validiert.
Beispiel 5 – Szenario
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Tabelle namens Products geladen wird
Informationen bestehend aus Produkt-ID, Herstellungsdatum und Selbstkosten
Es wurde festgestellt, dass aufgrund eines Ausrüstungsfehlers die in der Mondwoche vom 12. Januar hergestellten Produkte mangelhaft waren. Das Problem wurde am 13. Januar behoben. Der Endbenutzer möchte ein Diagrammobjekt, das nach Woche den Status der hergestellten Produkte angibt und zeigt, welche „mangelhaft“ und welche „einwandfrei“ waren und was die in dieser Woche gefertigten Produkte gekostet haben.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle.
Erstellen Sie eine Dimension, um die Wochennamen anzuzeigen:
=weekname(manufacture_date)
Erstellen Sie dann eine Dimension, die die Funktion inlunarweektodate() verwendet, um zu identifizieren, welche Produkte mangelhaft und welche einwandfrei sind:
Die Funktion inlunarweektodate() gibt einen booleschen Wert zurück, wenn sie das Herstellungsdatum der einzelnen Produkte auswertet. Für diejenigen, die einen booleschen Wert von TRUE zurückgeben, markiert sie die Produkte als ‘Defective’. Für jedes Produkt, das einen Wert von FALSE zurückgibt und somit nicht in der Mondwoche bis zum 12. Januar hergestellt wurde, werden die Produkte als ‘Faultless’ markiert.
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!