I Qlik Sense, representeras det booleska sanna värdet av -1, och det falska värdet representeras av 0.
Funktionen inweek() använder argumentet base_date för att identifiera vilken sjudagarsperiod datumet ligger inom. Veckans startdag baseras på systemvariabelnFirstWeekDay. Du kan även ändra den första veckodagen genom att använda argumentet first_week_day i inweek()-funktionen.
När den valda veckan har definierats returnerar funktionen booleska resultat när du jämför de föreskrivna datumvärdena med det veckosegmentet.
Användning
Funktionen InWeek returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i en if expression. InWeek-funktionen returnerar en aggregering eller beräkning som beror på om ett utvärderat datum ligger i veckan med det valda datumet i base_date argument.
Till exempel kan InWeek-funktionen användas för att identifiera all utrustning som tillverkas under en specifik vecka.
Argument
Argument
Beskrivning
timestamp
Det datum du vill jämföra mot base_date.
base_date
Datum som används för att utvärdera veckan.
period_no
Veckans startpunkt kan flyttas med period_no. period_no är ett heltal där värdet 0 anger den vecka som innehåller base_date. Negativa värden i period_no anger föregående veckor och positiva värden anger efterföljande veckor.
first_week_day
Som standard är den första dagen i veckan söndag (vilket bestäms av systemvariabeln FirstWeekDay), med start vid midnatt mellan lördag och söndag. first_week_day-parametern ersätter FirstWeekDay-variabeln. Om du vill att veckan ska starta en annan dag anger du en flagga mellan 0 och 6.
first_week_day values
Dag
Värde
Måndag
0
Tisdag
1
Onsdag
2
Torsdag
3
Fredag
4
Lördag
5
Söndag
6
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.
Returnerar FALSE eftersom first_week_day är angett som 3 (torsdag), vilket gör 2006-01-12 till den första dagen i veckan efter veckan som innehåller 2006-01-09.
Dessa ämnen kan hjälpa dig att arbeta med den här funktionen:
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
week_day
in_week
Resultattabell
datum
week_day
in_week
01/02/2022
sön
0
01/05/2022
ons
0
01/06/2022
tors
0
01/08/2022
lör
0
01/09/2022
sön
-1
01/10/2022
mån
-1
01/11/2022
tis
-1
01/12/2022
ons
-1
01/13/2022
tors
-1
01/14/2022
fre
-1
01/15/2022
lör
-1
01/16/2022
sön
0
01/17/2022
mån
0
01/18/2022
tis
0
01/26/2022
ons
0
01/27/2022
tors
0
01/28/2022
fre
0
01/29/2022
lör
0
01/30/2022
sön
0
01/31/2022
mån
0
in_week-fältet skapas i föregående LOAD-sats med hjälp av funktionen inweek(). Det första argumentet anger vilket fält som utvärderas. Det andra argumentet är ett hårdkodat datum för 14 januari, som är base_date. base_date-argumentet fungerar med FirstWeekDay-systemvariabeln för att identifiera jämförelseveckan. Ett period_no på 0 — vilket betyder att funktionen inte jämför veckorna före eller efter den segmenterade veckan – är det slutliga argumentet.
Systemvariabeln FirstWeekDay bestämmer att veckor börjar på en söndag och slutar på en lördag. Därför skulle januari delas upp i veckor enligt diagrammet nedan, där datumen mellan 9 och 15 januari ger den giltiga perioden för inweek()-beräkningen:
Alla transaktioner som inträffar mellan 9 och 15 januari returnerar det booleska resultatet TRUE.
Exempel 2 – period_no
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Samma datauppsättning som innehåller en uppsättning transaktioner för 2022 laddas i en tabell som heter Transactions.
Systemvariabeln FirstWeekDay som är inställd till 6 (söndag).
En föregående laddning som innehåller följande:
inweek ()-funktionen, inställd som fältet prev_week, som fastställer vilka transaktioner som ägde rum en hel vecka före veckan med 14 januari 2022.
weekday()-funktionen, inställd som fältet week_day, som visar vilken dag i veckan som motsvarar varje datum.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
week_day
prev_week
Resultattabell
datum
week_day
prev_week
01/02/2022
sön
-1
01/05/2022
ons
-1
01/06/2022
tors
-1
01/08/2022
lör
-1
01/09/2022
sön
0
01/10/2022
mån
0
01/11/2022
tis
0
01/12/2022
ons
0
01/13/2022
tors
0
01/14/2022
fre
0
01/15/2022
lör
0
01/16/2022
sön
0
01/17/2022
mån
0
01/18/2022
tis
0
01/26/2022
ons
0
01/27/2022
tors
0
01/28/2022
fre
0
01/29/2022
lör
0
01/30/2022
sön
0
01/31/2022
mån
0
Genom att använda -1 som period_no-argument i inweek()-funktionen skiftas gränserna för i jämförelseveckan bakåt med sju hela dagar. Med ett period_no på 0 skulle veckan ligga mellan 9 och 15 januari. Men i det här exemplet skiftas period_no i -1 start- och slutgränsen för det här segmentet bakåt med en vecka. Datumgränserna blir 2 januari till 8 januari.
Därför kommer alla transaktioner som sker mellan 2 och 8 januari att returnera 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 som innehåller en uppsättning transaktioner för 2022 laddas i en tabell som heter Transactions.
Systemvariabeln FirstWeekDay som är inställd till 6 (söndag).
En föregående laddning som innehåller följande:
inweek()-funktionen, inställd som fältet in_week, som fastställer vilka transaktioner som ägde rum under kvartalet fram till den 14 januari 2022.
weekday()-funktionen, inställd som fältet week_day, som visar vilken dag i veckan som motsvarar varje datum.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
date
week_day
in_week
Resultattabell
datum
week_day
in_week
01/02/2022
sön
0
01/05/2022
ons
0
01/06/2022
tors
0
01/08/2022
lör
0
01/09/2022
sön
0
01/10/2022
mån
-1
01/11/2022
tis
-1
01/12/2022
ons
-1
01/13/2022
tors
-1
01/14/2022
fre
-1
01/15/2022
lör
-1
01/16/2022
sön
-1
01/17/2022
mån
0
01/18/2022
tis
0
01/26/2022
ons
0
01/27/2022
tors
0
01/28/2022
fre
0
01/29/2022
lör
0
01/30/2022
sön
0
01/31/2022
mån
0
Genom att använda 0 som first_week_day-argument i inweek()-funktionen ersätts systemvariabeln FirstWeekDay och anger måndag som den första dagen i veckan.
Därför kommer alla transaktioner som sker mellan 10 och 16 januari att returnera det booleska resultatet TRUE
Exampel 4 – Diagramobjektexempel
Översikt
Samma datauppsättning och scenario som det första exemplet används.
I det här exemplet är dock datauppsättningen oförändrad och har laddats i programmet. Skapa ett mått i resultattabellen för att fastställa vilka transaktioner som ägde rum under veckan med 14 januari 2022.
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:
=inweek (date,'01/14/2022',0), för att beräkna huruvida transaktioner ägde rum under samma vecka som 14 januari.
=weekday(date), för att visa vilken veckodag som motsvarar varje datum.
Resultattabell
datum
week_day
=inweek (date,'01/14/2022',0)
01/02/2022
sön
0
01/05/2022
ons
0
01/06/2022
tors
0
01/08/2022
lör
0
01/09/2022
sön
-1
01/10/2022
mån
-1
01/11/2022
tis
-1
01/12/2022
ons
-1
01/13/2022
tors
-1
01/14/2022
fre
-1
01/15/2022
lör
-1
01/16/2022
sön
0
01/17/2022
mån
0
01/18/2022
tis
0
01/26/2022
ons
0
01/27/2022
tors
0
01/28/2022
fre
0
01/29/2022
lör
0
01/30/2022
sön
0
01/31/2022
mån
0
in_week-måttet skapas i diagrammet med hjälp av inweek()-funktionen. Det första argumentet anger vilket fält som utvärderas. Det andra argumentet är ett hårdkodat datum för 14 januari, som är base_date. base_date-argumentet fungerar med FirstWeekDay-systemvariabeln för att identifiera jämförelseveckan. Ett period_no på 0 är det sista argumentet.
Systemvariabeln FirstWeekDay bestämmer att veckor börjar på en söndag och slutar på en lördag. Därför skulle januari delas upp i veckor enligt diagrammet nedan, där datumen mellan 9 och 15 januari ger den giltiga perioden för inweek()-beräkningen:
Alla transaktioner som inträffar mellan 9 och 15 januari returnerar det booleska resultatet TRUE.
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.
Tabellen innehåller följande fält:
produkt-ID
produkttyp
tillverkningsdatum
kostnadspris
I det här exemplet har man identifierat att utrustningsfel var orsaken till att produkter som tillverkades den 12 januari var defekta. Slutanvändaren vill ha en diagram 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.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
=weekname(manufacture_date)
Skapa följande mått:
=if(only(inweek(manufacture_date,makedate(2022,01,12),0)),'Defective','Faultless'), för att identifiera vilka av produkterna som är defekta och vilka som är felfria med inweek()-funktionen:
=sum(cost_price), för att visa den sammanlagda kostnaden för varje produkt.
Funktionen inweek() returnerar ett booleskt värde vid utvärdering av tillverkningsdatumen för var och en av produkterna. För alla produkter som tillverkats under veckan med 12 januari returnerar funktionen inweek() det booleska värdet TRUE och markerar produkterna som "Defekta". För alla produkter som returnerar värdet 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!