Diese Funktion liefert True, wenn timestamp innerhalb des Teils der Woche liegt, der base_date enthält, und zwar bis einschließlich der letzten Millisekunde von base_date.
In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
Die Funktion inweektodate() verwendet den Parameter base_date zum Identifizieren eines maximalen Grenzdatums eines Wochensegments sowie des entsprechenden Datums für den Wochenbeginn, das auf der Systemvariablen FirstWeekDay basiert (oder dem benutzerdefinierten Parameter first_week_day). Nachdem dieses Wochensegment definiert wurde, gibt die Funktion boolesche Ergebnisse zurück, wenn die vordefinierten Datumswerte mit diesem Segment verglichen werden.
Verwendung
Die Funktion inweektodate() gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einem if-Ausdruck verwendet. Damit wird eine Aggregierung oder Berechnung zurückgegeben, abhängig davon, ob ein ausgewertetes Datum in die betreffende Woche bis einschließlich eines bestimmten Datums fällt.
Beispielsweise kann die Funktion inweektodate() verwendet werden, um alle Umsätze zu berechnen, die in einer angegebenen Woche bis zu einem bestimmten Datum getätigt wurden.
Argumente
Argument
Beschreibung
timestamp
Das Datum, das mit base_date verglichen werden soll.
base_date
Datum, das für die Interpretation der Woche verwendet wird.
period_no
Mit period_no kann der Beginn der Woche festgelegt werden. period_no ist eine ganze Zahl, wobei 0 für die Woche steht, die base_date enthält. Negative Werte von period_no stehen für vorangehende Wochen, positive Werte für nachfolgende Wochen.
first_week_day
Standardmäßig ist der erste Tag der Woche der Sonntag (wie durch die Systemvariable „FirstWeekDay“ definiert) und beginnt um Mitternacht zwischen Samstag und Sonntag. Der Parameter first_week_day überschreibt die Variable FirstWeekDay. Wenn der Wochenbeginn auf einen anderen Tag fallen soll, geben Sie ein Flag zwischen 0 und 6 an.
Für eine Woche, die am Montag beginnt und am Sonntag endet, verwenden Sie das Flag 0 für Montag, 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.
Funktionsbeispiele
Beispiel
Interaktion
inweektodate('01/12/2006', '01/12/2006', 0)
Liefert TRUE.
inweektodate('01/12/2006', '01/11/2006', 0)
Liefert FALSE.
inweektodate('01/12/2006', '01/18/2006', -1)
Liefert FALSE. Weil period_no als -1 festgelegt wurde, wird als Gültigkeitsdatum, mit dem timestamp verglichen wird, 01/11/2006 verwendet.
inweektodate('01/11/2006', '01/12/2006', 0, 3 )
Gibt FALSE zurück, weil first_week_day als 3 (Donnerstag) festgelegt wurde, wodurch 01/12/2006 der erste Tag der Folgewoche nach der Woche ist, die 01/12/2006 enthält.
Die folgenden Themen können Sie bei der Arbeit mit dieser Funktion unterstützen:
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, der eine Reihe von Transaktionen für den Monat Januar 2022 enthält und der in eine Tabelle namens Transactions geladen wird.
Das bereitgestellte Datumsfeld im Format TimestampFormat='M/D/YYYY h:mm:ss[.fff]'.
Die Erstellung eines Felds in_week_to_date, das bestimmt, welche Transaktionen in der Woche bis zum 14. Januar 2022 stattgefunden haben.
Die Erstellung eines zusätzlichen Felds mit dem Namen weekday unter Verwendung der Funktion weekday(). Dieses neue Feld wird erstellt, um zu zeigen, welcher Tag der Woche jeweils dem Datum entspricht.
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
week_day
in_week_to_date
Ergebnistabelle
date
week_day
in_week_to_date
2022-01-02 12:22:06
So
0
2022-01-05 01:02:30
Mi
0
2022-01-06 15:36:20
Do
0
2022-01-08 10:58:35
Sa
0
2022-01-09 08:53:32
So
-1
2022-01-10 21:13:01
Mo
-1
2022-01-11 00:57:13
Di
-1
2022-01-12 09:26:02
Mi
-1
2022-01-13 15:05:09
Do
-1
2022-01-14 18:44:57
Fr
-1
2022-01-15 06:10:46
Sa
0
2022-01-16 06:39:27
So
0
2022-01-17 10:44:16
Mo
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Mi
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Fr
0
2022-01-30 11:56:56
So
0
2022-01-30 14:40:19
So
0
2022-01-31 05:28:21
Mo
0
Das Feld in_week_to_date wird in der vorangehenden load-Anweisung mithilfe der Funktion inweektodate() erstellt. Das erste angegebene Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hardcodiertes Datum für den 14. Januar. Dies ist das base_date, das identifiziert, welche Woche segmentiert wird, und die Endbegrenzung dieses Segments definiert. Eine period_no von 0 ist das abschließende Argument, was bedeutet, dass die Funktion keine Wochen vor oder nach der segmentierten Woche vergleicht.
Die Systemvariable FirstWeekDay bestimmt, dass Wochen an einem Sonntag beginnen und an einem Samstag enden. Daher wird der Januar entsprechend dem Diagramm unten in Wochen unterteilt, und die Tage zwischen dem 9. und 14. Januar stellen den gültigen Zeitraum für die Berechnung von inweekdodate() dar:
Jede Transaktion, die zwischen dem 9. und 14. Januar stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Transaktionen vor und nach diesen Tagen geben ein boolesches Ergebnis von FALSE zurück.
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.
Die Erstellung eines Felds prev_week_to_date, das bestimmt, welche Transaktionen in einer vollständigen Woche vor dem Wochensegment stattfanden, das am 14. Januar 2022 endet.
Die Erstellung eines zusätzlichen Felds mit dem Namen weekday unter Verwendung der Funktion weekday(). Damit soll gezeigt werden, welcher Tag der Woche jeweils dem Datum entspricht.
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
week_day
prev_week_to_date
Ergebnistabelle
date
week_day
prev_week_to_date
2022-01-02 12:22:06
So
-1
2022-01-05 01:02:30
Mi
-1
2022-01-06 15:36:20
Do
-1
2022-01-08 10:58:35
Sa
0
2022-01-09 08:53:32
So
0
2022-01-10 21:13:01
Mo
0
2022-01-11 00:57:13
Di
0
2022-01-12 09:26:02
Mi
0
2022-01-13 15:05:09
Do
0
2022-01-14 18:44:57
Fr
0
2022-01-15 06:10:46
Sa
0
2022-01-16 06:39:27
So
0
2022-01-17 10:44:16
Mo
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Mi
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Fr
0
2022-01-30 11:56:56
So
0
2022-01-30 14:40:19
So
0
2022-01-31 05:28:21
Mo
0
Ein period_no-Wert von -1 gibt an, dass die Funktion inweektodate () das Eingabequartalssegment mit der vorherigen Woche vergleicht. Das Wochensegment entspricht anfänglich den Tagen vom 9. bis 14. Januar. Die period_no verschiebt dann sowohl die Start- als auch die Endgrenze dieses Segments auf eine Woche früher, sodass die Datumsgrenzen der 2. bis 7. Januar werden.
Daher gibt jede Transaktion, die zwischen dem 2. Januar und 8. Januar (ausschließlich des 8. Januar selbst) 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 umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Die Erstellung eines Felds in_week_to_date, das bestimmt, welche Transaktionen in der Woche bis zum 14. Januar 2022 stattgefunden haben.
Die Erstellung eines zusätzlichen Felds mit dem Namen weekday unter Verwendung der Funktion weekday(). Damit soll gezeigt werden, welcher Tag der Woche jeweils dem Datum entspricht.
In diesem Beispiel wird Montag als der erste Tag der Woche betrachtet.
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
week_day
in_week_to_date
Ergebnistabelle
date
week_day
in_week_to_date
2022-01-02 12:22:06
So
0
2022-01-05 01:02:30
Mi
0
2022-01-06 15:36:20
Do
0
2022-01-08 10:58:35
Sa
0
2022-01-09 08:53:32
So
0
2022-01-10 21:13:01
Mo
-1
2022-01-11 00:57:13
Di
-1
2022-01-12 09:26:02
Mi
-1
2022-01-13 15:05:09
Do
-1
2022-01-14 18:44:57
Fr
-1
2022-01-15 06:10:46
Sa
0
2022-01-16 06:39:27
So
0
2022-01-17 10:44:16
Mo
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Mi
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Fr
0
2022-01-30 11:56:56
So
0
2022-01-30 14:40:19
So
0
2022-01-31 05:28:21
Mo
0
Indem 0 als Argument first_week_day in der Funktion inweektodate() verwendet wird, überschreibt das Funktionsargument die Systemvariable FirstWeekDay und legt Montag als den ersten Tag der Woche fest.
Daher gibt jede Transaktion, die zwischen dem 10. und 14. Januar stattfindet, ein boolesches Ergebnis von TRUE zurück, während Transaktionen mit Datum außerhalb dieser Grenzen einen Wert von FALSE zurückgeben.
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, welche Transaktionen in der Woche bis zum 14. Januar 2022 stattfanden, wird als Kennzahl in einem Diagrammobjekt 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 Transaktionen in der gleichen Woche bis zum 14. Januar stattfanden, erstellen Sie die folgende Kennzahl:
=inweektodate(date,'01/14/2022',0)
Um zu zeigen, welcher Tag der Woche jeweils dem Datum entspricht, erstellen Sie eine weitere Kennzahl:
=weekday(date)
Ergebnistabelle
date
week_day
in_week_to_date
2022-01-02 12:22:06
So
0
2022-01-05 01:02:30
Mi
0
2022-01-06 15:36:20
Do
0
2022-01-08 10:58:35
Sa
0
2022-01-09 08:53:32
So
-1
2022-01-10 21:13:01
Mo
-1
2022-01-11 00:57:13
Di
-1
2022-01-12 09:26:02
Mi
-1
2022-01-13 15:05:09
Do
-1
2022-01-14 18:44:57
Fr
-1
2022-01-15 06:10:46
Sa
0
2022-01-16 06:39:27
So
0
2022-01-17 10:44:16
Mo
0
2022-01-18 18:48:17
Di
0
2022-01-26 04:36:03
Mi
0
2022-01-27 08:07:49
Do
0
2022-01-28 12:24:29
Fr
0
2022-01-30 11:56:56
So
0
2022-01-30 14:40:19
So
0
2022-01-31 05:28:21
Mo
0
Das Feld in_week_to_date wird als Kennzahl in einem Diagrammobjekt anhand der Funktion inweektodate() erstellt. Das erste angegebene Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hardcodiertes Datum für den 14. Januar. Dies ist das base_date, das identifiziert, welche Woche segmentiert wird, und die Endbegrenzung dieses Segments definiert. Eine period_no von 0 ist das abschließende Argument, was bedeutet, dass die Funktion keine Wochen vor oder nach der segmentierten Woche vergleicht.
Die Systemvariable FirstWeekDay bestimmt, dass Wochen an einem Sonntag beginnen und an einem Samstag enden. Daher wird der Januar entsprechend dem Diagramm unten in Wochen unterteilt, und die Tage zwischen dem 9. und 14. Januar stellen den gültigen Zeitraum für die Berechnung von inweekdodate() dar:
Jede Transaktion, die zwischen dem 9. und 14. Januar stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Transaktionen vor und nach diesen Tagen geben ein boolesches Ergebnis von FALSE zurück.
Beispiel 5 – Szenario
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz, der in eine Tabelle namens Products geladen wird.
Informationen bezüglich Produkt-ID, Herstellungsdatum und Selbstkosten.
Es wurde festgestellt, dass aufgrund eines Gerätefehlers die in der Woche vom 12. Januar hergestellten Produkte mangelhaft waren. Das Problem wurde am 13. Januar behoben. Der Endbenutzer möchte ein Diagrammobjekt haben, 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.
Die Funktion inweektodate() 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 Woche 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!