# inmonthstodate - Skript- und Diagrammfunktion

Diese Funktion ermittelt, ob ein Zeitstempel im Teil des Zeitraums von einem Monat, Zweimonatszeitraum, Quartal, Viermonatszeitraum oder Halbjahr liegt, bis einschließlich zur letzten Millisekunde von `base_date`. Es lässt sich auch bestimmen, ob ein Zeitstempel in den vorhergehenden oder nachfolgenden Zeitraum fällt.

Syntax:

InMonths (n\_months, timestamp, base\_date, period\_no[, first\_month\_of\_year ])

Rückgabe Datentyp: Boolesch

Diagramm der Funktion `inmonthstodate`.

Diagramm der Funktion `inmonthstodate`.

Diagramm der Funktion `inmonthstodate`inmonthstodate. ![Das Diagramm zeigt, wie die Funktion „inmonthstodate“ verwendet werden kann, um zu identifizieren, ob ein Zeitstempel innerhalb oder außerhalb eines bestimmten Zeitsegments liegt.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram1.png)

Argumente

| Argument | Beschreibung |
| --- | --- |
| n\_months | Die Anzahl der Monate, die den Zeitraum definiert. Eine Ganzzahl oder eine Formel, die eine Ganzzahl mit einem der folgenden Werte ergibt: 1 (entspricht der Funktion inmonth()), 2 (Zweimonatszeitraum), 3 (entspricht der Funktion inquarter()), 4 (Viermonatszeitraum) oder 6 (Halbjahr). |
| timestamp | Das Datum, das mit base\_date verglichen werden soll. |
| base\_date | Datum, das für die Interpretation des Zeitraums verwendet wird. |
| period\_no | Mit period\_no, einer ganze Zahl oder einer Formel, die eine ganze Zahl ergibt, kann ein anderer Beginn für den Zeitraum festgelegt werden, wobei 0 für den Zeitraum steht, der base\_date enthält. Negative Werte von period\_no stehen für vorangehende, positive Werte für nachfolgende Zeiträume. |
| first\_month\_of\_year | Wenn Sie mit abweichenden Geschäftsjahren arbeiten möchten, definieren Sie mit einer Zahl zwischen 2 und 12 für first\_month\_of\_year einen anderen Startmonat. |

In der Funktion `inmonthstodate()` fungiert das `base_date` als Endpunkt des bestimmten Jahressegments, zu dem es gehört.

Wenn beispielsweise das Jahr in Viermonatssegmente unterteilt wurde und das `base_date` der 15. Mai war, gibt jeder Zeitstempel zwischen Anfang Januar und Ende April ein boolesches Ergebnis von FALSE zurück. Datumswerte zwischen dem 1. und dem 15. Mai geben TRUE zurück. Der Rest des Jahres gibt wiederum FALSE zurück.

Diagramm des booleschen Ergebnisbereichs der Funktion `inmonthstodate`.

Diagramm des booleschen Ergebnisbereichs der Funktion `inmonthstodate`.

