Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Variables for current year and previous year

hi all could you please reply me with your valuable answers,

I have two variables for current year and previous year,

Let vmaxyear='Max(Year)';
Let vpreyear = 'Max(Year)-1';

so how can I write an expression for

Current year - Previous year / Previous Year

Please help me

9 Replies
marcus_sommer

I wouldn't use variables for this. Variables are good for things which are frequently used or which are long and complex and not for very easy things - it's cluttered only the variable-overview. I would query this directly within a set analysis:

sum({< Year = {"$(=max(Year))"}>} value) - sum({< Year = {"$(=max(Year)-1)"}>} value)

- Marcus

Not applicable
Author

Hi Marcus Thank you for your Reply,

I need to use multiple variables in the single set analysis so only I asked that question by giving small example

any other idea to create variables and to work out them properly

marcus_sommer

If you want to use variables I would create these both variables within the gui:

vmaxyear:

= Max(Year)

vpreyear:

= Max(Year)-1

and then:

sum({< Year = {"$(vmaxyear)"}>} value) - sum({< Year = {"$(vpreyear)"}>} value)

Here is an excellent explanation how to create variables: The Magic of Variables.

- Marcus

Not applicable
Author

yes Marcus Thank you,

however same thing I done it ,

is not working properly for me,

what I done is

i took one text object gave first expression =sum({< Year = {"$(vmaxyear)"}>} value)

in another text object gave second one =  sum({< Year = {"$(vpreyear)"}>} value)

if you take both the expressions ,

they are not working properly it is giving same value
without variables the value is:
for ex:
first one:3000
second one:5000

With Variables

for ex:

first one: 3000
Second one :3000

here not changing the value I hope you understand my problem

marcus_sommer

This looked that the variables aren't correct. Please check them again maybe by putting them within a textbox and they should be different. If this don't worked create a small example with a small inline-table and those variables and textboxes + charts.

- Marcus

Not applicable
Author

Hi Marcus,

in the edit script I created two variables like this:

vmaxyear='max(Year)';
vprreyear='max(Year)-1';

and I took two bar charts one is for current year salaries, and one is for last year salaries
current I gave expression like this:sum({< Year_P = {"$(vmaxyear)"}>} Salaries)

last year I gave expression like this: sum({< Year_P = {"$(vpreyear)"}>} Salaries)

can you correct me where I have done mistake?
if you select 2008 or 2009 two bar charts showing same value

marcus_sommer

If you creates those variables within the script the variables contain no year-number else the expression as string. To use such variables you need $-sign expansion to get the string converted to an expression:

sum({< Year = {"$(=$(vmaxyear))"}>} value) - sum({< Year = {"$(=$(vpreyear))"}>} value)

Beside the above mentioned post The Magic of Variables see also The Magic of Dollar Expansions.

- Marcus

Not applicable
Author

thank you marcus for your response,

please check below:

I gave like this is it correct?

let vmaxyear=' sum({< Year_P = {"$(=$(vmaxyear))"}>}Salaries)';

let vpreyear= 'sum({< Year_P = {"$(=$(vmaxyear)-1)"}>}Salaries)';


in the bar chart I had mention this   $(vmaxyear) as a measure right?

if above one is right I am not getting correctly?

marcus_sommer

No, it's not correct. The $-sign expansion has to happens within the gui-expression and not by creating the variables within the script. I suggest you takes some minutes to read the both above mentioned postings which explain it very well which kinds of variable-creations are possible, how they differs to each other and how you could access these variables.

- Marcus