Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Comparing This Year Date's Value with Last Year Same Date Value

I have a table of 3 years of data. Assume Columns are Date_Key, Value_For_Date, Month_of_Date, Year_Of_Date.

When user selects Year_of_Date, Month_Of_Date I need to show a table in the following format

Date              Month_Value    Last_Year_Dt   Last_Year_Value

02/01/2015    1000                 02/02/2014       500

02/02/2015     800                  02/03/2014       650

02/03/2015     750                  02/04/2014       825

..

..

02/28/2015    1000                 03/01/2014      750

Is it possible to get Last_Year_Value with just formula in the expression.

Would appreciate your help.

Thanks

Raghu

5 Replies
Not applicable
Author

Hi,

Can you attach the sample file.

so that we can help you in better way.

we are unable to open the qvw file...

@Sub2u

Not applicable
Author

Here is the script and the Chart Object Dimensions/Expressions. Thanks for looking at this.

Raghu

Script:

-------

SET ThousandSep=',';

SET DecimalSep='.';

SET MoneyThousandSep=',';

SET MoneyDecimalSep='.';

SET MoneyFormat='$#,##0.00;($#,##0.00)';

SET TimeFormat='h:mm:ss TT';

SET DateFormat='M/D/YYYY';

SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';

SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';

LET var_TWOYEARSBACK=today()-(2*364);

LET var_YEARAHEAD=today() + 364;

LET var_DAYSNUM = $(var_YEARAHEAD) - $(var_TWOYEARSBACK);

TEMP:

LOAD

Date($(var_TWOYEARSBACK)+ IterNo()-1,'MM/DD/YYYY') as TempDate

AutoGenerate 1 While IterNo() <= $(var_DAYSNUM);

LOAD

TempDate as Date_Key,

Day(TempDate) as Value_For_Date,

Year(TempDate) as Year_Of_Date,

Month(TempDate) as Month_Of_Date,

Date(TempDate-364) as LastYear_Date

RESIDENT TEMP;

Chart Object: With Two Dimensions and Two Expressions

-------------------------------------------------------------------------------

Dimension 1: CY_Date

Date_Key

Dimension 2: Last_Year_Date

=Date((Date_Key-364),'MM/DD/YYYY')

Expression 1: CY_Date_Value

=sum(Value_For_Date)

Expression 2: LY_Date_Value

=sum({1}{<Date_Key={"=$(=Date((Date_Key-364),'MM/DD/YYYY')))"}>}Value_For_Date)

tyagishaila
Specialist
Specialist

sum(Value_For_Date)


why are you adding days here?




=sum({1}{<Date_Key={"=$(=Date((Date_Key-364),'MM/DD/YYYY')))"}>}Value_For_Date)

This expression must be written as

=sum({1<Date_Key={LastYear_Date}>}Value_For_Date)

Not applicable
Author

Thanks for looking at this. But your expression does not work. Can you validate please  ? For simplicity what I have done is the Value_for_Date is always the day number. So for example for Feb 1, 2015 the Value_for_Date should be 1, the previous year same date is Feb 2, 2014 and so the Value_for_date should be 2. The expression you gave, always gives a value of 0.

tyagishaila
Specialist
Specialist

Sorry last one was not correct. It may be work..

Expression was not wrong.. There was the problem of Value_For_Date,

CY_Value = sum({1<Date_Key>}Day(Date_Key))

LY_Value = sum({1<LastYear_Date>}Day(LastYear_Date))