Diagramm des booleschen Ergebnisbereichs der Funktion `inmonthstodate`inmonthstodate. ![Das Diagramm zeigt den Bereich der booleschen Ergebnisse der Funktion „inmonthstodate“.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Die folgenden Segmente des Jahres sind in der Funktion als Argumente `n_month` verfügbar.

Argumente `n_month`n\_month

| Zeitraum | Anzahl der Monate |
| --- | --- |
| Monat | 1 |
| Zweimonatszeitraum | 2 |
| Quartal | 3 |
| vier Monate | 4 |
| Halbjahr | 6 |

Verwendung

Die Funktion `inmonthstodate()` gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einer `if expression` verwendet. Wenn Sie die Funktion `inmonthstodate()` verwenden, können Sie den Zeitraum auswählen, den Sie auswerten möchten. Sie können beispielsweise eine Eingabevariable angeben, damit der Benutzer Produkte identifizieren kann, die im Monat, Quartal oder Halbjahr eines Zeitraums bis zu einem bestimmten Datum hergestellt wurden.

## 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 |
| --- | --- |
| `inmonthstodate(4, '01/25/2013', '04/25/2013',<br>0)` | Gibt True zurück, weil der Wert von timestamp (01/25/2013) in dem Viermonatszeitraum 01/01/2013 bis zum Ende von 04/25/2013 liegt, in dem der Wert von base\_date (04/25/2013) liegt. |
| `inmonthstodate(4, '04/26/2013', '04/25/2006',<br>0)` | Gibt False zurück, weil 04/26/2013 sich außerhalb des im vorhergehenden Beispiel angegebenen Zeitraums befindet. |
| `inmonthstodate(4, '09/25/2005', '02/01/2006',<br>-1)` | Gibt True zurück, weil der Wert von period\_no (-1) den Suchzeitraum um einen Zeitraum von vier Monaten (den Wert von n-months) nach hinten verschiebt. Dadurch ergibt sich der Suchzeitraum 01/09/2005 bis 02/01/2006. |
| `inmonthstodate(4, '04/25/2006', '06/01/2006',<br>0, 3)` | Gibt True zurück, weil der Wert von first\_month\_of\_year auf 3 festgelegt ist, weshalb der Suchzeitraum 03/01/2006 bis 06/01/2006 anstelle von 05/01/2006 bis 06/01/2006 wird. |

## Beispiel 1 – keine zusätzlichen Argumente

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inmonthstodate.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 Reihe von Transaktionen für 2022, der in eine Tabelle namens „`Transactions`“ geladen wird

* Datumsfeld im Format `(MM/DD/YYYY)` der Systemvariablen `DateFormat`

* Ein vorangehender load-Befehl, der Folgendes enthält:

  * Die Funktion `inmonthstodate()`, die als das Feld „`in_months_to_date`“ festgelegt ist. Dies bestimmt, welche Transaktionen im Quartal bis zum 15. Mai 2022 stattgefunden haben.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',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`
* `in_months_to_date`

Ergebnistabelle

| Datum | in\_months\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Das Feld „`in_months_to_date`“ wird in der vorangehenden load-Anweisung mithilfe der Funktion `inmonthstodate()` erstellt.

Das erste angegebene Argument ist `3`. Damit wird das Jahr in Quartalssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird. Das dritte Argument ist ein hartcodiertes Datum, der 15. Mai. Dies ist das `base_date`, das die Endbegrenzung dieses Segments definiert. Eine `period_no` von `0` ist das abschließende Argument.

Diagramm der Funktion `inmonthstodate` ohne zusätzlichen Argumente.

Diagramm der Funktion `inmonthstodate` ohne zusätzlichen Argumente.

Diagramm der Funktion `inmonthstodate`inmonthstodate ohne zusätzlichen Argumente. ![Das Diagramm zeigt den Bereich der Transaktionen, die von der Funktion „inmonthstodate“ als TRUE identifiziert werden.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-diagram2.png)

Jede Transaktion, die zwischen dem 1. April und dem 15. Mai stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Transaktionsdatumswerte außerhalb dieses Zeitraums geben FALSE zurück.

## Beispiel 2 – period\_no

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

#### Ladeskript und Ergebnisse

Übersicht

Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel besteht die Aufgabe aber darin, ein Feld „`previous_qtr_to_date`“ zu erstellen, das bestimmt, ob die Transaktionen in einem Quartal vor dem 15. Mai stattfanden.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', -1) as previous_qtr_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',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`

* `previous_qtr_to_date`

Ergebnistabelle

| Datum | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | -1 |
| 1/19/2022 | -1 |
| 2/5/2022 | -1 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | 0 |
| 5/7/2022 | 0 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Da `-1` als das Argument `period_no` in der Funktion `inmonthstodate()` verwendet wird, verschiebt die Funktion die Grenzen des Vergleichsjahressegments um ein Quartal.

Der 15. Mai fällt in das zweite Quartal des Jahres, sodass das Segment anfänglich dem Zeitraum vom 1. April bis zum 15. Mai entspricht. Das Argument `period_no` versetzt dieses Segment um negative drei Monate. Die Datumsgrenzen sind jetzt der 1. Januar bis zum 15. Februar.

Diagramm der Funktion `inmonthstodate`, wobei „period\_no“ auf -1 festgelegt ist.

Diagramm der Funktion `inmonthstodate`, wobei „period\_no“ auf -1 festgelegt ist.

Diagramm der Funktion `inmonthstodate`inmonthstodate, wobei „period\_no“ auf -1 festgelegt ist. ![Das Diagramm zeigt den Bereich der Transaktionen, wenn das Argument für „period_no“ auf -1 festgelegt ist.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example2-diagram.png)

Daher gibt jede Transaktion, die zwischen dem 1. Januar und 15. Februar stattfindet, ein boolesches Ergebnis von TRUE zurück.

## Beispiel 3 – first\_month\_of\_year

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

#### Ladeskript und Ergebnisse

Übersicht

Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel legt die Organisationsrichtlinie fest, dass März der erste Monat des Geschäftsjahres ist.

Erstellen Sie ein Feld „`in_months_to_date`“, das bestimmt, welche Transaktionen im gleichen Quartal bis zum 15. Mai 2022 stattgefunden haben.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    inmonthstodate(3,date,'05/15/2022', 0,3) as in_months_to_date 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',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`

* `in_months_to_date`

Ergebnistabelle

| Datum | previous\_qtr\_to\_date |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | -1 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Da `3` als Argument `first_month_of_year` in der Funktion `inmonthstodate()` verwendet wird, beginnt die Funktion das Jahr am 1. März und unterteilt dann das Jahr basierend auf dem ersten angegebenen Argument in Quartale. Daher lauten die Quartalssegmente wie folgt:

* Mär-Mai

* Jun-Aug

* Sep-Nov

* Dez-Feb

Das `base_date` vom 15. Mai segmentiert dann das Quartal Mär-Mai, indem seine Endgrenze als 15. Mai festgelegt wird.

Diagramm der Funktion `inmonthstodate` mit März als erstem Monat des Jahres.

Diagramm der Funktion `inmonthstodate` mit März als erstem Monat des Jahres.

Diagramm der Funktion `inmonthstodate`inmonthstodate mit März als erstem Monat des Jahres. ![Das Diagramm zeigt den Bereich der Transaktionen, wenn der erste Monat des Jahres auf März festgelegt ist.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example3-diagram.png)

Hier gibt jede Transaktion, die zwischen dem 1. März und dem 15. Mai 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 – Diagrammbeispiel

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

#### Ladeskript und Diagrammformel

Übersicht

Es werden derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel verwendet.

In diesem Beispiel wird der unveränderte Datensatz in die App geladen. Die Aufgabe besteht im Erstellen einer Berechnung, die bestimmt, ob Transaktionen im gleichen Quartal wie der 15. Mai stattfanden. Sie wird als Kennzahl in einem Diagramm in der App erstellt.

Ladeskript

```
SET DateFormat='MM/DD/YYYY'; 
						 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'1/19/2022',37.23 
8189,'1/7/2022',17.17 
8190,'2/28/2022',88.27 
8191,'2/5/2022',57.42 
8192,'3/16/2022',53.80 
8193,'4/1/2022',82.06 
8194,'5/7/2022',40.39 
8195,'5/16/2022',87.21 
8196,'6/15/2022',95.93 
8197,'6/26/2022',45.89 
8198,'7/9/2022',36.23 
8199,'7/22/2022',25.66 
8200,'7/23/2022',82.77 
8201,'7/27/2022',69.98 
8202,'8/2/2022',76.11 
8203,'8/8/2022',25.12 
8204,'8/19/2022',46.23 
8205,'9/26/2022',84.21 
8206,'10/14/2022',96.24 
8207,'10/29/2022',67.67 
]; 
```

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 Transaktionen im selben Quartal wie der 15. Mai stattfanden, erstellen Sie die folgende Kennzahl:

`=inmonthstodate(3,date,'05/15/2022', 0)`` `

Ergebnistabelle

| Datum | =inmonthstodate(3,date,'05/15/2022', 0) |
| --- | --- |
| 1/7/2022 | 0 |
| 1/19/2022 | 0 |
| 2/5/2022 | 0 |
| 2/28/2022 | 0 |
| 3/16/2022 | 0 |
| 4/1/2022 | -1 |
| 5/7/2022 | -1 |
| 5/16/2022 | 0 |
| 6/15/2022 | 0 |
| 6/26/2022 | 0 |
| 7/9/2022 | 0 |
| 7/22/2022 | 0 |
| 7/23/2022 | 0 |
| 7/27/2022 | 0 |
| 8/2/2022 | 0 |
| 8/8/2022 | 0 |
| 8/19/2022 | 0 |
| 9/26/2022 | 0 |
| 10/14/2022 | 0 |
| 10/29/2022 | 0 |

Die Kennzahl „`‘in_months_to_date`“ wird im Diagramm anhand der Funktion `inmonthstodate()` erstellt.

Das erste angegebene Argument ist `3`. Damit wird das Jahr in Quartalssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird. Das dritte Argument ist ein hartcodiertes Datum, der 15. Mai. Dies ist das `base_date`, das die Endbegrenzung dieses Segments definiert. Eine `period_no` von `0` ist das abschließende Argument.

Diagramm der Funktion `inmonthstodate` mit Quartalssegmenten.

Diagramm der Funktion `inmonthstodate` mit Quartalssegmenten.

Diagramm der Funktion `inmonthstodate`inmonthstodate mit Quartalssegmenten.![Das Diagramm zeigt den Bereich der Transaktionen, die einen booleschen Wert von TRUE zurückgeben.](https://help.qlik.com/de-DE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inmonthstodate-example4-diagram.png)

Jede Transaktion, die zwischen dem 1. April und dem 15. Mai stattfindet, gibt ein boolesches Ergebnis von TRUE zurück. Transaktionsdatumswerte außerhalb dieses Segments geben FALSE zurück.

## Beispiel 5 – Szenario

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

#### Ladeskript und Ergebnisse

Übersicht

In diesem Beispiel wird ein Datensatz in eine Tabelle namens „Sales“ geladen. Die Tabelle enthält die folgenden Felder:

* Produkt-ID

* Produkttyp

* Verkaufsdatum

* Verkaufspreis

Der Endbenutzer möchte ein Diagramm, das nach Produkttyp den Umsatz von Produkten zeigt, die im Zeitraum bis zum 24. Dezember 2022 verkauft werden. Der Benutzer möchte die Länge dieses Zeitraums definieren können.

Ladeskript

```
SET vPeriod = 1; 

Products: 
Load 
* 
Inline  
[ 
product_id,product_type,sales_date,sales_price 
8188,product A,'9/19/2022',37.23 
8189,product D,'10/27/2022',17.17 
8190,product C,'10/30/2022',88.27 
8191,product B,'10/31/2022',57.42 
8192,product D,'11/16/2022',53.80 
8193,product D,'11/28/2022',82.06 
8194,product A,'12/2/2022',40.39 
8195,product B,'12/5/2022',87.21 
8196,product C,'12/15/2022',95.93 
8197,product B,'12/16/2022',45.89 
8198,product C,'12/19/2022',36.23 
8199,product D,'12/22/2022',25.66 
8200,product D,'12/23/2022',82.77 
8201,product A,'12/24/2022',69.98 
8202,product A,'12/24/2022',76.11 
8203,product B,'12/26/2022',25.12 
8204,product B,'12/27/2022',46.23 
8205,product B,'12/27/2022',84.21 
8206,product C,'12/28/2022',96.24 
8207,product D,'12/29/2022',67.67 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt.

Am Beginn des Ladeskripts wurde eine Variable (vPeriod) erstellt, die an die Variableneingabesteuerung gebunden wird.

Gehen Sie folgendermaßen vor:

1. Klicken Sie im Extras-Fenster auf Benutzerdefinierte Objekte.

2. Wählen Sie das Qlik Dashboard Bundle aus und fügen Sie eine Variableneingabe zu Ihrem Arbeitsblatt hinzu.

3. Geben Sie einen Titel für das Diagramm ein.

4. Wählen Sie unter Variable den Eintrag vPeriod als den Namen aus und legen Sie das Objekt so fest, dass es als Dropdown angezeigt wird.

5. Klicken Sie unter Werte auf Dynamisch. Geben Sie Folgendes ein:

   ```
   ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'.
   ```

6. Fügen Sie eine neue Tabelle zum Arbeitsblatt hinzu.

7. Fügen Sie im Eigenschaftsfenster unter Daten das Feld product\_type als Dimension hinzu.

8. Fügen Sie die folgende Formel als Kennzahl hinzu:

   =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0))

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

Ergebnistabelle

| product\_type | =sum(if(inmonthstodate($(vPeriod),sales\_date,makedate(2022,12,24),0),sales\_price,0)) |
| --- | --- |
| Produkt A | $186.48 |
| Produkt B | $190.52 |
| Produkt C | $220.43 |
| Produkt D | $261.46 |

Die Funktion inmonthstodate() verwendet die Benutzereingabe als Argument zum Definieren der Größe des Startsegments des Jahres.

Die Funktion übergibt das Verkaufsdatum der einzelnen Produkte als das zweite Argument der Funktion inmonthstodate(). Da der 24. Dezember als drittes Argument in der Funktion inmonthstodate() verwendet wird, geben Produkte mit einem Verkaufsdatum im definierten Zeitraum bis einschließlich 24. Dezember einen booleschen Wert von TRUE zurück. Die Summenfunktion addiert die Verkäufe dieser Produkte.