Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Sam_Thomas
Creator
Creator

Add an Auto Calendar option for Every 5 Years

Hi

Is it possible to add an auto calendar option for every 5 years? Below is my calendar script. 

I want to be able to show every 5 years on a chart. Thanks.

 

[autoCalendar]:
DECLARE FIELD DEFINITION Tagged ('$date')
FIELDS
Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year'),
Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter', '$cyclic'),
Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$yearquarter', '$qualified'),
Dual('Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [_YearQuarter] Tagged ('$yearquarter', '$hidden', '$simplified'),
Month($1) AS [Month] Tagged ('$month', '$cyclic'),
Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth', '$qualified'),
Dual(Month($1), monthstart($1)) AS [_YearMonth] Tagged ('$axis', '$yearmonth', '$simplified', '$hidden'),
Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber', '$cyclic'),
Date(Floor($1)) AS [Date] Tagged ('$axis', '$date', '$qualified'),
Date(Floor($1), 'D') AS [_Date] Tagged ('$axis', '$date', '$hidden', '$simplified'),
If (DayNumberOfYear($1) <= DayNumberOfYear(Today()), 1, 0) AS [InYTD] ,
Year(Today())-Year($1) AS [YearsAgo] ,
If (DayNumberOfQuarter($1) <= DayNumberOfQuarter(Today()),1,0) AS [InQTD] ,
4*Year(Today())+Ceil(Month(Today())/3)-4*Year($1)-Ceil(Month($1)/3) AS [QuartersAgo] ,
Ceil(Month(Today())/3)-Ceil(Month($1)/3) AS [QuarterRelNo] ,
If(Day($1)<=Day(Today()),1,0) AS [InMTD] ,
12*Year(Today())+Month(Today())-12*Year($1)-Month($1) AS [MonthsAgo] ,
Month(Today())-Month($1) AS [MonthRelNo] ,
If(WeekDay($1)<=WeekDay(Today()),1,0) AS [InWTD] ,
(WeekStart(Today())-WeekStart($1))/7 AS [WeeksAgo] ,
Week(Today())-Week($1) AS [WeekRelNo] ;

DERIVE FIELDS FROM FIELDS [ResultDate], [ImplementationDate], [Date], [EarliestStartDate], [LatestEndDate] USING [autoCalendar] ;

 

 

Labels (1)
1 Solution

Accepted Solutions
marcus_sommer

You may use mod(year(YourDate), 5) as condition or flag to define your 5 years-period.

- Marcus

View solution in original post

5 Replies
marcus_sommer

You may use mod(year(YourDate), 5) as condition or flag to define your 5 years-period.

- Marcus

Sam_Thomas
Creator
Creator
Author

Thanks, Marcus. Would I put that in the load script or in the expression when creating the chart?

Sam_Thomas
Creator
Creator
Author

I placed your code in the script and it seems to have worked but the date dimensions show as 0,1,2,3 & 4 rather than the actual years - is there a way I can show the years rather than these numbers? Many thanks again. 

 

Sam_Thomas_1-1663064401479.png

 

marcus_sommer

I would apply it within the script to get a flag-field with the values of 0 - 4 and these could be used to select the appropriate 5 years-period or within the expression as a set analysis condition.

- Marcus

Sam_Thomas
Creator
Creator
Author

Ah, I see. Makes sense. Thank you.