Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Buchannagari
Contributor II
Contributor II

Need to create Master Calendar using WEEK data

Hi,

I have a excel data in that order date column is not there 

so, I want to create master calendar by using WEEK column or by using DATES column 

for reference 

Buchannagari_0-1653998116371.png

so how to get min and max date from WEEK and DATES columns 

i am using below Master calendar script 

QuartersMap:
MAPPING LOAD
rowno() as Month,
'Q' & Ceil (rowno()/3) as Quarter
AUTOGENERATE (12);
Temp:
Load
min(OrderDate) as minDate,
max(OrderDate) as maxDate
Resident Smart_Orders;
Let varMinDate = Num(Peek('minDate', 0, 'Temp'));
Let varMaxDate = Num(Peek('maxDate', 0, 'Temp'));
DROP Table Temp;
TempCalendar:
LOAD
$(varMaxDate) + Iterno()-1 As Num,
Date($(varMinDate) + IterNo() - 1) as TempDate
AutoGenerate 1 While $(varMinDate) + IterNo() -1 <= $(varMaxDate);
MasterCalendar:
Load
TempDate AS OrderDate,
week(TempDate) As Week,
Year(TempDate) As Year,
Month(TempDate) As Month,
Day(TempDate) As Day,
date(monthstart(TempDate), 'MMM-YYYY') as MonthYear,
ApplyMap('QuartersMap', month(TempDate), Null()) as Quarter,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as WeekYear,
WeekDay(TempDate) as WeekDay
Resident TempCalendar
Order By TempDate ASC;
Drop Table TempCalendar;
// exit SCRIPT;

 

can anyone help me here

Thanks & Regards,

Buchannagari.

Labels (1)
1 Solution

Accepted Solutions
vinieme12
Champion III
Champion III

You need to replace 'YYYY-MM-DD'  with the date format set in your app which seems to be 'MM/DD/YYYY'

Vineeth Pujari
If a post helps to resolve your issue, please accept it as a Solution.

View solution in original post

6 Replies
vinieme12
Champion III
Champion III

temp:

Load 

Week,DATES

FRom XYZsource;

NOCONCATENATE

temp2:

Week,DATES

Resident temp Order by Week ASC;
Drop table temp;

 

let vminDate = makedate(year(today()),month(Date#(trim(subfield(peek('DATES',0,'temp2'),'-',1)),'DD MMM')),Day(Date#(trim(subfield(peek('DATES',0,'temp2'),'-',1)),'DD MMM'));

let vmaxDate = makedate(year(today()),month(Date#(trim(subfield(peek('DATES',-1,'temp2'),'-',2)),'DD MMM')),Day(Date#(trim(subfield(peek('DATES',-1,'temp2'),'-',2)),'DD MMM'));

 

Vineeth Pujari
If a post helps to resolve your issue, please accept it as a Solution.
Buchannagari
Contributor II
Contributor II
Author

Hi,

Some how it is not working fine 

Actually i have a excel data(PFA) from that want to pull all the columns using for each 

done with that .

so , now want to create master by using WEEK and also with DATES columns

with the above script i am getting error

please look at attachment once

Regards

 

vinieme12
Champion III
Champion III

temp:
LOAD
"WEEK",
DATES

FROM [lib://AttachedFiles/For Loop Example - Copy.xlsx]
(ooxml, embedded labels, table is US)
Where len(WEEK);

NoConcatenate
temp2:
Load WEEK,DATES,date#(trim(subfield(DATES,'-',1))&year(today()),'DD mmmYYYY') as from, date#(trim(subfield(DATES,'-',2))&year(today()),'DD mmm') as to
Resident temp
ORDER BY WEEK ASC;
drop table temp;

let vMinDate = date(date#(peek('from',0,'temp2'),'DD MMMYYYY'));
let vMaxDate = date(date#(peek('to',-1,'temp2'),'DD MMMYYYY'));

trace min date '$(vMinDate)';
trace max date '$(vMaxDate)';

MasterCalendar:
Load
TempDate AS DATE,
week(TempDate) As Week,

Year(TempDate) As Year,
Month(TempDate) As Month,
monthname(TempDate) As monthyear,
Day(TempDate) As Day,
'Q' & ceil(month(TempDate) / 3) AS Quarter,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as WeekYear,
WeekDay(TempDate) as WeekDay
;

//=== Generate a temp table of dates ===
LOAD
Date(date#('$(vMaxDate)','YYYY-MM-DD') + RecNo()) AS TempDate
AUTOGENERATE date#('$(vMaxDate)','YYYY-MM-DD') - date#('$(vMinDate)','YYYY-MM-DD');

Vineeth Pujari
If a post helps to resolve your issue, please accept it as a Solution.
Buchannagari
Contributor II
Contributor II
Author

Hi,

Thanks for the reply 

but while using script i am getting error 

Buchannagari_0-1654065103021.png

min date is not fetching 

can you please help me here 

the script i have used

temp:
LOAD
"WEEK",
DATES

FROM [lib://DataFiles/For Loop Example.xlsx]
(ooxml, embedded labels, table is US)
Where len(WEEK);

NoConcatenate
temp2:
Load WEEK,DATES,date#(trim(subfield(DATES,'-',1))&year(today()),'DD mmmYYYY') as from, date#(trim(subfield(DATES,'-',2))&year(today()),'DD mmm') as to
Resident temp
ORDER BY WEEK ASC;
drop table temp;

let vMinDate = date(date#(peek('from',0,'temp2'),'DD MMMYYYY'));
let vMaxDate = date(date#(peek('to',-1,'temp2'),'DD MMMYYYY'));

trace min date '$(vMinDate)';
trace max date '$(vMaxDate)';
TempCalendar:
LOAD
Date(date#('$(vMaxDate)','YYYY-MM-DD') + RecNo()) AS TempDate
AUTOGENERATE date#('$(vMaxDate)','YYYY-MM-DD') - date#('$(vMinDate)','YYYY-MM-DD');

MasterCalendar:
Load
TempDate AS DATE,
week(TempDate) As Week,

Year(TempDate) As Year,
Month(TempDate) As Month,
monthname(TempDate) As monthyear,
Day(TempDate) As Day,
'Q' & ceil(month(TempDate) / 3) AS Quarter,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as WeekYear,
WeekDay(TempDate) as WeekDay
Resident TempCalendar
Order By TempDate ASC;
Drop Table TempCalendar;
Exit script;


//=== Generate a temp table of dates ===
// LOAD
// Date(date#('$(vMaxDate)','YYYY-MM-DD') + RecNo()) AS TempDate
// AUTOGENERATE date#('$(vMaxDate)','YYYY-MM-DD') - date#('$(vMinDate)','YYYY-MM-DD');

Exit Script;

 

Regards,

vinieme12
Champion III
Champion III

You need to replace 'YYYY-MM-DD'  with the date format set in your app which seems to be 'MM/DD/YYYY'

Vineeth Pujari
If a post helps to resolve your issue, please accept it as a Solution.
Buchannagari
Contributor II
Contributor II
Author

It  is working  fine 

Thank you