Qlik Community

New to Qlik Sense

Discussion board where members can get started with Qlik Sense.

Announcements
Qlik® Product Spotlight: Discover what’s possible. Get more from our products.
See for yourself. Register today.
sdrummond
New Contributor II

Qlik Sense - Set Analysis Question

Hi all

I need help on understanding Set Analysis in a particular scenario. I have the following table:

Data:

LOAD *,

Year &'-' & Quarter as YearQtr;

LOAD * inline [

Row, Year, Quarter, Amount

1, 2012, Q1, 1100

2, 2012, Q2, 1700

3, 2012, Q3, 1400

4, 2012, Q4, 1800

5, 2013, Q1, 1000

6, 2013, Q2, 1300

7, 2013, Q3, 1100

8, 2013, Q4, 1400

9, 2014, Q1, 500];

I want to build a number of KPI's off this data which would determine

a) Total amount for all quarters

b) Total amount for YTD (in this case 2014)

c) Total amount for Quarters minus last 4 quarters

d) Total amount for Quarters minus last 6 quarters

In my visualizations, I will have filter panel using YearQtr. I also have 4 KPI's per each calculation. Based on the selections made in the filter panel, the amounts for each should change accordingly

For a) my expression wouldn't need Set Analysis, it would simply be a sum of amount, this would never change

For the other 3 however I'm getting varying results.

I'm basing my condition off the Row value e.g. =SUM({$<Row = {"<=$(Row) - 4"}>}Amount) but it's not working.

Any help is appreciated.

Regards

1 Solution

Accepted Solutions
Luminary
Luminary

Re: Qlik Sense - Set Analysis Question

Hi Sean,

yes, you can combine it easily into one set modifier:

Sum({<YearQtr, Row = {">=$(=vMaxQtrSeq-3)<=$(vMaxQtrSeq)"} >}  Amount)

Best

Juraj

4 Replies
Luminary
Luminary

Re: Qlik Sense - Set Analysis Question

Hi Sean,

How is your Row variable you use in set analysis defined? It should be

=Max(Row)

You also need to turn off YearQtr filter in your set analysis in order to enlarge the data set for the calculation based on your requirements. Then you should be able to elaborate on your expression:

b: SUM({$<YearQtr, Row = {"<=$(Row)"}, Year={$(vMaxYear)}>}Amount)

c: SUM({$<YearQtr, Row = {"<=$(Row) - 4"}>}Amount)

d: SUM({$<YearQtr, Row = {"<=$(Row) - 6"}>}Amount)

Variable vMaxYear is defined as =Max(Year).

Best

Juraj

sdrummond
New Contributor II

Re: Qlik Sense - Set Analysis Question

Thanks Juraj, that set me on the right direction. I'm trying to expand on this a little.

The data I have expands to over 10 years worth of values. Using the same table as before, I'm now working the set analysis so that the calculations are generated as per the selection i.e. if I select 2012-Q3, I should get all values between 2012-Q3 and 2011-Q4 for the 1 year aggregation

I'm using a variable to generate the max row number (vMaxQtrSeq), so in line with the above table my expression is something like this:

Sum({<YearQtr, Row = {">=$(=$(vMaxQtrSeq)-3), Row = {"<=$(=$(vMaxQtrSeq)) "} >}  Amount)

But it doesn't work - I think that's down to the use of using the Row condition twice, I've tried to put it in the one strong to no avail:

Row = {"'>=' & $(=$(vMaxQtrSeq)-3), & '<=' &$(=$(vMaxQtrSeq))"}


Any ideas?

Luminary
Luminary

Re: Qlik Sense - Set Analysis Question

Hi Sean,

yes, you can combine it easily into one set modifier:

Sum({<YearQtr, Row = {">=$(=vMaxQtrSeq-3)<=$(vMaxQtrSeq)"} >}  Amount)

Best

Juraj

sdrummond
New Contributor II

Re: Qlik Sense - Set Analysis Question

A slight tweak:

Sum({<YearQtr, Row = {"$(= '>=' & $(=$(vMaxQtrSeq)-3) & '<=' & $(=$(vMaxQtrSeq)))"} >}  Amount)

Thanks for the help Juraj

Community Browser