Denna funktion tar reda på om timestamp ligger inom delen av sjudagarsperioden fram till och inklusive den sista millisekunden av 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.
Funktionen inlunarweektodate() fungerar som slutpunkt i sjudagarsperioden. inlunarweek()-funktionen å andra sidan avgör vilken sjudagarsperiod base_date infaller i. Om base_date exempelvis är 5 januari skulle alla tidsmarkörer mellan 1 januari och 5 januari returnera det booleska resultatet TRUE, medan datumen 6 och 7 januari och senare skulle returnera det booleska resultatet FALSE.
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.
Användning
Funktionen inlunarweektodate() returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i ett IF-uttryck. inlunarweektodate()-funktionen används när användaren vill att beräkningen ska returnera en aggregering eller beräkning, beroende på om det beräknade datumet inträffade under ett visst segment av veckan ifråga.
Till exempel kan inlunarweektodate()-funktionen användas för att identifiera all utrustning som tillverkats under en viss vecka fram till och med ett visst datum.
Exempel på funktioner
Exempel
Resultat
inlunarweektodate('01/12/2013', '01/13/2013',
0)
Returnerar TRUE, eftersom värdet för timestamp, 01/12/2013, infaller under delen av veckan 01/08/2013 till 01/13/2013.
inlunarweektodate('01/12/2013', '01/11/2013',
0)
Returnerar FALSE, eftersom värdet för timestamp är senare än värdet base_date, trots att båda datumen infaller under samma sjudagarsperiod före 01/12/2012.
inlunarweektodate('01/12/2006', '01/05/2006',
1)
Returnerar TRUE. Att ange värdet 1 för period_no flyttar base_date framåt en vecka, så att värdet för timestamp Infaller under en del av sjudagarsperioden.
inlunarweektodate()-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.
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 – inga ytterligare argument
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller en uppsättning transaktioner för månaden januari som laddas i en tabell som heter Transactions. DateFormat-standardsystemvariabeln MM/DD/YYYY används.
Skapa ett fält, in_lunar_week_to_date, som avgör huruvida transaktionerna ägde rum under sjudagarsperioden fram till 10 januari.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
in_lunar_week_to_date
Resultattabell
datum
in_lunar_week_to_date
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Fältet in_lunar_week_to_date skapades i den föregående load-satsen genom att använda funktionen inlunarweektodate() och skicka date-fältet, ett hårdkodat datum för 10 januari som vår base_date, och en förskjutning på 0 som funktionens argument.
Eftersom sjudagarsperioderna börjar 1 januari skulle 10 januari infalla under den sjudagarsperiod som börjar 8 januari, och eftersom vi använder inlunarweektodate()-funktionen skulle den sjudagarsperioden sluta den 10:e. 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
Ö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. Men i det här fallet är uppgiften att skapa ett fält, 2_lunar_weeks_later, som avgör huruvida transaktionerna ägde rum två veckor efter sjudagarsperioden fram till 1 januari.
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
datum
2_lunar_weeks_later
1/1/2022
0
1/4/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
-1
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
I det här fallet fastställer inlunarweektodate()-funktionen att sjudagarsperioden fram till 10 januari motsvarar tre dagar (8, 9 och 10 januari). Eftersom ett period_no på 2 användes som förskjutningsargument, ändras den här sjudagarsperioden med 14 dagar. Därför definieras denna tredagarsvecka så att den innehåller dagarna 22, 23 och 24 januari. Alla transaktioner som äger rum mellan 22 januari och 24 januari returnerar det booleska resultatet TRUE.
Exempel 3 – first_week_day
Ö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.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
in_lunar_week_to_date
Resultattabell
datum
in_lunar_week_to_date
1/1/2022
0
1/4/2022
-1
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
I det här fallet kommer den första sjudagarsperioden att vara mellan 3 januari och 10 januari, eftersom the first_week_date-argumentet 3 används i inlunarweek()-funktionen. Eftersom 10 januari även är base_date kommer alla transaktioner som infaller mellan de här två datumen att returnera det booleska värdet TRUE.
Exempel 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 avgör om transaktionerna skedde under sjudagarsperioden fram till 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.
Skapa följande mått:
=inlunarweektodate(date,'01/10/2022', 0)
Resultattabell
datum
=inlunarweektodate(date,'01/10/2022', 0)
1/1/2022
0
1/4/2022
0
1/10/2022
-1
1/11/2022
0
1/12/2022
0
1/15/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/21/2022
0
1/23/2022
0
1/26/2022
0
1/27/2022
0
1/29/2022
0
1/31/2022
0
Måttet in_lunar_week_to_date skapades i diagramobjektet genom att använda inlunarweektodate()-funktionen och skicka datumfältet, ett hårdkodat datum för 10 januari som vår base_date och en förskjutning på 0 som funktionens argument.
Eftersom sjudagarsperioderna börjar 1 januari skulle 10 januari infalla under den sjudagarsperiod som börjar 8 januari. Dessutom skulle den sjudagarsperioden sluta den 10:e, eftersom vi använder inlunarweektodate()-funktionen. 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 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 sjudagarsperioden den 12 januari var defekta. Frågan löstes den 13 januari. Slutanvändaren vill ha ett diagramobjekt som visar, efter vecka, status för vilka produkter som tillverkades som var "defekta" eller "felfria", samt kostnaden för de produkter som tillverkades den veckan.
Funktionen inlunarweektodate() returnerar ett booleskt värde vid utvärdering av tillverkningsdatumen för var och en av produkterna. För de som returnerar ett booleskt värde på TRUE, markerar det produkterna som ‘Defective’. För alla produkter som returnerar värdet FALSE, och därför inte har tillverkats under sjudagarsperioden fram till och med den 12 januari, markeras produkterna som ‘Faultless’.
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!