Diese Funktion ermittelt, ob ein Zeitstempel im gleichen Monat, Zweimonatszeitraum, Quartal, Viermonatszeitraum oder Halbjahr wie ein Basisdatum liegt. Es lässt sich auch bestimmen, ob ein Zeitstempel in den vorhergehenden oder nachfolgenden Zeitraum fällt.
In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
Die Funktion inmonths() unterteilt das Jahr in Segmente, gestützt auf das angegebene Argument n_months. Dann bestimmt sie, ob die einzelnen ausgewerteten Zeitstempel in das gleiche Segment wie das Argument base_date fallen. Wenn aber das Argument period_no angegeben wird, bestimmt die Funktion, ob die Zeitstempel in einen Zeitraum vor oder nach dem base_date fallen.
Die folgenden Segmente des Jahres sind in der Funktion als Argumente n_month verfügbar.
Argumente n_month
Zeitraum
Anzahl der Monate
Monat
1
Zweimonatszeitraum
2
Quartal
3
Viermonatszeitraum
4
Halbjahr
6
Verwendung
Die Funktion inmonths() gibt einen booleschen Wert zurück. In der Regel wird dieser Funktionstyp als Bedingung in einer if expression verwendet. Wenn Sie die Funktion inmonths() verwenden, können Sie den Zeitraum auswählen, den Sie auswerten möchten. Sie können dem Benutzer beispielsweise die Möglichkeit geben, Produkte zu identifizieren, die im Monat, Quartal oder Halbjahr eines bestimmten Zeitraums hergestellt wurden.
Rückgabe Datentyp: Boolesch
In Qlik Sense wird der boolesche Wert „wahr“ durch -1 dargestellt, der Wert „falsch“ durch 0.
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.
Sie können die folgenden Werte verwenden, um den ersten Monat des Jahres im Argument first_month_of_year festzulegen.
Werte für first_month_of_year
Monat
Wert
Februar
2
März
3
April
4
Mai
5
Juni
6
Juli
7
August
8
September
9
Oktober
10
November
11
Dezember
12
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
inmonths(4, '01/25/2013', '04/25/2013', 0)
Gibt TRUE zurück. Weil der Wert von timestamp, 01/25/2013, in einen Viermonatszeitraum von 01/01/2013 bis 04/30/2013 fällt, in dem der Wert von base_date, 04/25/2013 liegt.
inmonths(4, '05/25/2013', '04/25/2013', 0)
Gibt FALSE zurück. Weil 05/25/2013 sich außerhalb des im vorhergehenden Beispiel angegebenen Zeitraums befindet.
inmonths(4, '11/25/2012', '02/01/2013', -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 09/01/2012 bis 12/31/2012.
inmonths(4, '05/25/2006', '03/01/2006', 0, 3)
Gibt TRUE zurück. Da der Wert von first_month_of_year auf 3 festgelegt ist, wodurch der Suchzeitraum 03/01/2006 bis 07/30/2006 anstelle von 01/01/2006 bis 04/30/2006 ist.
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 2022 enthält, wird in eine Tabelle namens „Transactions“ geladen.
Eine vorangehende load-Anweisung mit einer zusätzlichen Variablen „in_months“ bestimmt, ob Transaktionen im gleichen Quartal wie der 15. Mai 2022 stattfanden.
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
Ergebnistabelle
date
in_months
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
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“ wird in der vorangehenden load-Anweisung mithilfe der Funktion inmonths() erstellt. Das erste angegebene Argument ist 3. Damit wird das Jahr in Quartalssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird. In diesem Beispiel ist dies das Datumsfeld. Das dritte Argument ist ein hartcodiertes Datum für den 15. Mai, das base_date, und eine period_no von 0 ist das letzte Argument.
Der Monat Mai liegt im zweiten Quartal des Jahres. Daher gibt jede Transaktion, die zwischen dem 1. April und dem 30. Juni stattfindet, ein boolesches Ergebnis von TRUE zurück. Dies wird in der Ergebnistabelle validiert.
Beispiel 2 – period_no
Ü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 2022 enthält, wird in eine Tabelle namens „Transactions“ geladen.
Eine vorangehende load-Anweisung mit einer zusätzlichen Variablen, „previous_quarter“, die bestimmt, ob Transaktionen im Quartal vor dem 15. Mai 2022 stattfanden.
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_quarter
Ergebnistabelle
date
voriges Quartal
2/19/2022
-1
3/7/2022
-1
3/30/2022
-1
4/5/2022
0
4/16/2022
0
5/1/2022
0
5/7/2022
0
5/22/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 Funktion wertet aus, ob Transaktionen im ersten Quartal des Jahres stattfanden. Dafür wird -1 als Argument period_no in der Funktion inmonths() verwendet. Der 15. Mai ist das base_date und liegt im zweiten Quartal des Jahres (April-Juni).
Daher gibt jede Transaktion, die zwischen Januar und März stattfindet, ein boolesches Ergebnis von TRUE zurück.
Beispiel 3 – first_month_of_year
Ü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 2022 enthält, wird in eine Tabelle namens „Transactions“ geladen.
Eine vorangehende load-Anweisung mit einer zusätzlichen Variablen „in_months“ bestimmt, ob Transaktionen im gleichen Quartal wie der 15. Mai 2022 stattfanden.
In diesem Beispiel legt die Organisationsrichtlinie fest, dass März der erste Monat des Geschäftsjahres ist.
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
Ergebnistabelle
date
in_months
2/19/2022
0
3/7/2022
-1
3/30/2022
-1
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
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 inmonths() verwendet wird, beginnt die Funktion das Jahr am 1. März. Die Funktion inmonths() unterteilt dann das Jahr in Quartale: Mär-Mai, Jun-Aug, Sep-Nov, Dez-Feb. Somit fällt der 15. Mai in das erste Quartal des Jahres (Mär-Mai).
Jede Transaktion, die in diesen Monaten stattfindet, gibt 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. Die Berechnung, die bestimmt, ob Transaktionen im gleichen Quartal wie der 15. Mai 2022 stattfanden, wird als Kennzahl in einem Diagramm in der App 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 im selben Quartal wie der 15. Mai stattfanden, erstellen Sie die folgende Kennzahl:
=inmonths(3,date,'05/15/2022', 0)
Ergebnistabelle
date
=inmonths(3,date,'05/15/2022', 0)
2/19/2022
0
3/7/2022
0
3/30/2022
0
4/5/2022
-1
4/16/2022
-1
5/1/2022
-1
5/7/2022
-1
5/22/2022
-1
6/15/2022
-1
6/26/2022
-1
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“ wird im Diagramm mithilfe der Funktion inmonths() erstellt. Das erste angegebene Argument ist 3. Damit wird das Jahr in Quartalssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird. In diesem Beispiel ist dies das Datumsfeld. Das dritte Argument ist ein hartcodiertes Datum für den 15. Mai, das base_date, und eine period_no von 0 ist das letzte Argument.
Der Monat Mai liegt im zweiten Quartal des Jahres. Daher gibt jede Transaktion, die zwischen dem 1. April und dem 30. Juni stattfindet, ein boolesches Ergebnis von TRUE zurück. Dies wird in der Ergebnistabelle validiert.
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
Der Endbenutzer möchte ein Diagramm, das nach Produkttyp die Kosten der im ersten Segment des Jahres 2021 gefertigten Produkte anzeigt. Der Benutzer möchte die Länge dieses Segments definieren können.
Die Funktion inmonths() verwendet die Benutzereingabe als Argument zum Definieren der Größe des Startsegments des Jahres. Die Funktion übergibt das Herstellungsdatum der einzelnen Produkte als das zweite Argument der Funktion inmonths(). Da der 1. Januar als drittes Argument der Funktion inmonths() verwendet wird, geben Produkte mit einem Herstellungsdatum, das in das Anfangssegment des Jahres fällt, einen booleschen Wert von TRUE zurück, und daher addiert die Summenfunktion die Kosten dieser Produkte.
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!