Denna funktion returnerar ett visningsvärde som visar året och sjudagarsperiodsnumret som motsvarar en tidsmarkör för den första millisekunden på den första dagen i sjudagarsperioden som innehåller date. Sjudagarsperioder i Qlik Sense definieras genom att räkna 1 januari som den första dagen i veckan. Bortsett från årets sista vecka kommer varje vecka att ha exakt sju dagar.
lunarweekname()-funktionen fastställer vilken sjudagarsperiod som datumet infaller, med 1 januari som startdatum för veckoräkningen. Det returnerar sedan ett värde som består av year/weekcount.
Argument
Argument
Beskrivning
date
Det datum eller den tidsmarkör som ska utvärderas.
period_no
period_no är ett heltal, eller ett uttryck som resulterar i ett heltal, där värdet 0 anger den sjudagarsperiod som innehåller date. Negativa värden i period_no anger föregående sjudagarsperioder och positiva värden anger efterföljande sjudagarsperioder.
first_week_day
En förflyttning av startpunkten som kan vara större eller mindre än noll. Detta flyttar början på året med det angivna antalet dagar och/eller delar av en dag.
Användning
Funktionen lunarweekname() är användbar när du vill jämföra sammanställningar efter sjudagarsperioder. Funktionen kan exempelvis användas för att fastställa den totala försäljningen av produkter per sjudagarsperiod. Sjudagarsperioder är användbara när du vill säkerställa att alla värden som finns i årets första vecka endast innehåller värden från tidigast 1 januari.
Dessa dimensioner kan skapas i laddningsskriptet genom att använda funktionen för att skapa ett fält i en Master Calendar-tabell. Funktionen kan också användas direkt i ett diagram som en beräknad dimension.
Exempel på funktioner
Exempel
Resultat
lunarweekname('01/12/2013')
Returnerar 2006/02.
lunarweekname('01/12/2013', -1)
Returnerar 2006/01.
lunarweekname('01/12/2013', 0, 1)
Returnerar 2006/02.
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 – Datum utan ytterligare argument
Ö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.
Ett fält lunar_week_name skapas som returnerar ett år och veckonummer för den sjudagarsperiod då transaktionen ägde rum.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
lunar_week_name
Resultattabell
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
lunar_week_name-fältet skapades i den föregående load-satsen genom att användalunarweekname() -funktionen och skicka date-fältet som funktionens argument.
lunarweekname()-funktionen identifierar vilken sjudagarsperiod datumvärdet infaller och returnerar år och veckonummer för detta datum.
Transaktion 8189 ägde rum 19 januari. lunarweekname()-funktionen identifierar att detta datum infaller under den sjudagarsperiod som börjar 15 januari; detta är årets tredje sjudagarsperiod. Därför returnerar lunar_week_name värdet 2022/03 för transaktionen.
Exempel 2 – datum med argumentet period_no
Översikt
Öppn 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.
Ett fält previous_lunar_week_name skapas som returnerar ett år och veckonummer för sjudagarsperioden innan transaktionen ägde rum.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
previous_lunar_week_name
Resultattabell
date
previous_lunar_week_name
1/7/2022
2021/52
1/19/2022
2022/02
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/10
4/1/2022
2022/12
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/23
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/28
7/23/2022
2022/29
7/27/2022
2022/29
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/32
9/26/2022
2022/38
10/14/2022
2022/40
10/29/2022
2022/43
Eftersom ett period_no på -1 användes som förskjutningsargument i lunarweekname()-funktionen i det här fallet identifierar funktionen först den sjudagarsperiod då transaktionerna ägde rum. Det returnerar då året och den föregående veckans nummer.
Transaktion 8189 ägde rum 19 januari. lunarweekname()-funktionen fastställer att denna transaktion ägde rum under årets tredje sjudagarsperiod och returnerar därför året och värdet för den föregående veckan, 2022/02, för previous_lunar_week_name-fältet.
Exempel 3 – datum med argumentet first_week_day
Översikt
Öppna skriptredigeraren och lägg till laddningsskriptet nedan i en ny flik.
Laddningsskriptet innehåller samma datauppsättning och scenario som i det första exemplet. I det här exemplet ställer vi in sjudagarsperioderna till att börja 5 januari.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
lunar_week_name
Resultattabell
date
lunar_week_name
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/05
2/28/2022
2022/08
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/18
5/16/2022
2022/19
6/15/2022
2022/24
6/26/2022
2022/25
7/9/2022
2022/27
7/22/2022
2022/29
7/23/2022
2022/29
7/27/2022
2022/30
8/2/2022
2022/30
8/8/2022
2022/31
8/19/2022
2022/33
9/26/2022
2022/38
10/14/2022
2022/41
10/29/2022
2022/43
Eftersom first_week_date-argumentet 4 används i lunarweekname()-funktionen i det här fallet förskjuts sjudagarsperiodens början från 1 januari till 5 januari.
Transaktionen 8188 ägde rum 7 januari. På grund av att sjudagarsperioderna börjar 5 januari identifierar lunarweekname()-funktionen att sjudagarsperioden där 7 januari ingår är årets första sjudagarsperiod. Därför är det returnerade lunar_week_name-värdet för den transaktoinen 2022/01.
Exampel 4 – Diagramobjektexempel
Översikt
Öppna skriptredigeraren och lägg till laddningsskriptet nedan i 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 returnerar ett sjudagarsperiodsnummer och år då transaktionen ägde rum 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.
För att beräkna startdatum för den sjudagarsperiod då en transaktion äger rum skapar du följande mått:
=lunarweekname(date)
Resultattabell
date
=lunarweekname(date)
1/7/2022
2022/01
1/19/2022
2022/03
2/5/2022
2022/06
2/28/2022
2022/09
3/16/2022
2022/11
4/1/2022
2022/13
5/7/2022
2022/19
5/16/2022
2022/20
6/15/2022
2022/24
6/26/2022
2022/26
7/9/2022
2022/28
7/22/2022
2022/29
7/23/2022
2022/30
7/27/2022
2022/30
8/2/2022
2022/31
8/8/2022
2022/32
8/19/2022
2022/33
9/26/2022
2022/39
10/14/2022
2022/41
10/29/2022
2022/44
lunar_week_name-måttet skapas i diagramobjektet genom att använda lunarweekname()-funktionen och skicka date-fältet som funktionens argument.
lunarweekname()-funktionen identifierar vilken sjudagarsperiod datumvärdet infaller och returnerar år och veckonummer för detta datum.
Transaktion 8189 ägde rum 19 januari. lunarweekname()-funktionen identifierar att detta datum infaller under den sjudagarsperiod som börjar 15 januari; detta är årets tredje sjudagarsperiod. Därför är lunar_week_name värdet för transaktionen 2022/03.
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 för 2022 som läses in i en tabell som heter Transactions.
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
Slutanvändaren vill ha ett diagramobjekt som visar den totala försäljningen per vecka för nuvarande år. Vecka 1, med en längd på sju dagar, ska börja 1 januari. Detta kan göras även när denna dimension inte är tillgänglig i datamodellen genom att använda lunarweekname()-funktionen som en beräknad dimension i diagrammet.
Beräkna total försäljning med hjälp av följande aggregeringsmått.
=sum(amount)
Ange måttens Nummerformatering till Pengar.
Resultattabell
=lunarweekname(date)
=sum(amount)
2022/01
$17.17
2022/03
$37.23
2022/06
$57.42
2022/09
$88.27
2022/11
$53.80
2022/13
$82.06
2022/19
$40.39
2022/20
$87.21
2022/24
$95.93
2022/26
$45.89
2022/28
$36.23
2022/29
$25.66
2022/30
$152.75
2022/31
$76.11
2022/32
$25.12
2022/33
$46.23
2022/39
$84.21
2022/41
$96.24
2022/44
$67.67
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!