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: 
Anonymous
Not applicable

Dates in set analysis

Hi,

I have a metric which values doesn't accumulate over time.

Example:

In Feb-15 is 4

In Feb-16 is 5

In Apr-16 is 3

If I choose a period from Jan-16 to May-16, I want to get the value 3, that corresponds to the info of the last month available.

I have a filter for selection that corresponds to MonthYear.


I want the value of that metric in 3 forms.

Choosing May-16:

1 - Period selected (May-16) (MonthYear)

2 - Prev period of Period selected (Apr-16) (MonthYear - 1)

3 - equal period of last year of period selected (May-15) (MonthYear-12)

So I want the max date that is available (regardless selection)  that is less or equal to the period in analysis.

Example:

Choosing May-16

1 - the result correponds to the value of May-16: 3

2 - the result correponds to the value of Apr-16: 3

3 - the result correponds to the valu of Feb-15: 4

So what I'm trying to do in set analysis is:

Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=>}MonthYear)={"<=$(Max(MonthYear))"}

Is this possible?

Can you please help me?

Thanks in advance,

Sílvia

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Thank you all, for your help.

I did managed to get the right value using this in set analysis:

MonthYear = {">=$(=Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=, AC_METRICA= {"Questionário de Satisfação de Colaboradores"}>} MonthYear))<=$(=Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=, AC_METRICA= {"Questionário de Satisfação de Colaboradores"}>} MonthYear))"}

,

MonthYear={"<=$(=Max(MonthYear))"}

It's like I'm saying to, give me value, where MonthYear is the max date for that AC_METRICA, and is less than the current selection I'm making.

In the second part of the set analysis is where I choose my period (1, 2 or 3)

No matter how much time I spend in qlik with set analysis, sometimes I still get confuse, but this works so...

Again, thank you all

Sílvia

View solution in original post

8 Replies
arthur_dom
Creator III
Creator III

something like this?

=sum( {<monthYear={$(=chr(39)&monthname( max(date))&chr(39)&','&

chr(39)&monthname( addmonths(max(date),-1))&chr(39)&','&

chr(39)&monthname( addmonths(max(date),-12))&chr(39))}>} value ) ?

Michiel_QV_Fan
Specialist
Specialist

I assume you are using a master calendar.

In your master calendar you can create serial date formats.

like this: autonumber(MonthYear)          as     _MonthYear_Serial

this will generate a numeric list in which for instance this is created:

feb-15     1

feb-16      13

apr-16     15

may-16     16

Now in set analysis: sum({<_MonthYear_Serial = {$(=Max(_MonthYear_Serial ))}>}metric) will give you your results when

Selected: may-16 (_MontYear_Serial = 16)

1.     sum({<_MonthYear_Serial = {$(=Max(_MonthYear_Serial )-1)}>}metric) = apr-16 (for may-16)

2.     sum({<_MonthYear_Serial = {$(=Max(_MonthYear_Serial )-1)}>}metric) = apr-16

3.     sum({<_MonthYear_Serial = {$(=Max(_MonthYear_Serial )-13)}>}metric) = feb-15


etc.

Anonymous
Not applicable
Author

Sorry, but can you explain what this does?

It's kind of confused to me

Anonymous
Not applicable
Author

I Michiel,

Is there any way to do this, without going to script ?

Case my app only reloads when other person does it, and it's impossible to try this in a short time.

martynlloyd
Partner - Creator III
Partner - Creator III

Hi Silvia

Try

Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=, MonthYear={$(Max(MonthYear))>} PutYourValueFieldHere)

Regards

Marty.

martynlloyd
Partner - Creator III
Partner - Creator III

Whoops,

Missed a curly bracket:

Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=, MonthYear={$(Max(MonthYear))}>} PutYourValueFieldHere)

arthur_dom
Creator III
Creator III

Okay. You said you wanted to make a expression using: A- The selected period, B- the month before of the selected period, C- 12 months before the selected period. So for December, for example, it is A = Dec-2016 B = Nov-2016 anc C= Dec-2015 .

Se set analysis make possible to in an expression pass a subset (part of) a larger set.

When I wrote

Sum( {<MonthYear={"SubSet"} >} value) i am making a expression that look to that subset.

Usually you have to pass on SubSet a list of values, comma separated, and if it is string you have to add single quotes.

For your subset it was need that

Sum( {<MonthYear={'Dec-2015','Nov-2016','Dec-2016'} >} value)

then i created a expression for the subset: chr(39) is single quote, monthname formats date to month and year, and i used the date field of my application as base, i took the mas available date as base date. then I wrote for the current selection(A), the previous month (B, addmonths -1) and 12 months before (C, addmonths -12)

This is A -> chr(39)&monthname( max(date))&chr(39)&','&

This is B -> chr(39)&monthname( addmonths(max(date),-1))&chr(39)&','&

This is C -> chr(39)&monthname( addmonths(max(date),-12))&chr(39)

Lastly with this expression i told the with the dollar sign ($) to say to evaluate my expression on the subset part of the set analysis, making it.

sum( {<monthYear={$(=chr(39)&monthname( max(date))&chr(39)&','&

chr(39)&monthname( addmonths(max(date),-1))&chr(39)&','&

chr(39)&monthname( addmonths(max(date),-12))&chr(39))}>} value )

Anonymous
Not applicable
Author

Thank you all, for your help.

I did managed to get the right value using this in set analysis:

MonthYear = {">=$(=Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=, AC_METRICA= {"Questionário de Satisfação de Colaboradores"}>} MonthYear))<=$(=Max({<Year=, Month=, MonthYear=, Week=, Quarter=, Date=, AC_METRICA= {"Questionário de Satisfação de Colaboradores"}>} MonthYear))"}

,

MonthYear={"<=$(=Max(MonthYear))"}

It's like I'm saying to, give me value, where MonthYear is the max date for that AC_METRICA, and is less than the current selection I'm making.

In the second part of the set analysis is where I choose my period (1, 2 or 3)

No matter how much time I spend in qlik with set analysis, sometimes I still get confuse, but this works so...

Again, thank you all

Sílvia