Diese Funktion liefert einen Wert, der dem Zeitstempel der ersten Millisekunde des ersten Tags der Mondwoche entspricht, in der date liegt. 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.
Die Funktion lunarweekstart() bestimmt, in welche Mondwoche date fällt. Sie gibt dann einen Zeitstempel im Datumsformat für die erste Millisekunde dieser Woche zurück.
Argumente
Argument
Beschreibung
date
Datum oder Zeitstempel für die Evaluierung.
period_no
period_no ist eine ganze Zahl oder eine Formel, die eine ganze Zahl ergibt, wobei 0 für die Mondwoche steht, die 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 lunarweekstart() wird in der Regel als Teil einer Formel verwendet, wenn in der Berechnung der Teil der Woche verwendet werden soll, der bereits verstrichen ist. Anders als bei der Funktion weekstart() beginnen beim Start eines neuen Kalenderjahres die Wochen am 1. Januar, und jede nachfolgende Woche beginnt sieben Tage später. Die Funktion lunarweekstart() ist nicht von der Systemvariablen FirstWeekDay betroffen.
Zum Beispiel kann lunarweekstart() verwendet werden, um die Zinsen zu berechnen, die in einem Jahr bis dato aufgelaufen sind.
Funktionsbeispiele
Beispiel
Ergebnis
lunarweekstart('01/12/2013')
Gibt 01/08/2013 zurück.
lunarweekstart('01/12/2013', -1)
Gibt 01/01/2013 zurück.
lunarweekstart('01/12/2013', 0, 1
)
Gibt 01/09/2013 zurück, weil das Festlegen von first_week_day auf 1 bedeutet, dass der Anfang des Jahres auf den 01/02/2013 geändert wird.
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 – keine zusätzlichen Argumente
Übersicht
Ö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 2022 und wird in eine Tabelle namens Transactions geladen.
Das Datumsfeld wird im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
Erstellung eines Felds start_of_week, das den Zeitstempel für den Start der Mondwoche zurückgibt, in der die Transaktionen 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
start_of_week
start_of_week_timestamp
Ergebnistabelle
date
start_of_week
start_of_week_timestamp
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/15/2022
1/15/2022 12:00:00 AM
2/5/2022
02/05/2022
2/5/2022 12:00:00 AM
2/28/2022
02/26/2022
2/26/2022 12:00:00 AM
3/16/2022
03/12/2022
3/12/2022 12:00:00 AM
4/1/2022
03/26/2022
3/26/2022 12:00:00 AM
5/7/2022
05/07/2022
5/7/2022 12:00:00 AM
5/16/2022
05/14/2022
5/14/2022 12:00:00 AM
6/15/2022
06/11/2022
6/11/2022 12:00:00 AM
6/26/2022
06/25/2022
6/25/2022 12:00:00 AM
7/9/2022
07/09/2022
7/9/2022 12:00:00 AM
7/22/2022
07/16/2022
7/16/2022 12:00:00 AM
7/23/2022
07/23/2022
7/23/2022 12:00:00 AM
7/27/2022
07/23/2022
7/23/2022 12:00:00 AM
8/2/2022
07/30/2022
7/30/2022 12:00:00 AM
8/8/2022
08/06/2022
8/6/2022 12:00:00 AM
8/19/2022
08/13/2022
8/13/2022 12:00:00 AM
9/26/2022
09/24/2022
9/24/2022 12:00:00 AM
10/14/2022
10/08/2022
10/8/2022 12:00:00 AM
10/29/2022
10/29/2022
10/29/2022 12:00:00 AM
Das Feld start_of_week wird im vorangehenden load-Befehl erstellt, indem die Funktion lunarweekstart() verwendet und das Feld date als Argument der Funktion übergeben wird.
Die Funktion lunarweekstart() identifiziert, in welche Mondwoche das Datum fällt, und gibt einen Zeitstempel für die erste Millisekunde dieser Woche zurück.
Transaktion 8189 fand am 19. Januar statt. Die Funktion lunarweekstart() identifiziert, dass die Mondwoche am 15. Januar beginnt. Daher gibt der Wert für start_of_week dieser Transaktion die erste Millisekunde dieses Tages zurück, also den 15. Januar um 12:00:00 AM.
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.
Es wird ein Feld previous_lunar_week_start erstellt, das den Zeitstempel für den Start der Mondwoche vor der Woche zurückgibt, in der die Transaktion stattfand.
Da in diesem Fall eine period_no von -1 als Versatzargument in der Funktion lunarweekstart() verwendet wurde, identifiziert die Funktion zuerst die Mondwoche, in der die Transaktionen stattfinden. Dann geht sie eine Woche zurück und identifiziert die erste Millisekunde dieser Mondwoche.
Transaktion 8189 fand am 19. Januar statt. Die Funktion lunarweekstart() identifiziert, dass die Mondwoche am 15. Januar beginnt. Daher begann die vorherige Mondwoche am 8. Januar um 12:00:00 AM; dies ist der Wert, der für das Feld previous_lunar_week_start zurückgegeben wird.
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 für den Beginn der Mondwochen der 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
start_of_week
start_of_week_timestamp
Ergebnistabelle
date
start_of_week
start_of_week_timestamp
1/7/2022
01/05/2022
1/5/2022 12:00:00 AM
1/19/2022
01/19/2022
1/19/2022 12:00:00 AM
2/5/2022
02/02/2022
2/2/2022 12:00:00 AM
2/28/2022
02/23/2022
2/23/2022 12:00:00 AM
3/16/2022
03/16/2022
3/16/2022 12:00:00 AM
4/1/2022
03/30/2022
3/30/2022 12:00:00 AM
5/7/2022
05/04/2022
5/4/2022 12:00:00 AM
5/16/2022
05/11/2022
5/11/2022 12:00:00 AM
6/15/2022
06/15/2022
6/15/2022 12:00:00 AM
6/26/2022
06/22/2022
6/22/2022 12:00:00 AM
7/9/2022
07/06/2022
7/6/2022 12:00:00 AM
7/22/2022
07/20/2022
7/20/2022 12:00:00 AM
7/23/2022
07/20/2022
7/20/2022 12:00:00 AM
7/27/2022
07/27/2022
7/27/2022 12:00:00 AM
8/2/2022
07/27/2022
7/27/2022 12:00:00 AM
8/8/2022
08/03/2022
8/3/2022 12:00:00 AM
8/19/2022
08/17/2022
8/17/2022 12:00:00 AM
9/26/2022
09/21/2022
9/21/2022 12:00:00 AM
10/14/2022
10/12/2022
10/12/2022 12:00:00 AM
10/29/2022
10/26/2022
10/26/2022 12:00:00 AM
Da in diesem Fall das Argument first_week_date von 4 in der Funktion lunarweekstart() verwendet wird, wird der Start des Jahres vom 1. auf den 5. Januar verschoben.
Transaktion 8189 fand am 19. Januar statt. Da Mondwochen am 5. Januar beginnen, identifiziert die Funktion lunarweekstart(), dass die Mondwoche, die den 19. Januar enthält, auch am 19. Januar um 12:00:00 AM beginnt. Daher ist dies der Wert, der für das Feld start_of_week zurückgegeben wird.
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 einen Zeitstempel für den Start der Mondwoche zurückgibt, in der die Transaktionen 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.
Fügen Sie die folgenden Kennzahlen hinzu:
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
Ergebnistabelle
date
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/15/2022
1/15/2022 12:00:00 AM
2/5/2022
02/05/2022
2/5/2022 12:00:00 AM
2/28/2022
02/26/2022
2/26/2022 12:00:00 AM
3/16/2022
03/12/2022
3/12/2022 12:00:00 AM
4/1/2022
03/26/2022
3/26/2022 12:00:00 AM
5/7/2022
05/07/2022
5/7/2022 12:00:00 AM
5/16/2022
05/14/2022
5/14/2022 12:00:00 AM
6/15/2022
06/11/2022
6/11/2022 12:00:00 AM
6/26/2022
06/25/2022
6/25/2022 12:00:00 AM
7/9/2022
07/09/2022
7/9/2022 12:00:00 AM
7/22/2022
07/16/2022
7/16/2022 12:00:00 AM
7/23/2022
07/23/2022
7/23/2022 12:00:00 AM
7/27/2022
07/23/2022
7/23/2022 12:00:00 AM
8/2/2022
07/30/2022
7/30/2022 12:00:00 AM
8/8/2022
08/06/2022
8/6/2022 12:00:00 AM
8/19/2022
08/13/2022
8/13/2022 12:00:00 AM
9/26/2022
09/24/2022
9/24/2022 12:00:00 AM
10/14/2022
10/08/2022
10/8/2022 12:00:00 AM
10/29/2022
10/29/2022
10/29/2022 12:00:00 AM
Die Kennzahl start_of_week wird im Diagrammobjekt erstellt, indem die Funktion lunarweekstart() verwendet und das Datumsfeld als Argument der Funktion übergeben wird.
Die Funktion lunarweekstart() identifiziert, in welche Mondwoche der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieser Woche zurück.
Transaktion 8189 fand am 19. Januar statt. Die Funktion lunarweekstart() identifiziert, dass die Mondwoche am 15. Januar beginnt. Daher ist der Wert für start_of_week dieser Transaktion die erste Millisekunde dieses Tages, also der 15. Januar um 12:00:00 AM.
Beispiel 5 – 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 Darlehenssalden, der in eine Tabelle namens Loans geladen wird
Daten aus der Darlehens-ID, dem Saldo zum Wochenbeginn und dem einfachen Zinssatz, der für jedes Darlehen pro Jahr berechnet wird
Der Endbenutzer möchte ein Diagrammobjekt, das nach Darlehens-ID die aktuellen Zinsen anzeigt, die für jedes Darlehen in der Woche bis dato aufgelaufen sind.
Die Funktion lunarweekstart() verwendet das aktuelle Datum als einziges Argument und gibt das Startdatum des aktuellen Jahres zurück. Die Formel zieht dieses Ergebnis vom aktuellen Datum ab und gibt die Anzahl der Tage zurück, die bisher in der Woche verstrichen sind.
Dieser Wert wird dann mit dem Zinssatz multipliziert und durch 365 geteilt, um den effektiven Zinssatz für diesen Zeitraum zurückzugeben. Das Ergebnis wird dann mit dem Anfangssaldo des Darlehens multipliziert, was die Zinsen ergibt, die bislang in dieser Woche aufgelaufen sind.
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!