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

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

TA

How to create a fiscal calendar on a specific column

Labels (1)
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