Deze functie retourneert een weergavewaarde die het bereik vertegenwoordigt van de maanden van de periode (geformatteerd volgens de scriptvariabele MonthNames) alsmede het jaar. De onderliggende numerieke waarde komt overeen met een tijdstempel van de eerste milliseconde van de periode van een maand, twee maanden, kwartaal, tertiaal of half jaar die een basisdatum bevat.
De functie monthsname() verdeelt het jaar in segmenten op basis van het opgegeven n_months-argument. Het evalueert vervolgens het segment waartoe elke opgegeven date behoort, en retourneert de namen van de begin- en eindmaanden van dat segment, evenals het jaar. De functie biedt ook de mogelijkheid om deze grenzen van voorgaande of volgende segmenten te retourneren, en om opnieuw te definiëren wat de eerste maand van het jaar is.
De volgende segmenten van het jaar zijn beschikbaar in de functie als n_month-argumenten:
Mogelijke n_month-argumenten
Perioden
Aantal maanden
maandelijks
1
tweemaandelijks
2
kwartaal
3
tertiaal
4
halfjaarlijks
6
Argumenten
Argument
Beschrijving
n_months
Het aantal maanden dat de periode definieert. Een geheel getal of uitdrukking die wordt herleid tot een geheel getal dat een van de volgende waarden moet hebben: 1 (equivalent aan de functie inmonth()), 2 (2 maanden), 3 (equivalent aan de functie inquarter()), 4 (tertiaal) of 6 (half jaar).
date
De te evalueren datum of tijdstempel.
period_no
De periode kan worden verschoven met period_no, een geheel getal of een uitdrukking die wordt herleid tot een geheel getal, waarbij de waarde 0 de periode aangeeft die base_date bevat. Negatieve waarden in period_no geven voorafgaande perioden aan en positieve waarden geven volgende perioden aan.
first_month_of_year
Als u wilt werken met (boek)jaren die niet in januari beginnen, geeft u een waarde op tussen 2 en 12 in first_month_of_year.
Wanneer gebruiken
De functie monthsname() is handig wanneer u de gebruiker de functionaliteit wilt bieden om aggregaties te vergelijken op een periode naar keuze. U kunt bijvoorbeeld een invoervariabele opgeven om de gebruiker de totale verkoop van producten per maand, kwartaal of halfjaar te laten zien.
Deze dimensies kunnen worden gemaakt in het load-script door de functie toe te voegen als een veld in een masterkalendertabel, of door de dimensie rechtstreeks in een diagram te maken als een berekende dimensie.
Voorbeelden van functies
Voorbeeld
Resultaat
monthsname(4, '10/19/2013')
Retourneert 'Sep-Dec 2013.' In dit en andere voorbeelden is de opdracht SET Monthnames ingesteld op Jan;Feb;Mar, enzovoort.
monthsname(4, '10/19/2013', -1)
Retourneert 'May-Aug 2013'.
monthsname(4, '10/19/2013', 0, 2)
Retourneert 'Oct-Jan 2014', aangezien het jaar is opgegeven om te beginnen in maand 2. Daarom eindigt de periode van vier maanden in de eerste maand van het volgende jaar.
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeeld 1 – Basisvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een set transacties voor 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Het maken van een veld, bi_monthly_range, dat transacties groepeert in tweemaandelijkse segmenten en de grensnamen van dat segment voor elke transactie retourneert.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
bi_monthly_range
Resultatentabel
date
bi_monthly_range
2/19/2022
jan-feb 2022
3/7/2022
mrt-apr 2022
3/30/2022
mrt-apr 2022
4/5/2022
mrt-apr 2022
4/16/2022
mrt-apr 2022
5/1/2022
mei-juni 2022
5/7/2022
mei-juni 2022
5/22/2022
mei-juni 2022
6/15/2022
mei-juni 2022
6/26/2022
mei-juni 2022
7/9/2022
juli-aug 2022
7/22/2022
juli-aug 2022
7/23/2022
juli-aug 2022
7/27/2022
juli-aug 2022
8/2/2022
juli-aug 2022
8/8/2022
juli-aug 2022
8/19/2022
juli-aug 2022
9/26/2022
sep-okt 2022
10/14/2022
sep-okt 2022
10/29/2022
sep-okt 2022
Het veld bi_monthly_range wordt gemaakt in de vorige load-instructie met behulp van de functie monthsname(). Het eerste opgegeven argument is 2, waarbij het jaar wordt verdeeld in tweemaandelijkse segmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd.
Transactie 8195 vindt plaats op 22 mei. De functie monthsname() verdeelt het jaar in eerste instantie in tweemaandelijkse segmenten. Transactie 8195 valt in het segment tussen 1 mei en 30 juni. Daarom retourneert de functie deze maanden in de systeemvariabele-indeling MonthNames, evenals het jaar, mei-juni 2022.
Voorbeeld 2 – period_no
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde inline gegevensset en het scenario uit het eerste voorbeeld.
Het maken van een veld, prev_bi_monthly_range, dat transacties groepeert in tweemaandelijkse segmenten en de grensnamen van het eerdere segment voor elke transactie retourneert.
Voeg hier uw andere tekst toe, indien nodig, met lijsten enz.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
prev_bi_monthly_range
Resultatentabel
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
mrt-apr 2022
5/7/2022
mrt-apr 2022
5/22/2022
mrt-apr 2022
6/15/2022
mrt-apr 2022
6/26/2022
mrt-apr 2022
7/9/2022
mei-juni 2022
7/22/2022
mei-juni 2022
7/23/2022
mei-juni 2022
7/27/2022
mei-juni 2022
8/2/2022
mei-juni 2022
8/8/2022
mei-juni 2022
8/19/2022
mei-juni 2022
9/26/2022
juli-aug 2022
10/14/2022
juli-aug 2022
10/29/2022
juli-aug 2022
In dit voorbeeld wordt -1 gebruikt als het period_no-argument in de monthsname()-functie. Na aanvankelijk een jaar in tweemaandelijkse segmenten te hebben verdeeld, retourneert de functie vervolgens de vorige segmentgrenzen voor wanneer een transactie plaatsvindt.
Transactie 8195 vindt plaats in het segment tussen mei en juni. Daarom was het vorige tweemaandelijkse segment tussen 1 maart en 30 april, en daarom retourneert de functie mrt-apr 2022.
Voorbeeld 3 – first_month_of_year
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Dezelfde inline gegevensset en het scenario uit het eerste voorbeeld.
Het maken van een ander veld, bi_monthly_range, dat transacties groepeert in tweemaandelijkse segmenten en de segmentgrenzen voor elke transactie retourneert.
In dit voorbeeld moeten we echter ook april instellen als de eerste maand van het boekjaar.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
date
bi_monthly_range
Resultatentabel
date
bi_monthly_range
2/19/2022
feb-mrt 2021
3/7/2022
feb-mrt 2021
3/30/2022
feb-mrt 2021
4/5/2022
apr-mei 2022
4/16/2022
apr-mei 2022
5/1/2022
apr-mei 2022
5/7/2022
apr-mei 2022
5/22/2022
apr-mei 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-sept 2022
8/8/2022
aug-sept 2022
8/19/2022
aug-sept 2022
9/26/2022
aug-sept 2022
10/14/2022
okt-nov 2022
10/29/2022
okt-nov 2022
Door 4 te gebruiken als het first_month_of_year-argument in de monthsname()-functie, begint de functie het jaar op 1 april. Het verdeelt vervolgens het jaar in tweemaandelijkse segmenten: apr-mei,jun-jul,aug-sep,okt-nov,dec-jan,feb-mrt.
Alineatekst voor Resultaten.
Transactie 8195 vond plaats op 22 mei en valt in het segment tussen 1 april en 31 mei. Daarom retourneert de functie apr-mei 2022.
Voorbeeld 4 – diagramobjectvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat dezelfde inline gegevensset en scenario als het eerste voorbeeld. In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die transacties groepeert in tweemaandelijkse segmenten en de segmentgrenzen retourneert voor elke transactie wordt gemaakt als een meting in een diagramobject van de toepassing.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:date.
Maak de volgende meting:
=monthsname(2,date)
Resultatentabel
date
=monthsname(2,date)
2/19/2022
jan-feb 2022
3/7/2022
mrt-apr 2022
3/30/2022
mrt-apr 2022
4/5/2022
mrt-apr 2022
4/16/2022
mrt-apr 2022
5/1/2022
mei-juni 2022
5/7/2022
mei-juni 2022
5/22/2022
mei-juni 2022
6/15/2022
mei-juni 2022
6/26/2022
mei-juni 2022
7/9/2022
juli-aug 2022
7/22/2022
juli-aug 2022
7/23/2022
juli-aug 2022
7/27/2022
juli-aug 2022
8/2/2022
juli-aug 2022
8/8/2022
juli-aug 2022
8/19/2022
juli-aug 2022
9/26/2022
sep-okt 2022
10/14/2022
sep-okt 2022
10/29/2022
sep-okt 2022
Het veld bi_monthly_range wordt in een diagramobject gemaakt als een meting met behulp van de functie monthsname(). Het eerste opgegeven argument is 2, waarbij het jaar wordt verdeeld in tweemaandelijkse segmenten. Het tweede argument geeft aan welk veld wordt geëvalueerd.
Transactie 8195 vindt plaats op 22 mei. De functie monthsname() verdeelt het jaar in eerste instantie in tweemaandelijkse segmenten. Transactie 8195 valt in het segment tussen 1 mei en 30 juni. Daarom retourneert de functie deze maanden in de systeemvariabele-indeling MonthNames, evenals het jaar, mei-juni 2022.
Voorbeeld 5 – Scenario
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met transacties voor 2022 die wordt geladen in een tabel met de naam Transactions.
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
De eindgebruiker wil graag een diagramobject dat de totale omzet per periode naar eigen keuze weergeeft. Dit kan zelfs worden bereikt als deze dimensie niet beschikbaar is in het gegevensmodel, door de functie monthsname() te gebruiken als een berekende dimensie die dynamisch wordt gewijzigd door een besturingselement voor variabeleninvoer.
Aan het begin van het load-script is een variabele (vPeriod) gemaakt die wordt gekoppeld aan het besturingselement voor variabeleninvoer. Configureer vervolgens de variabele als een aangepast object in het werkblad.
Doe het volgende:
Klik in het bedrijfsmiddelenvenster op Aangepaste objecten.
Selecteer Qlik Dashboard-bundel en maak een object Variabeleninvoer.
Voer een titel in voor het diagramobject.
Selecteer onder Variabele de optie vPeriod als de naam en stel het object in om als een Vervolgkeuzelijst te worden weergegeven.
Configureer onder Waarden het object om dynamische waarden te gebruiken. Voer het volgende in:
Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:
=monthsname($(vPeriod),date)
Voeg deze meting toe om de totale verkoop te berekenen:
=sum(amount)
Stel de Getalnotatie van de meting in op Geld. Klik op Klaar met bewerken. U kunt nu de gegevens in de tabel wijzigen door het tijdsegment in het variabele-object aan te passen.
Dit is hoe de resultatentabel eruit zal zien als de optie tertial is geselecteerd:
Resultatentabel
monthsname($(vPeriod),date)
=sum(amount)
jan-apr 2022
253.89
Mei-aug 2022
713.58
sep-dec 2022
248.12
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!