In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
Die Funktion inweek() verwendet das Argument base_date, um zu identifizieren, in welchen Siebentagezeitraum das Datum fällt. Der Starttag der Woche basiert auf der Systemvariablen FirstWeekDay. Sie können aber auch den ersten Tag der Woche ändern, indem Sie das Argument first_week_day in der Funktion inweek() verwenden.
Nachdem die ausgewählte Woche definiert wurde, gibt die Funktion boolesche Ergebnisse zurück, wenn die vordefinierten Datumswerte mit diesem Wochensegment verglichen werden.
Verwendung
Die Funktion inweek() gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einer if expression verwendet. Die Funktion inweek() gibt eine Aggregierung oder Berechnung zurück, abhängig davon, ob ein ausgewertetes Datum in die Woche mit dem ausgewählten Datum des Arguments base_date fällt.
Beispielsweise kann die Funktion inweek() verwendet werden, um alle in einer bestimmten Woche 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 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.
Werte für first_week_day
Tag
Wert
Montag
0
Dienstag
1
Mittwoch
2
Donnerstag
3
Freitag
4
Samstag
5
Sonntag
6
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.
Funktionsbeispiele
Beispiel
Ergebnis
inweek ('01/12/2006', '01/14/2006', 0)
Gibt TRUE zurück
inweek ('01/12/2006', '01/20/2006', 0 )
Gibt FALSE zurück
inweek ('01/12/2006', '01/14/2006', -1 )
Gibt FALSE zurück
inweek ('01/07/2006', '01/14/2006', -1)
Gibt TRUE zurück
inweek ('01/12/2006', '01/09/2006', 0, 3)
Gibt FALSE zurück, weil first_week_day als 3 (Donnerstag) angegeben ist. Dadurch wird 01/12/2006 zum ersten Tag der Woche nach der Woche, die den 01/09/2006 enthält.
Die folgenden Themen können Sie bei der Arbeit mit dieser Funktion unterstützen:
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
Ergebnistabelle
date
week_day
in_week
01/02/2022
So
0
01/05/2022
Mi
0
01/06/2022
Do
0
01/08/2022
Sa
0
01/09/2022
So
-1
01/10/2022
Mo
-1
01/11/2022
Di
-1
01/12/2022
Mi
-1
01/13/2022
Do
-1
01/14/2022
Fr
-1
01/15/2022
Sa
-1
01/16/2022
So
0
01/17/2022
Mo
0
01/18/2022
Di
0
01/26/2022
Mi
0
01/27/2022
Do
0
01/28/2022
Fr
0
01/29/2022
Sa
0
01/30/2022
So
0
01/31/2022
Mo
0
Das Feld „in_week“ wird in der vorangehenden load-Anweisung mithilfe der Funktion inweek() erstellt. Das erste Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hartcodiertes Datum, der 14. Januar. Dies ist das base_date. Das Argument base_date arbeitet mit der Systemvariablen FirstWeekDay zusammen, um die Vergleichswoche zu identifizieren. Eine period_no von 0 – was bedeutet, dass die Funktion keine Wochen vor oder nach der segmentierten Woche vergleicht – ist das abschließende Argument.
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 15. Januar stellen den gültigen Zeitraum für die Berechnung von inweek() dar:
Jede Transaktion, die zwischen dem 9. und 15. Januar stattfindet, gibt ein boolesches Ergebnis von TRUE 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:
Der gleiche Datensatz, der eine Reihe von Transaktionen für 2022 enthält, wird in eine Tabelle namens „Transactions“ geladen.
Systemvariable FirstWeekDay, die auf 6 (Sonntag) festgelegt ist
Eine vorangehende load-Anweisung, die Folgendes enthält:
Die Funktion inweek (), die als das Feld „prev_week“ festgelegt ist, das bestimmt, welche Transaktionen eine ganze Woche vor der Woche des 14. Januar 2022 stattfanden.
Die Funktion weekday(), die als das Feld „week_day“ festgelegt ist, das zeigt, welcher Tag der Woche jedem 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
Ergebnistabelle
date
week_day
prev_week
01/02/2022
So
-1
01/05/2022
Mi
-1
01/06/2022
Do
-1
01/08/2022
Sa
-1
01/09/2022
So
0
01/10/2022
Mo
0
01/11/2022
Di
0
01/12/2022
Mi
0
01/13/2022
Do
0
01/14/2022
Fr
0
01/15/2022
Sa
0
01/16/2022
So
0
01/17/2022
Mo
0
01/18/2022
Di
0
01/26/2022
Mi
0
01/27/2022
Do
0
01/28/2022
Fr
0
01/29/2022
Sa
0
01/30/2022
So
0
01/31/2022
Mo
0
Da -1 als Argument period_no in der Funktion inweek() verwendet wird, werden die Grenzen der Vergleichswoche um volle sieben Tage zurück verschoben. Mit einer period_no von 0 liegt die Woche zwischen dem 9. und 15. Januar. In diesem Beispiel verschiebt aber die period_no von -1 die Start- und Endgrenze dieses Segments um eine Woche zurück. Die Datumsgrenzen sind jetzt der 2. bis 8. Januar.
Daher gibt jede Transaktion, die zwischen dem 2. und 8. 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 umfasst:
Der gleiche Datensatz, der eine Reihe von Transaktionen für 2022 enthält, wird in eine Tabelle namens „Transactions“ geladen.
Systemvariable FirstWeekDay, die auf 6 (Sonntag) festgelegt ist
Eine vorangehende load-Anweisung, die Folgendes enthält:
Die Funktion inweek(), die als das Feld „in_week“ festgelegt ist, das bestimmt, welche Transaktionen in der Woche vom 14. Januar 2022 stattfanden.
Die Funktion weekday(), die als das Feld „week_day“ festgelegt ist, das zeigt, welcher Tag der Woche jedem 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
Ergebnistabelle
date
week_day
in_week
01/02/2022
So
0
01/05/2022
Mi
0
01/06/2022
Do
0
01/08/2022
Sa
0
01/09/2022
So
0
01/10/2022
Mo
-1
01/11/2022
Di
-1
01/12/2022
Mi
-1
01/13/2022
Do
-1
01/14/2022
Fr
-1
01/15/2022
Sa
-1
01/16/2022
So
-1
01/17/2022
Mo
0
01/18/2022
Di
0
01/26/2022
Mi
0
01/27/2022
Do
0
01/28/2022
Fr
0
01/29/2022
Sa
0
01/30/2022
So
0
01/31/2022
Mo
0
Da 0 als Argument first_week_day in der Funktion inweek() verwendet wird, wird die Systemvariable FirstWeekDay überschrieben und Montag als der erste Tag der Woche festgelegt.
Daher gibt jede Transaktion, die zwischen dem 10. und 16. Januar stattfindet, ein boolesches Ergebnis von TRUE zurück.
Beispiel 4 – Diagrammobjektbeispiel
Übersicht
Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.
In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Erstellen Sie eine Kennzahl in der Ergebnistabelle, um zu bestimmen, welche Transaktionen in der Woche vom 14. Januar 2022 stattfanden.
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 folgenden Kennzahlen:
=inweek (date,'01/14/2022',0), um zu berechnen, ob Transaktionen in der Woche vom 14. Januar stattfanden.
=weekday(date), um zu zeigen, welcher Tag der Woche jeweils dem Datum entspricht.
Ergebnistabelle
date
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
So
0
01/05/2022
Mi
0
01/06/2022
Do
0
01/08/2022
Sa
0
01/09/2022
So
-1
01/10/2022
Mo
-1
01/11/2022
Di
-1
01/12/2022
Mi
-1
01/13/2022
Do
-1
01/14/2022
Fr
-1
01/15/2022
Sa
-1
01/16/2022
So
0
01/17/2022
Mo
0
01/18/2022
Di
0
01/26/2022
Mi
0
01/27/2022
Do
0
01/28/2022
Fr
0
01/29/2022
Sa
0
01/30/2022
So
0
01/31/2022
Mo
0
Die Kennzahl „in_week“ wird im Diagramm anhand der Funktion inweek() erstellt. Das erste Argument identifiziert, welches Feld ausgewertet wird. Das zweite Argument ist ein hartcodiertes Datum, der 14. Januar. Dies ist das base_date. Das Argument base_date arbeitet mit der Systemvariablen FirstWeekDay zusammen, um die Vergleichswoche zu identifizieren. Eine period_no von 0 ist das abschließende Argument.
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 15. Januar stellen den gültigen Zeitraum für die Berechnung von inweek() dar:
Jede Transaktion, die zwischen dem 9. und 15. Januar stattfindet, gibt ein boolesches Ergebnis von TRUE 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:
Datensatz, der in eine Tabelle namens „Products“ geladen wird
Die Tabelle enthält die folgenden Felder:
product ID
product type
manufacture date
cost price
Es wurde festgestellt, dass aufgrund eines Gerätefehlers die in der Woche vom 12. Januar hergestellten Produkte mangelhaft waren. Der Endbenutzer möchte ein Diagramm, 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 und fügen Sie dieses Feld als Dimension hinzu:
=weekname(manufacture_date)
Erstellen Sie die folgenden Kennzahlen:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless'), um zu identifizieren, welche Produkte mangelhaft und welche einwandfrei sind. Verwenden Sie dafür die Funktion inweek().
=sum(cost_price), um die Summe der Kosten für jedes Produkt zu zeigen.
Gehen Sie folgendermaßen vor:
Legen Sie das Zahlenformat der Kennzahl auf Währung fest.
Deaktivieren Sie unter Darstellung die Option Gesamtwerte.
Die Funktion inweek() gibt einen booleschen Wert zurück, wenn sie das Herstellungsdatum der einzelnen Produkte auswertet. Für alle in der Woche vom 12. Januar hergestellten Produkte gibt die Funktion inweek() 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!