Diese Funktion bestimmt, ob timestamp innerhalb der Mondwoche liegt, die base_date enthält. 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 inlunarweek() bestimmt, in welche Mondwoche das base_date fällt. Dann gibt sie ein boolesches Ergebnis zurück, sobald sie ermittelt hat, ob jeder Zeitstempelwert in die gleiche Mondwoche wie das base_date fällt.
Verwendung
Die Funktion inlunarweek() gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einem IF-Ausdruck verwendet. Damit wird eine Aggregierung oder eine Berechnung zurückgegeben, abhängig davon, ob das ausgewertete Datum in die betreffende Mondwoche fällt.
Beispielsweise kann die Funktion inlunarweek() verwendet werden, um alle in einer bestimmten Mondwoche gefertigten Geräte zu identifizieren.
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.
Funktionsbeispiele
Beispiel
Ergebnis
inlunarweek('01/12/2013', '01/14/2013',
0)
Gibt TRUE zurück, da der Wert von timestamp, 01/12/2013, in die Woche vom 01/08/2013 bis zum 01/14/2013 fällt.
inlunarweek('01/12/2013', '01/07/2013',
0)
Gibt FALSE zurück, da das base_date, 01/07/2013, in der Mondwoche liegt, die als 01/01/2013 bis 01/07/2013 definiert ist.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Gibt FALSE zurück. Durch Angabe eines Werts von period_no als -1 wird die Woche auf die vorhergehende Woche verschoben, vom 01/01/2013 bis zum 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Gibt TRUE zurück. Verglichen mit dem vorherigen Beispiel befindet sich timestamp in der darauffolgenden Woche, nachdem die Verschiebung nach hinten berücksichtigt wurde.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Gibt FALSE zurück. Die Angabe eines Werts von 3 für first_week_day bedeutet, dass der Jahresbeginn ab dem 01/04/2013 berechnet wird. Daher fällt der Wert von base_date in die erste Woche, und der Wert von timestamp fällt in die Woche vom 01/11/2013 bis zum 01/17/2013.
Die Funktion inlunarweek() 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.
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
Ergebnistabelle
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Das Feld in_lunar_week wird im vorangehenden load-Befehl erstellt, indem die Funktion inlunarweek() verwendet und Folgendes als Argumente der Funktion übergeben wird:
Das Feld date
Ein hartcodiertes Datum, der 10. Januar, als base_date
Eine period_no von 0.
Da Mondwochen am 1. Januar beginnen, fällt der 10. Januar in die Mondwoche, die am 8. Januar beginnt und am 14. Januar endet. 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 umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Das Datumsfeld wurde im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
In diesem Beispiel besteht die Aufgabe aber darin, ein Feld 2_lunar_weeks_later zu erstellen, das bestimmt, ob die Transaktionen zwei Mondwochen nach dem 10. 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
date
2_lunar_weeks_later
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
Da in diesem Beispiel eine period_no von 2 als Versatzargument in der Funktion inlunarweek() verwendet wurde, definiert die Funktion die Woche, die am 22. Januar beginnt, als die Mondwoche, für die Transaktionen validiert werden. Daher gibt jede Transaktion, die zwischen dem 22. Januar und dem 28. Januar stattfindet, 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 verwendet den gleichen Datensatz und das gleiche Szenario wie das erste Beispiel. In diesem Beispiel wird aber für den Beginn der Mondwochen der 6. Januar festgelegt.
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Die DateFormat-Standardsystemvariable MM/TT/JJJJ wird verwendet.
Ein Argument für first_week_day von 5. Damit wird der Mondwochenbeginn auf den 5. 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
Ergebnistabelle
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Da in diesem Fall das Argument first_week_date von 5 in der Funktion inlunarweek() verwendet wird, wird der Beginn des Mondwochenkalenders auf den 6. Januar verschoben. Somit fällt der 10. Januar in die Mondwoche, die am 6. Januar beginnt und am 12. Januar endet. Jede Transaktion, die zwischen diesen beiden Datumswerten liegt, gibt einen booleschen Wert von TRUE zurück.
Beispiel 4 – Diagrammobjekt
Ü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.
Das Datumsfeld wurde im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Die Berechnung, die bestimmt, ob Transaktionen in der gleichen Mondwoche wie der 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.
Um zu berechnen, ob eine Transaktion in der Mondwoche stattfindet, die den 10. Januar enthält, erstellen Sie die folgende Kennzahl:
= inlunarweek(date,'01/10/2022', 0)
Ergebnistabelle
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
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üstungsfehler die Produkte, die in der Mondwoche des 12. Januar hergestellt wurden, mangelhaft waren. Der Endbenutzer möchte ein Diagrammobjekt, das nach Namen der Mondwoche den Status der hergestellten Produkte angibt und zeigt, welche „mangelhaft“ und welche „einwandfrei“ waren und was die in diesem Monat gefertigten Produkte gekostet haben.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle.
Erstellen Sie eine Dimension, um die Monatsnamen anzuzeigen:
=lunarweekname(manufacture_date)
Erstellen Sie eine Kennzahl, um zu identifizieren, welche Produkte mangelhaft und welche einwandfrei sind. Verwenden Sie dafür die Funktion inlunarweek():
Die Funktion inlunarweek() gibt einen booleschen Wert zurück, wenn sie das Herstellungsdatum der einzelnen Produkte auswertet. Für alle in der Mondwoche des 10. Januar hergestellten Produkte gibt die Funktion inlunarweek() einen booleschen Wert von TRUE zurück und markiert die Produkte als „mangelhaft“. Alle Produkte, die einen Wert von FALSE zurückgeben und daher nicht in der betreffenden Woche gefertigt wurden, werden als „einwandfrei“ 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!