Diese Funktion gibt einen Wert zurück, der einem Zeitstempel für die erste Millisekunde im Monat, Zweimonatszeitraum, Quartal, Viermonatszeitraum oder Halbjahr entspricht, in dem ein Basisdatum liegt. Es lässt sich auch der Zeitstempel für einen vorhergehenden oder nachfolgenden Zeitraum bestimmen.Das Standardausgabeformat ist das im Skript definierte DateFormat.
Die Funktion monthsstart() unterteilt das Jahr in Segmente, gestützt auf das angegebene Argument n_months. Dann wertet sie aus, in welches Segment jedes angegebene Datum fällt, und gibt die erste Millisekunde dieses Segments im Datumsformat zurück. Die Funktion bietet auch die Möglichkeit, den Startzeitstempel der vorangehenden oder darauffolgenden Segmente zurückzugeben und neu zu definieren, welcher der erste Monat des Jahres ist.
Die folgenden Segmente des Jahres sind in der Funktion als n_month-Argumente verfügbar:
Mögliche n_month-Argumente
Zeiträume
Anzahl der Monate
Monat
1
Zweimonatszeitraum
2
Quartal
3
Viermonatszeitraum
4
Halbjahr
6
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).
date
Datum oder Zeitstempel für die Evaluierung.
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.
Verwendung
Die Funktion monthsstart() wird in der Regel als Teil einer Formel verwendet, wenn in der Berechnung der Teil eines Zeitraums verwendet werden soll, der noch nicht eingetreten ist. Beispielsweise kann damit eine Eingabevariable angegeben werden, mit der der Benutzer die gesamten während des Monats, Quartals oder Halbjahres aufgelaufenen Zinsen berechnen kann.
Funktionsbeispiele
Beispiel
Ergebnis
monthsstart(4, '10/19/2013')
Gibt 09/01/2013 zurück.
monthsstart(4, '10/19/2013, -1)
Gibt 05/01/2013 zurück.
monthsstart(4, '10/19/2013', 0, 2
)
Gibt 10/01/2013 zurück, weil Monat 2 zum Start des Jahres wird.
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 Apps und Skripte.
Regionale Standardeinstellungen in Apps 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.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz enthält eine Reihe von Transaktionen für 2022 und wird in eine Tabelle namens Transactions geladen.
Das Datumsfeld wird im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
Es wird ein Feld bi_monthly_start erstellt, das Transaktionen in Zweimonatssegmenten gruppiert und den Startzeitstempel des Segments für jede Transaktion zurückgibt.
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
bi_monthly_start
bi_monthly_start_timestamp
Ergebnistabelle
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
01/01/2022
1/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
Das Feld „bi_monthly_start“ wird im vorangehenden load-Befehl mithilfe der Funktion monthsstart() erstellt. Das erste angegebene Argument ist 2. Damit wird das Jahr in Zweimonatssegmente unterteilt. Das zweite Argument identifiziert, welches Feld ausgewertet wird.
Transaktion 8195 findet am 22. Mai statt. Die Funktion monthsstart() unterteilt das Jahr zunächst in Zweimonatssegmente. Transaktion 8195 fällt in das Segment zwischen dem 1. Mai und dem 30. Juni. Daher gibt die Funktion die erste Millisekunde dieses Segments zurück, den 1. Mai 2022 um 12:00:00 AM.
Beispiel 2 – period_no
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld prev_bi_monthly_start erstellt, das die erste Millisekunde des Zweimonatssegments zurückgibt, bevor die Transaktion stattfand.
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
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
Ergebnistabelle
date
prev_bi_monthly_start
prev_bi_monthly_start_timestamp
2/19/2022
11/01/2021
11/1/2021 12:00:00 AM
3/7/2022
01/01/2022
1/1/2022 12:00:00 AM
3/30/2022
01/01/2022
1/1/2022 12:00:00 AM
4/5/2022
01/01/2022
1/1/2022 12:00:00 AM
4/16/2022
01/01/2022
1/1/2022 12:00:00 AM
5/1/2022
03/01/2022
3/1/2022 12:00:00 AM
5/7/2022
03/01/2022
3/1/2022 12:00:00 AM
5/22/2022
03/01/2022
3/1/2022 12:00:00 AM
6/15/2022
03/01/2022
3/1/2022 12:00:00 AM
6/26/2022
03/01/2022
3/1/2022 12:00:00 AM
7/9/2022
05/01/2022
5/1/2022 12:00:00 AM
7/22/2022
05/01/2022
5/1/2022 12:00:00 AM
7/23/2022
05/01/2022
5/1/2022 12:00:00 AM
7/27/2022
05/01/2022
5/1/2022 12:00:00 AM
8/2/2022
05/01/2022
5/1/2022 12:00:00 AM
8/8/2022
05/01/2022
5/1/2022 12:00:00 AM
8/19/2022
05/01/2022
5/1/2022 12:00:00 AM
9/26/2022
07/01/2022
7/1/2022 12:00:00 AM
10/14/2022
07/01/2022
7/1/2022 12:00:00 AM
10/29/2022
07/01/2022
7/1/2022 12:00:00 AM
Da -1 als Argument period_no in der Funktion monthsstart() verwendet wird, gibt die Funktion, nachdem ein Jahr zunächst in Zweimonatssegmente unterteilt wurde, die erste Millisekunde des vorherigen Zweimonatssegments vor einer Transaktion zurück.
Transaktion 8195 fällt in das Segment zwischen dem Mai und Juni. Somit war das vorherige Zweimonatssegment der 1. März bis 30. April, und die Funktion gibt die erste Millisekunde dieses Segments zurück, den 1. März 2022 um 12:00:00 AM.
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:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld bi_monthly_start erstellt, das Transaktionen in Zweimonatssegmenten gruppiert und den Startzeitstempel des Satzes für jede Transaktion zurückgibt.
In diesem Beispiel müssen wir aber zudem April als ersten Monat im Geschäftsjahr festlegen.
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
bi_monthly_start
bi_monthly_start_timestamp
Ergebnistabelle
date
bi_monthly_start
bi_monthly_start_timestamp
2/19/2022
02/01/2022
2/1/2022 12:00:00 AM
3/7/2022
02/01/2022
2/1/2022 12:00:00 AM
3/30/2022
02/01/2022
2/1/2022 12:00:00 AM
4/5/2022
04/01/2022
4/1/2022 12:00:00 AM
4/16/2022
04/01/2022
4/1/2022 12:00:00 AM
5/1/2022
04/01/2022
4/1/2022 12:00:00 AM
5/7/2022
04/01/2022
4/1/2022 12:00:00 AM
5/22/2022
04/01/2022
4/1/2022 12:00:00 AM
6/15/2022
06/01/2022
6/1/2022 12:00:00 AM
6/26/2022
06/01/2022
6/1/2022 12:00:00 AM
7/9/2022
06/01/2022
6/1/2022 12:00:00 AM
7/22/2022
06/01/2022
6/1/2022 12:00:00 AM
7/23/2022
06/01/2022
6/1/2022 12:00:00 AM
7/27/2022
06/01/2022
6/1/2022 12:00:00 AM
8/2/2022
08/01/2022
8/1/2022 12:00:00 AM
8/8/2022
08/01/2022
8/1/2022 12:00:00 AM
8/19/2022
08/01/2022
8/1/2022 12:00:00 AM
9/26/2022
08/01/2022
8/1/2022 12:00:00 AM
10/14/2022
10/01/2022
10/1/2022 12:00:00 AM
10/29/2022
10/01/2022
10/1/2022 12:00:00 AM
Indem 4 als Argument first_month_of_year in der Funktion monthsstart() verwendet wird, beginnt die Funktion das Jahr am 1. April und unterteilt dann das Jahr in Zweimonatssegmente: Apr-May,Jun-Jul,Aug-Sep,Oct-Nov,Dec-Jan,Feb-Mar.
Transaktion 8195 fand am 22. Mai statt und fällt in das Segment zwischen dem 1. April und dem 31. Mai. Daher gibt die Funktion die erste Millisekunde dieses Segments zurück, den 1. April 2022 um 12:00:00 AM.
Beispiel 4 – Diagrammobjektbeispiel
Ü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 Transaktionen in Zweimonatssegmenten gruppiert und den Startzeitstempel für den Satz für jede Transaktion zurückgibt, wird als Kennzahl in einem Diagrammobjekt der Anwendung 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.
Erstellen Sie die folgenden Kennzahlen:
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
Mit diesen Berechnungen wird der Startzeitstempel des Zweimonatssegments abgerufen, in dem jede Transaktion stattfand.
Ergebnistabelle
date
=monthsstart(2,date)
=timestamp(monthsstart(2,date))
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
5/1/2022
05/01/2022
5/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/22/2022
05/01/2022
5/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
3/7/2022
03/01/2022
3/1/2022 12:00:00 AM
3/30/2022
03/01/2022
3/1/2022 12:00:00 AM
4/5/2022
03/01/2022
3/1/2022 12:00:00 AM
4/16/2022
03/01/2022
3/1/2022 12:00:00 AM
2/19/2022
01/01/2022
1/1/2021 12:00:00 AM
Transaktion 8195 fand am 22. Mai statt. Die Funktion monthsstart() unterteilt das Jahr zunächst in Zweimonatssegmente. Transaktion 8195 fällt in das Segment zwischen dem 1. Mai und dem 30. Juni. Daher gibt die Funktion die erste Millisekunde dieses Segments zurück, 05/01/2022 um 12:00:00 AM.
Beispiel 5 – Szenario
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz mit einer Reihe von Darlehenssalden wird in eine Tabelle namens Loans geladen.
Die Daten bestehen aus der Darlehens-ID, dem Saldo zum Monatsbeginn und dem einfachen Zinssatz, der für jedes Darlehen pro Jahr berechnet wird.
Der Endbenutzer möchte ein Diagrammobjekt, das nach Darlehens-ID die aktuellen Zinsen anzeigt, die für jedes Darlehen im ausgewählten Zeitraum aufgelaufen sind. Das Geschäftsjahr beginnt im Januar.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt.
Am Beginn des Ladeskripts wurde eine Variable (vPeriod) erstellt, die an die Variableneingabesteuerung gebunden wird. Dann wird die Variable als benutzerdefiniertes Objekt auf dem Arbeitsblatt konfiguriert.
Gehen Sie folgendermaßen vor:
Klicken Sie im Extras-Fenster auf Benutzerdefinierte Objekte.
Wählen Sie Qlik Dashboard Bundle aus und erstellen Sie ein Objekt Variableneingabe.
Geben Sie einen Titel für das Diagrammobjekt ein.
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.
Konfigurieren Sie unter Werte das Objekt für die Verwendung von dynamischen Werten. Geben Sie Folgendes ein: ='1~month|2~bi-month|3~quarter|4~tertial|6~half-year'
Erstellen Sie dann die Ergebnistabelle.
Gehen Sie folgendermaßen vor:
Erstellen Sie eine neue Tabelle. Fügen Sie die folgenden Felder als Dimensionen hinzu:
employee_id
employee_name
Erstellen Sie eine Kennzahl, um die kumulierten Zinsen zu berechnen:
Legen Sie das Zahlenformat der Kennzahl auf Währung fest. Klicken Sie auf Bearbeitung fertig. Jetzt können Sie das in der Tabelle angezeigte Datum ändern, indem Sie das Zeitsegment im Variablenobjekt anpassen.
Die Ergebnistabelle sieht wie folgt aus, wenn die Zeitraumoption month ausgewählt wird:
Die Funktion monthsstart() verwendet die Benutzereingabe als erstes Argument und das aktuelle Datum als zweites Argument. Dann gibt sie das Startdatum des vom Benutzer ausgewählten Zeitraums zurück. Die Formel zieht dieses Ergebnis vom aktuellen Datum ab und gibt die Anzahl der Tage zurück, die bisher in diesem Zeitraum verstrichen sind.
Dieser Wert wird dann mit dem Zinssatz multipliziert und durch 365 geteilt, um den effektiven Zinssatz für diesen Zeitraum zurückzugeben. Das Ergebnis wird dann mit dem Anfangssaldo des Darlehens multipliziert, was die Zinsen ergibt, die bislang in diesem Zeitraum aufgelaufen sind.
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!