Denna funktion returnerar ett datum beräknat utifrån året YYYY, veckan WW och veckodagen D.
Syntax:
MakeWeekDate(YYYY [ , WW [ , D ] ])
Returnerad datatyp: dual
makeweekdate()-funktionen är tillgänglig både som skript- och diagramfunktionen. Funktionen beräknar datumet baserat på parametrarna som Om parametern day-of-week utelämnas returnerar funktionen datumet för måndagen i den veckan.
makeweekdate()-funktionen tar inte hänsyn till systemvariablerna BrokenWeek, ReferenceDay eller FirstWeekDay. Vecka 1 börjar den första måndagen i januari. 2022 till exempel börjar vecka 1 den 3 januari.
Argument
Argument
Beskrivning
YYYY
Året i form av ett heltal.
WW
Veckan i form av ett heltal.
Veckan kan vara positiv eller negativ och kan vara större än 52 för att returnera datum under olika år.
D
Veckodagen i form av ett heltal.
Om inget veckodagsnummer anges, antas 0 (måndag). Veckans återstående dagar tilldelas enligt följande: 1 för tisdag, 2 för onsdag, 3 för torsdag, 4 för fredag, 5 för lördag och 6 för söndag.
Användning
makeweekdate()-funktionen would commonly be used in the script for data generation to generate a list of dates, or to construct dates when the year, week and day-of-week are provided in the input data.
Exempel på funktioner
Exempel
Resultat
makeweekdate(2014,6,6)
returnerar 02/09/2014
makeweekdate(2014,6,1)
returnerar 02/04/2014
makeweekdate(2014,6)
returnerar 02/03/2014 (veckodag 0 antas)
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 – dag inkluderad
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller total försäljning per vecka för 2022 i en tabell som heter Sales.
Tillhandahållna transaktionsdatum över tre fält: year, week och sales.
En föregående last som används för att skapa ett mått, end_of_week, med hjälp av makeweekdate()-funktionen för att returnera datumet för fredagen den veckan i formatet MM/DD/YYYY.
För att bewvisa att det returnerade datumet är en fredag är end_of_week-uttrycket också inneslutet i weekday()-funktionen så att veckodagen visas.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
transaction_year
transaction_week
end_of_week
week_day
Resultattabell
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
fre
2022
02
01/14/2022
fre
2022
03
01/21/2022
fre
2022
04
01/28/2022
fre
2022
05
02/04/2022
fre
2022
06
02/11/2022
fre
2022
07
02/18/2022
fre
end_of_week-fältet skapas i föregående LOAD-sats med hjälp av funktionen makeweekdate(). transaction_year- och transaction_week-fälten skickas genom funktionen som argument för år resp. vecka. Värdet 4 används för dagargumentet.
Funktionen kombinerar och konverterar sedan de här värdena till ett datumfält och returnerar resultatet i form av systemvariabeln DateFormat.
makeweekdate()-funktionen och dess argument är också omslutna av en weekday()-funktion för att returnera week_day-fältet och kan ses i tabellen ovan. week_day-fältet visar att de här datumen infaller på en fredag.
Exempel 2 – dag exkluderad
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller total försäljning per vecka för 2022 i en tabell som heter Sales.
Tillhandahållna transaktionsdatum över tre fält: year, week och sales.
En föregående laddning, som används för att skapa ett mått first_day_of_week med makeweekdate(). Då returneras datumet för måndagen i den veckan med formatet MM/DD/YYYY.
För att bevisa att det returnerade datumet är en måndag är first_day_of_week-uttrycket också inneslutet i weekday()-funktionen så att veckodagen visas.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
transaction_year
transaction_week
first_day_of_week
week_day
Resultattabell
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
mån
2022
02
01/10/2022
mån
2022
03
01/17/2022
mån
2022
04
01/24/2022
mån
2022
05
01/31/2022
mån
2022
06
02/07/2022
mån
2022
07
02/14/2022
mån
first_day_of_week-fältet skapas i föregående LOAD-sats med hjälp av funktionen makeweekdate(). Parametrarna transaction_year och transaction_week skickas som funktionsargument, och dagparametern lämnas blank.
Funktionen kombinerar och konverterar sedan de här värdena till ett datumfält och returnerar resultatet i form av systemvariabeln DateFormat.
makeweekdate()-funktionen och dess argument innesluts också i en weekday()-funktion som returnerar week_day-fältet. Som framgår av ovanstående tabell visar week_day-fältet visar att de här datumen inträffar på en måndag (även om FirstWeekDay-variabeln ställer in söndag som första dag i veckan), eftersom dagparametern i makeweekdate() funktionen lämnades blank.
Exampel 3 – Diagramobjektexempel
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller total försäljning per vecka för 2022 i en tabell som heter Sales.
Tillhandahållna transaktionsdatum över tre fält: year, week och sales.
I det här exemplet kommer ett diagramobjekt att användas för att skapa ett mått som motsvarar end_of_week-beräkningen i det första exemplet. Det här måttet kommer att använda makeweekdate()-funktionen för att returnera datumet för fredagen i den veckan med formatet MM/DD/YYYY.
För att bevisa att datumet som returneras är en fredag skapas ytterligare ett mått som returnerar veckodagen.
Ett fält som motsvarar end_of_week skapas i som ett mått i diagramobjektet med hjälp av makeweekdate()-funktionen. transaction_year- och transaction_week-fälten skickas som argument för år resp. vecka. Värdet 4 används för dagargumentet.
Funktionen kombinerar och konverterar sedan de här värdena till ett datumfält och returnerar resultatet i form av systemvariabeln DateFormat.
makeweekdate()-funktionen och dess argument innesluts också i en weekday()-funktion som returnerar en beräkningsmotsvarighet till den i week_day-fältet i det första exemplet. Som framgår av ovanstående tabell visar den sista kolumnen till höger att de här datumen inträffar på en fredag.
Exempel 4 – Scenario
Översikt
I det här exemplet skapas en lista över datum som innehåller alla fredagar under 2022.
Öppna skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Resultat
Resultattabell
date
weekday
01/07/2022
fre
01/14/2022
fre
01/21/2022
fre
01/28/2022
fre
02/04/2022
fre
02/11/2022
fre
02/18/2022
fre
02/25/2022
fre
03/04/2022
fre
03/11/2022
fre
03/18/2022
fre
03/25/2022
fre
04/01/2022
fre
04/08/2022
fre
04/15/2022
fre
04/22/2022
fre
04/29/2022
fre
05/06/2022
fre
05/13/2022
fre
05/20/2022
fre
05/27/2022
fre
06/03/2022
fre
06/10/2022
fre
06/17/2022
fre
+ ytterligare 27 rader
makeweekdate()-funktionen hittar alla fredagar under 2022. Veckoparametern -2 säkerställer att inga datum missas. Slutligen skapar en föregående laddning ett extra weekday-fält för tydlighet, som visar att varje date-värde är en fredag.
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!