Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik GA: Multivariate Time Series in Qlik Predict: Get Details
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

TA

How to create a fiscal calendar on a specific column

4 Replies
jyothish8807
Master II
Master II

Hi,

Try this..


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 Orders;

Let varMinDate = Num(Peek('minDate', 0, 'Temp'));

Let varMaxDate = Num(Peek('maxDate', 0, 'Temp'));

DROP Table Temp;

TempCalendar:

LOAD

$(varMinDate) + 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,

YeartoDate(TempDate)*-1 as CurYTDFlag,

YeartoDate(TempDate,-1)*-1 as LastYTDFlag,

inyear(TempDate, Monthstart($(varMaxDate)),-1) as RC12,

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;


Regards

KC

Best Regards,
KC
Not applicable
Author

Thanks, however, even if i reload the above script, i don't see my calendar.

its_anandrjs
Champion III
Champion III

Or you can try this code

MapQuarter:

Mapping Load * Inline

[

Quarter,ChangeValue

Q1,Q4

Q2,Q1

Q3,Q2

Q4,Q3

];

LET vDateMin = Num(MakeDate(2012,1,1)); 

LET vDateMax = Floor(MonthEnd(Today())); 

LET vDateToday = Num(Today()); 

TempCalendar: 

LOAD

$(vDateMin) + RowNo() - 1 AS DateNumber, 

Date($(vDateMin) + RowNo() - 1) AS TempDate 

AUTOGENERATE 1 

WHILE $(vDateMin)+IterNo()-1<= $(vDateMax); 

Calendar: 

LOAD

Date(TempDate) AS CalendarDate, 

yearname(TempDate, 0, 4) as FinancialYear,

Year(yearname(TempDate, 0, 4)) as FYear,

if(Month(TempDate)<4,9+Month(TempDate),Month(TempDate)-3) as FinancialMonth,

ApplyMap('MapQuarter', 'Q' &''&  ceil(Month(TempDate)/3)) as Quarter,

Month(TempDate) as Month

RESIDENT TempCalendar ORDER BY TempDate ASC; 

DROP TABLE TempCalendar; 

Regards

Anand

jyothish8807
Master II
Master II

Hi,

Replace this part with your field.

Temp:

Load

min(OrderDate) as minDate,

max(OrderDate) as maxDate

Resident Orders;


in place of order date put your field name and resident your table.


Regards

kc

Best Regards,
KC