# inweektodate Skript- und Diagrammfunktion

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.

Syntax:

InWeekToDate (timestamp, base\_date, period\_no [, first\_week\_day])

Rückgabe Datentyp: Boolesch

Informationshinweis

In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.

Diagramm der Funktion „inweektodate“

Diagramm der Funktion „inweektodate“

Diagramm der Funktion „inweektodate“ ![Beispieldiagramm für den Datumsbereich, innerhalb dessen die Funktion „inweektodate“ einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-general.png)

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 von inweektodate

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.<br><br>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`.<br>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:

Verwandte Themen

| Thema | Standardkennzeichen/Wert | Beschreibung |
| --- | --- | --- |
| [FirstWeekDay](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) | 6 / Sonntag | Definiert den Starttag jeder Woche. |

## 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 Anwendungen und Skripte](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Regionale Standardeinstellungen in Anwendungen 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.

Wenn Sie Anwendungsersteller sind, können Sie die Standardregion für die von Ihnen erstellten Anwendungen festlegen. Weitere Informationen finden Sie unter [Festlegen der bevorzugten regionalen Einstellungen für die App-und Skripterstellung in Qlik Cloud Analytics](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Beispiel 1 – keine zusätzlichen Argumente

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inweektodate.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz mit einer eine Reihe von Transaktionen für den Monat Januar 2022, 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.

Ladeskript

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';
SET FirstWeekDay=6;
Transactions:
    Load
        *,
        weekday(date) as week_day,
        inweektodate(date,'01/14/2022', 0) as in_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Ergebnisse

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

| Datum | 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 im vorangehenden load-Befehl 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:

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben ![Diagramm mit dem Datumsbereich, für den die Funktion „inweektodate“ einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-no-add-arg-calendar.png)

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inweektodate.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt 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.

Ladeskript

```
SET FirstWeekDay=6;
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';
Transactions:
    Load
        *,
        weekday(date) as week_day,
        inweektodate(date,'01/14/2022', -1) as prev_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Ergebnisse

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

| Datum | 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.

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben ![Diagramm mit dem Datumsbereich, für den die Funktion „inweektodate“ einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-period-no-calendar.png)

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inweektodate.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt 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.

Ladeskript

```
SET FirstWeekDay=6;
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';

Transactions:
    Load
        *,
        weekday(date) as week_day,
        inweektodate(date,'01/14/2022', 0, 0) as in_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Ergebnisse

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

| Datum | 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.

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben ![Diagramm mit dem Transaktionsdatumsbereich, für den Funktion „inweektodate“ einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-first-week-day-calendar.png)

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inweektodate.htm)

#### Ladeskript und Diagrammformel

Ü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.

Ladeskript

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline
[
id,date,amount
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Ergebnisse

Gehen Sie folgendermaßen vor:

1. Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: date.

2. 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)

3. Um zu zeigen, welcher Tag der Woche jeweils dem Datum entspricht, erstellen Sie eine weitere Kennzahl:

   =weekday(date)

Ergebnistabelle

| Datum | 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:

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben

Das Kalenderdiagramm zeigt Transaktionsdaten, die ein boolesches Ergebnis von TRUE zurückgeben ![Diagramm mit dem Datumsbereich, für den die Funktion „inweektodate“ einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inweektodate-chart-object-calendar.png)

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inweektodate.htm)

#### Ladeskript und Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* 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.

Ladeskript

```
Products:
Load
*
Inline
[
product_id,manufacture_date,cost_price
8188,'2022-01-02 12:22:06',37.23
8189,'2022-01-05 01:02:30',17.17
8190,'2022-01-06 15:36:20',88.27
8191,'2022-01-08 10:58:35',57.42
8192,'2022-01-09 08:53:32',53.80
8193,'2022-01-10 21:13:01',82.06
8194,'2022-01-11 00:57:13',40.39
8195,'2022-01-12 09:26:02',87.21
8196,'2022-01-13 15:05:09',95.93
8197,'2022-01-14 18:44:57',45.89
8198,'2022-01-15 06:10:46',36.23
8199,'2022-01-16 06:39:27',25.66
8200,'2022-01-17 10:44:16',82.77
8201,'2022-01-18 18:48:17',69.98
8202,'2022-01-26 04:36:03',76.11
8203,'2022-01-27 08:07:49',25.12
8204,'2022-01-28 12:24:29',46.23
8205,'2022-01-30 11:56:56',84.21
8206,'2022-01-30 14:40:19',96.24
8207,'2022-01-31 05:28:21',67.67
];
```

Ergebnisse

Gehen Sie folgendermaßen vor:

1. 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)

2. Erstellen Sie dann eine Dimension, um zu identifizieren, welche Produkte mangelhaft und welche einwandfrei sind:

   =if(inWeektodate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless')

3. Erstellen Sie eine Kennzahl zum Summieren des cost\_price der Produkte:

   =sum(cost\_price)

4. Legen Sie das Zahlenformat der Kennzahl auf Währung fest.

Ergebnistabelle

| weekname(manufacture\_date) | if(inweektodate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless') | Sum(cost\_price) |
| --- | --- | --- |
| 2022/02 | Einwandfrei | $200.09 |
| 2022/03 | Defekt | $263.46 |
| 2022/03 | Einwandfrei | $178.05 |
| 2022/04 | Einwandfrei | $178.41 |
| 2022/05 | Einwandfrei | $147.46 |
| 2022/06 | Einwandfrei | $248.12 |

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.