# inlunarweek Skript- und Diagrammfunktion

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.

Syntax:

InLunarWeek (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.

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.

Diagramm der Funktion `inlunarweek()`

Diagramm der Funktion `inlunarweek()`

Diagramm der Funktion `inlunarweek()`inlunarweek() ![Beispieldiagramm für die Funktion „inlunarweek“, die die Datumswerte zeigt, für die die Funktion gestützt auf die Eingabeinformationen einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-overview.png)

## Verwendung von inlunarweek

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',<br>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',<br>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',<br>-1)` | Liefert `FALSE`. 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',<br>-1)` | Liefert `TRUE`. 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',<br>0, 3)` | Liefert `FALSE`. 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:

Verwandte Funktionen

| Funktion | Interaktion |
| --- | --- |
| [lunarweekname Skript- und Diagrammfunktion](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | 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 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

#### Ladeskript und Ergebnisse

Übersicht

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

Das Ladeskript umfasst:

* Ein Datensatz mit Transaktionen für den Monat Januar wird in eine Tabelle namens `Transactions` geladen.

* Das Datumsfeld wurde im Format der Systemvariablen `DateFormat` (MM/TT/JJJJ) bereitgestellt.

Erstellen Sie ein Feld `in_lunar_week`, das bestimmt, ob die Transaktionen in der gleichen Mondwoche wie der 10. Januar stattfanden.

Ladeskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0) as in_lunar_week
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

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`

* `in_lunar_week`

Ergebnistabelle

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

Funktion `inlunarweek()`, einfaches Beispiel

Funktion `inlunarweek()`, einfaches Beispiel

Funktion `inlunarweek()`inlunarweek(), einfaches Beispiel ![Beispiel für die Verwendung der Funktion „inlunarweek“, die den Datumsbereich zeigt, für den die Funktion aufgrund der Eingabeinformationen einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-basic-example.png)

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

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

#### Beispiele 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.

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

Ladeskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 2) as [2_lunar_weeks_later]
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

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`

* `2_lunar_weeks_later`

Ergebnistabelle

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

Funktion `inlunarweek()`, Beispiel „period\_no“

Funktion `inlunarweek()`, Beispiel „period\_no“

Funktion `inlunarweek()`inlunarweek(), Beispiel „period\_no“ ![Funktion „inlunarweek“, Beispiel „period_no“](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-period-no.png)

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

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

#### Ladeskript und Ergebnisse

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

Ladeskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0,5) as in_lunar_week
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

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`

* `in_lunar_week`

Ergebnistabelle

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

Funktion `inlunarweek()`, Beispiel „first\_week\_day“

Funktion `inlunarweek()`, Beispiel „first\_week\_day“

Funktion `inlunarweek()`inlunarweek(), Beispiel „first\_week\_day“ ![Beispiel für die Verwendung der Funktion „inlunarweek“, die den Datumsbereich zeigt, für den die Funktion aufgrund der Eingabeinformationen einen Wert von TRUE zurückgibt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-first-week-day.png)

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

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

#### Ladeskript und Diagrammformel:

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

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

Ladeskript

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

Transactions:
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Ergebnisse

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

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweek.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 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.

Ladeskript

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

Transactions:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Ergebnisse

Gehen Sie folgendermaßen vor:

1. Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle.

2. Erstellen Sie eine Dimension, um die Monatsnamen anzuzeigen:

   =lunarweekname(manufacture\_date)

3. Erstellen Sie eine Kennzahl, um zu identifizieren, welche Produkte mangelhaft und welche einwandfrei sind. Verwenden Sie dafür die Funktion inlunarweek():

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

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

   =sum(cost\_price)

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

6. Deaktivieren Sie unter Darstellung die Option Gesamtwerte.

Ergebnistabelle

| lunarweekname(manufacture\_date) | =if(only(inlunarweek(manufacture\_date,makedate(2022,01,12),0)), 'Defective','Faultless') | sum(cost\_price) |
| --- | --- | --- |
| 2022/01 | Einwandfrei | $125.79 |
| 2022/02 | Defekt | $316.38 |
| 2022/03 | Einwandfrei | $455.75 |
| 2022/04 | Einwandfrei | $146.09 |

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.