Denna funktion returnerar ett visningsvärde som representerar månadsintervallet i perioden (formaterat enligt skriptvariabeln MonthNames) liksom året. Det underliggande numeriska värdet motsvarar en tidsmarkör för den första millisekunden i månaden, tvåmånadersperioden, kvartalet, fyramånadersperioden eller halvåret som innehåller ett basdatum.
monthsname()-funktionen delar upp året i segment baserat på det angivna n_months-argumentet. Den utvärderar sedan segmentet som varje tillhandahållen date tillhör, och returnerar start- och slutmånadsnamnen för det segmentet, såväl som året. Funktionen ger också möjligheten att returnera dessa gränser från föregående eller efterföljande segment, samt omdefiniera vilket som är årets första månad.
Följande segment av året är tillgängliga i funktionen som n_month-argument:
Möjliga n_month-argument
Perioder
Antal månader
månad
1
två månader
2
kvartal
3
fyra månader
4
halvår
6
Argument
Argument
Beskrivning
n_months
Antalet månader som definierar perioden. Ett heltal eller uttryck vars resultat blir ett heltal som ska vara antingen: 1 (motsvaras av inmonth()-funktionen), 2 (tvåmånadersperiod), 3 (motsvaras av inquarter()-funktionen), 4 (fyramånadersperiod) eller 6 (halvår).
date
Det datum eller den tidsmarkör som ska utvärderas.
period_no
Periodens startpunkt kan flyttas med period_no, ett heltal, eller ett uttryck som resulterar i ett heltal, där värdet 0 anger den period som innehåller base_date. Negativa värden i period_no anger föregående perioder och positiva värden anger efterföljande perioder.
first_month_of_year
Om du vill arbeta med (budget)år som inte börjar i januari kan du ange ett värde mellan 2 och 12 i first_month_of_year.
Användning
monthsname()-funktionen är användbar när du vill ge användaren funktionalitet för att jämföra aggregationer efter en valfri period. Du kan till exempel ange en indatavariabel för att låta användaren se den totala försäljningen av produkter per månad, kvartal eller halvår.
Dessa dimensioner kan skapas antingen i laddningsskriptet genom att lägga till funktionen som ett fält i en Master Calendar-tabell, eller alternativt genom att skapa dimensionen direkt i ett diagram som en beräknad dimension.
Exempel på funktioner
Exempel
Resultat
monthsname(4, '10/19/2013')
Returnerar Sep-Dec 2013. I det här och andra exempel har SET Monthnames-satsen angetts som Jan;Feb;Mar och så vidare.
monthsname(4, '10/19/2013', -1)
Returnerar May-Aug 2013.
monthsname(4, '10/19/2013', 0, 2)
Returnerar Oct-Jan 2014, eftersom året är specificerat att börja i månaden 2. Därför slutar fyramånadersperioden med den första månaden av nästföljande år.
Lokala inställningar
Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/ÅÅÅÅ. Datumformatet anges i SET DateFormat-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel.
Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.
Exempel 1 – Grundläggande exempel
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner för 2022 som läses in i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (MM/DD/ÅÅÅÅ) i systemvariabeln DateFormat.
Skapandet av ett fält, bi_monthly_range, som grupperar transaktioner i tvåmånaderssegment och returnerar gränsnamnen för det segmentet för varje transaktion.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
bi_monthly_range
Resultattabell
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
Maj-jun 2022
5/7/2022
Maj-jun 2022
5/22/2022
Maj-jun 2022
6/15/2022
Maj-jun 2022
6/26/2022
Maj-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-okt 2022
10/14/2022
Sep-okt 2022
10/29/2022
Sep-okt 2022
bi_monthly_range-fältet skapas i föregående LOAD-sats med hjälp av monthsname()-funktionen. Det första argumentet som tillhandahålls är 2, som delar upp året i tvåmånaderssegment. Det första argumentet som anges identifierar vilket fält som utvärderas.
Transaktion 8195 äger rum den 22 maj. monthsname()-funktionen delar initialt upp året i tvåmånaderssegment. Transaktion 8195 infaller i segmentet mellan 1 maj och 30 juni. Därför returnerar funktionen dessa månader i systemvariabelformatet MonthNames, såväl som året, maj-juni 2022.
Exampel 2 – period_no
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma inline-datauppsättning och scenario som det första exemplet används.
Skapandet av ett fält, prev_bi_monthly_range, som grupperar transaktioner i tvåmånaderssegment och returnerar föregående segmentgränsnamn för varje transaktion.
Lägg till din andra text här, efter behov, med listor mm.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
prev_bi_monthly_range
Resultattabell
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
Maj-jun 2022
7/22/2022
Maj-jun 2022
7/23/2022
Maj-jun 2022
7/27/2022
Maj-jun 2022
8/2/2022
Maj-jun 2022
8/8/2022
Maj-jun 2022
8/19/2022
Maj-jun 2022
9/26/2022
Jul-aug 2022
10/14/2022
Jul-aug 2022
10/29/2022
Jul-aug 2022
I det här exemplet används -1 som period_no-argumentet i monthsname()-funktionen. Efter att initialt ha delat upp ett år i tvåmånaderssegment, returnerar funktionen sedan tidigare segmentgränser för när en transaktion äger rum.
Transaktion 8195 faller in i segmentet mellan maj och juni. Detta innebär att det föregående tvåmånaderssegmentet var mellan 1 mars och 30 april, och därför returnerar funktionen mars-april 2022.
Exempel 3 – first_month_of_year
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma inline-datauppsättning och scenario som det första exemplet används.
Skapandet av ett annat fält, bi_monthly_range, som grupperar transaktioner i tvåmånaderssegment och returnerar segmentgränsnamn för varje transaktion.
Men i det här exemplet måste vi också ställa in april som den första månaden av räkenskapsåret.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
bi_monthly_range
Resultattabell
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-maj 2022
4/16/2022
Apr-maj 2022
5/1/2022
Apr-maj 2022
5/7/2022
Apr-maj 2022
5/22/2022
Apr-maj 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
Okt-nov 2022
10/29/2022
Okt-nov 2022
Genom att använda 4 som first_month_of_year-argument i monthsname()-funktionen startar funktionen året den 1 mars och delar sedan upp året i tvåmånaderssegment: apr-maj,jun-jul,aug-sep,okt-nov,dec-jan,feb-mars.
Stycketext för resultat.
Transaktion 8195 ägde rum den 22 maj och faller in i segmentet mellan 1 april och 31 maj. Därför returnerar funktionen april-maj 2022.
Exampel 4 – Diagramobjektexempel
Översikt
Öppna skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller samma datauppsättning och scenario som i det första exemplet. I det här exemplet har dock den oförändrade datauppsättningen skickats till programmet. Beräkningen som grupperar transaktioner i tvåmånaderssegment och returnerar segmentgränsnamn för varje transaktion skapas som ett mått i ett diagramobjekt för programmet.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:date.
Skapa följande mått:
=monthsname(2,date)
Resultattabell
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
Maj-jun 2022
5/7/2022
Maj-jun 2022
5/22/2022
Maj-jun 2022
6/15/2022
Maj-jun 2022
6/26/2022
Maj-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-okt 2022
10/14/2022
Sep-okt 2022
10/29/2022
Sep-okt 2022
bi_monthly_range-fältet skapas som ett mått i ett diagramobjekt med hjälp av monthsname()-funktionen. Det första argumentet som tillhandahålls är 2, som delar upp året i tvåmånaderssegment. Det första argumentet som anges identifierar vilket fält som utvärderas.
Transaktion 8195 äger rum den 22 maj. monthsname()-funktionen delar initialt upp året i tvåmånaderssegment. Transaktion 8195 infaller i segmentet mellan 1 maj och 30 juni. Därför returnerar funktionen dessa månader i systemvariabelformatet MonthNames, såväl som året, maj-juni 2022.
Exempel 5 – Scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner efter tidsmarkör som läses in i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (MM/DD/ÅÅÅÅ) i DateFormat-systemvariabeln.
Slutanvändaren vill ha ett diagramobjekt som visar den totala försäljningen efter en valfri period. Detta kan uppnås även när denna dimension inte är tillgänglig i datamodellen, med hjälp av monthsname()-funktionen som en beräknad dimension som modifieras dynamiskt med hjälp av variabelinmatningskontroll.
I början av laddningsskriptet har en variabel (vPeriod) skapats som kommer att kopplas till variabelinmatningskontrollen. Konfigurera sedan variabeln som ett anpassat objekt i arket.
Gör följande:
Klicka på Anpassade objekti resurspanelen.
Välj QlikInstrumentpanelspaket och skapa ett variabelinmatningsobjekt.
Ange en titel för diagramobjektet.
Under Variabel väljer du vPeriod som namn och ställer in objektet så att det visas som en rullgardinsmeny.
Under Värden konfigurerar du objektet för att använda dynamiska värden. Ange följande:
Skapa en ny tabell och lägg till följande beräknade dimension:
=monthsname($(vPeriod),date)
Lägg till detta mått för att beräkna den totala försäljningen:
=sum(amount)
Ange måttens Nummerformatering till Pengar. Klicka på Redigering klar. Du kan nu ändra data som visas i tabellen genom att justera tidssegmentet i variabelobjektet.
Så här kommer resultattabellen att se ut när tertial-alternativet är valt:
Resultattabell
monthsname($(vPeriod),date)
=sum(amount)
Jan-apr 2022
253.89
Maj–aug 2022
713.58
Sep-dec 2022
248.12
Var den här sidan till hjälp för dig?
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!