Denna funktion fastställer om timestamp ligger inom den sjudagarsperiod som innehåller base_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.
I Qlik Sense, representeras det booleska sanna värdet av -1, och det falska värdet representeras av 0.
inlunarweek()-funktionen avgör vilken sjudagarsperiod base_date infaller i. Den returnerar sedan ett booleskt värde när det har avgjort huruvida varje tidsmarkör inträffar under samma sjudagarsperiod som base_date.
Användning
Funktionen inlunarweek() returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i ett IF-uttryck. Detta returnerar en aggregering eller beräkning beroende på om ett utvärderat datum inträffade under sjudagarsperioden i fråga.
Till exempel kan inlunarweek()-funktionen användas för att identifiera all utrustning som tillverkats under en specifik sjudagarsperiod.
Argument
Argument
Beskrivning
timestamp
Det datum du vill jämföra mot base_date.
base_date
Data som används för att utvärdera sjudagarsperioden.
period_no
Sjudagarsperiodens startpunkt kan flyttas med period_no. period_no är ett heltal där värdet 0 anger den sjudagarsperiod som innehåller base_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.
Exempel på funktioner
Exempel
Resultat
inlunarweek('01/12/2013', '01/14/2013',
0)
Returnerar TRUE, eftersom värdet för timestamp, 01/12/2013, infaller under veckan 01/08/2013 till 01/14/2013.
inlunarweek('01/12/2013', '01/07/2013',
0)
Returnerar FALSE, eftersom base_date01/07/2013 är i den sjudagarsperiod som definieras som 01/01/2013 till 01/07/2013.
inlunarweek('01/12/2013', '01/14/2013',
-1)
Returnerar FALSE. Om värdet period_no anges till -1 växlar veckan till föregående vecka, 01/01/2013 till 01/07/2013.
inlunarweek('01/07/2013', 01/14/2013',
-1)
Returnerar TRUE. Jämfört med föregående exempel är timestamp i följande vecka, efter att ha tagit med flytten bakåt i beräkningen.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
Returnerar FALSE. Om värdet 3 anges för first_week_day innebär det att startvärdet för året beräknas från 01/04/2013. Därför infaller värdet för base_date under den första veckan, och värdet för timestamp inträffar under veckan 01/11/2013 till 01/17/2013.
inlunarweek()-funktionen används ofta i kombination med följande funktioner:
Den här funktionen används för att fastställa sjudagarsperiodens nummer under det år som ett inmatningsdatum inträffar.
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. Mer information finns i Ändra regioninställningar för appar och skript.
Regionala standardinställningar i appar baseras på användarprofilen. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Cloud användargränssnittet. Qlik Cloud kommer att visas på samma språk som webbläsaren du använder.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
in_lunar_week
Resultattabell
date
in_lunar_week
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
in_lunar_week-fältet skapades i den föregående load-satsen genom att använda inlunarweek()-funktionen och sedan skicka det följande som funktionens argument:
date-fältet
Ett hårdkodat datum för 10 januari som base_date
Ett period_no på 0
Eftersom sjudagarsperioderna börjar 1 januari skulle 10 januari infalla under den sjudagarsperiod som börjar 8 januari och slutar 14 januari. Därför skulle alla transaktioner som inträffar mellan dessa datum i januari returnera det booleska värdet TRUE. Det här valideras i resultattabellen.
Exempel 2 – 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.
Datumfältet har tillhandahållits i formatet (MM/DD/ÅÅÅÅ) i Systemvariabeln DateFormat.
Men i det här exemplet är uppgiften att skapa ett fält, 2_lunar_weeks_later, som avgör huruvida transaktionerna ägde rum två sjudagarsperioder efter 10 januari eller inte.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
2_lunar_weeks_later
Resultattabell
date
2_lunar_weeks_later
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
I det här fallet definierar funktionen veckan med början 22 januari som den sjudagarsperiod som transaktioner ska valideras mot, eftersom en period_no på 2 användes mot förskjutningsargumentet i inlunarweek()-funktionen. Därför kommer alla transaktioner som äger rum mellan 22 januari och 28 januari returnera ett booleskt resultat på TRUE.
Exempel 3 – first_week_day
Översikt
Öppna skriptredigeraren och lägg till laddningsskriptet nedan i en ny flik.
Laddningsskriptet använder samma datauppsättning och scenario som i det första exemplet. Men i det här exemplet ställer vi in sjudagarsperioderna till att börja 6 januari.
Samma datauppsättning och scenario som i det första exemplet.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
in_lunar_week
Resultattabell
date
in_lunar_week
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
I det här fallet förskjuts början på sjudagarsperiodskalendern till 6 januari eftersom ett first_week_date-argument på 5 används i inlunarweek()-funktion. Därför infaller 10 januari i den sjudagarsperiod som börjar 6 januari och slutar 12 januari. Alla transaktioner som infaller mellan de här två datumen returnerar det booleska värdet TRUE.
Exempel 4 – Diagramobjekt
Ö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.
Datumfältet har tillhandahållits i formatet (MM/DD/ÅÅÅÅ) i Systemvariabeln DateFormat.
I det här exemplet har dock den oförändrade datauppsättningen skickats till programmet. Beräkningen som avgör om transaktionerna skedde under samma sjudagarsperiod som 10 januari skapas som ett mått i ett diagramobjekt i 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 räkna ut om en transaktion sker under den sjudagarsperiod som innehåller 10 januari skapar du följande mått:
= inlunarweek(date,'01/10/2022', 0)
Resultattabell
date
=inlunarweek(date,'01/10/2022', 0)
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
Exempel 5 – Scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning laddas i en tabell som heter Products.
Information bestående av produkt-ID, tillverkningsdatum och självkostnadspris.
I det här exemplet har man identifierat att utrustningsfel var orsaken till att produkter som tillverkades under den sjudagarsperiod där 12 januari ingick var defekta. Slutanvändaren vill ha ett diagramobjekt som visar, efter sjudagarsperiodens namn, status för vilka produkter som tillverkades som var "defekta" eller "felfria", samt kostnaden för de produkter som tillverkades den månaden.
Funktionen inlunarweek() returnerar ett booleskt värde vid utvärdering av tillverkningsdatumen för var och en av produkterna. För alla produkter som tillverkats under den sjudagarsperiod där 10 januari ingår returnerar funktionen inlunarweek() det booleska värdet TRUE och markerar produkterna som "Defekta". För alla produkter som returnerar ett värde på FALSE och därför inte tillverkats under den veckan, markerar den produkterna som "Felfria".
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!