Diese Funktion liefert einen Anzeigewert, der den Bereich der Monate des Zeitraums (formatiert nach der MonthNames-Skriptvariable) sowie das Jahr darstellt. Der zugrunde liegende numerische Wert entspricht dem Zeitstempel der ersten Millisekunde des Monats, Zweimonatszeitraums, Quartals, Viermonatszeitraums oder Halbjahrs, in dem ein Basisdatum liegt.
Die Funktion monthsname() unterteilt das Jahr in Segmente, gestützt auf das angegebene Argument n_months. Dann wertet sie das Segment aus, zu dem jedes angegebene date gehört, und gibt die Namen des Start- und Endmonats für dieses Segment sowie das Jahr zurück. Die Funktion bietet auch die Möglichkeit, diese Grenzen aus vorangehenden oder darauffolgenden Segmenten 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 monthsname() ist nützlich, wenn Sie dem Benutzer die Möglichkeit geben möchten, Aggregierungen für einen selbst gewählten Zeitraum zu vergleichen. Sie können beispielsweise eine Eingabevariable bereitstellen, damit der Benutzer den Gesamtumsatz von Produkten nach Monat, Quartal oder Halbjahr anzeigen kann.
Diese Dimensionen können entweder im Ladeskript erstellt werden, indem die Funktion als Feld in einer Master-Kalender-Tabelle hinzugefügt wird, oder indem die Dimension direkt in einem Diagramm als berechnete Dimension erstellt wird.
Funktionsbeispiele
Beispiel
Ergebnis
monthsname(4, '10/19/2013')
Gibt „Sep-Dec 2013“ zurück. In diesem und den anderen Beispielen ist die Anweisung SET Monthnames auf Jan;Feb;Mar usw. festgelegt.
monthsname(4, '10/19/2013', -1)
Gibt „May-Aug 2013“ zurück.
monthsname(4, '10/19/2013', 0, 2)
Gibt „Oct-Jan 2014“ zurück, da festgelegt ist, dass das Jahr im Monat 2 beginnt. Daher endet der Viermonatszeitraum im ersten Monat des Folgejahres.
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.
Beispiel 1 – einfaches Beispiel
Übersicht
Ö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.
Die Erstellung eines Felds bi_monthly_range, das Transaktionen in Zweimonatssegmenten gruppiert und die Grenznamen dieses 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_range
Ergebnistabelle
date
bi_monthly_range
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
Das Feld „bi_monthly_range“ wird im vorangehenden load-Befehl mithilfe der Funktion monthsname() 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 monthsname() 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 diese Monate im Systemvariablenformat MonthNames sowie das Jahr zurück: May-Jun 2022.
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 Inline-Datensatz und dasselbe Szenario wie im ersten Beispiel.
Die Erstellung eines Felds prev_bi_monthly_range, das Transaktionen in Zweimonatssegmenten gruppiert und die Grenznamen des vorherigen Segments für jede Transaktion zurückgibt.
Fügen Sie bei Bedarf hier weiteren Text mit Listen usw. hinzu.
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_range
Ergebnistabelle
date
prev_bi_monthly_range
2/19/2022
Nov-Dec 2021
3/7/2022
Jan-Feb 2022
3/30/2022
Jan-Feb 2022
4/5/2022
Jan-Feb 2022
4/16/2022
Jan-Feb 2022
5/1/2022
Mar-Apr 2022
5/7/2022
Mar-Apr 2022
5/22/2022
Mar-Apr 2022
6/15/2022
Mar-Apr 2022
6/26/2022
Mar-Apr 2022
7/9/2022
May-Jun 2022
7/22/2022
May-Jun 2022
7/23/2022
May-Jun 2022
7/27/2022
May-Jun 2022
8/2/2022
May-Jun 2022
8/8/2022
May-Jun 2022
8/19/2022
May-Jun 2022
9/26/2022
Jul-Aug 2022
10/14/2022
Jul-Aug 2022
10/29/2022
Jul-Aug 2022
In diesem Beispiel wird -1 als Argument period_no in der Funktion monthsname() verwendet. Nachdem ein Jahr zunächst in Zweimonatssegmente unterteilt wurde, gibt die Funktion dann die Segmentgrenzen vor dem Zeitpunkt zurück, an dem eine Transaktion stattfindet.
Transaktion 8195 fällt in das Segment zwischen dem Mai und Juni. Daher lag das vorherige Zweimonatssegment zwischen dem 1. März und dem 30. April, und die Funktion gibt „Mar-Apr 2022“ 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:
Derselbe Inline-Datensatz und dasselbe Szenario wie im ersten Beispiel.
Die Erstellung eines weiteren Felds bi_monthly_range, das Transaktionen in Zweimonatssegmenten gruppiert und die Segmentgrenzen 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_range
Ergebnistabelle
date
bi_monthly_range
2/19/2022
Feb-Mar 2021
3/7/2022
Feb-Mar 2021
3/30/2022
Feb-Mar 2021
4/5/2022
Apr-May 2022
4/16/2022
Apr-May 2022
5/1/2022
Apr-May 2022
5/7/2022
Apr-May 2022
5/22/2022
Apr-May 2022
6/15/2022
Jun-Jul 2022
6/26/2022
Jun-Jul 2022
7/9/2022
Jun-Jul 2022
7/22/2022
Jun-Jul 2022
7/23/2022
Jun-Jul 2022
7/27/2022
Jun-Jul 2022
8/2/2022
Aug-Sep 2022
8/8/2022
Aug-Sep 2022
8/19/2022
Aug-Sep 2022
9/26/2022
Aug-Sep 2022
10/14/2022
Oct-Nov 2022
10/29/2022
Oct-Nov 2022
Indem 4 als Argument first_month_of_year in der Funktion monthsname() 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.
Absatztext für Ergebnisse.
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 „Apr-May 2022“ zurück..
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 Inline-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 die Segmentgrenzen 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 folgende Kennzahl:
=monthsname(2,date)
Ergebnistabelle
date
=monthsname(2,date)
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
Das Feld bi_monthly_range wird als Kennzahl im Diagrammobjekt mithilfe der Funktion monthsname() 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 monthsname() 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 diese Monate im Systemvariablenformat MonthNames sowie das Jahr zurück: May-Jun 2022.
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, der Transaktionen für 2022 enthält und der in eine Tabelle namens Transactions geladen wird.
Das Datumsfeld wurde im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
Der Endbenutzer möchte ein Diagrammobjekt, das den Gesamtumsatz nach einem selbst gewählten Zeitraum anzeigt. Dies ist selbst dann möglich, wenn diese Dimension nicht im Datenmodell verfügbar ist. In diesem Fall wird die Funktion monthsname() als berechnete Dimension verwendet, die durch eine Variableneingabesteuerung dynamisch geändert wird.
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:
Erstellen Sie eine neue Tabelle und fügen Sie die folgende berechnete Dimension hinzu:
=monthsname($(vPeriod),date)
Fügen Sie diese Kennzahl hinzu, um den Gesamtumsatz zu berechnen:
=sum(amount)
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 Option tertial ausgewählt wird:
Ergebnistabelle
monthsname($(vPeriod),date)
=sum(amount)
Jan-Apr 2022
253.89
May-Aug 2022
713.58
Sep-Dec 2022
248.12
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!