Skip to main content
Announcements
April 9th: The AI Roadmap: 6 Landmarks for AI-ready Data and Analytics: REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mfigueiredo
Contributor III

Set Analysis with current selections

Hi Qlik Community,

Although I've done research on this topic (and there are plenty on YTD, QTD here on the community) I can't seem to find a solution that helps me.

I have the following table, with data for each Quarter. I do not have a Quarter field in my Model, and the company doesn't have it as well.

Expressions:

Q1

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'1','2','3'}>} Price)

/

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'1','2','3'}>} Sales)

Q2:

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}>} Price)

/

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}>} Sales)

and the other expressions change ONLY the months as well.

My problem:

Data is loaded everyday; which means I already have data for June and July.

However, the specific reports I am creating should be sensible to user selections.

What I mean is: while I was making the May Report, June data was already available and included in that Q2 expression. But I don't want June data to be included if I did not select that month.

I need the Q2 expression (and all others) to ONLY include the months the user has selected. If I select the first 5 months, Q1 should represent the average for the first three months and Q2 for ONLY the fourth and fifth month.

I wasn't aware of this problem until now... Can you help me?

I was hoping to get an expression that solved this, since I only make the charts and do not edit the model or the script at all.

Thank you so much,

Mariana.

1 Solution

Accepted Solutions
Gysbert_Wassenaar
Partner - Champion III

Try intersection with the default state:

sum({$*<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}>} Price)

/

sum({$*<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}>} Sales)

Or intersection with only the possible Month values from the default state:

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}*P(Month)>} Price)

/

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}*P(Month)>} Sales)


talk is cheap, supply exceeds demand

View solution in original post

2 Replies
Gysbert_Wassenaar
Partner - Champion III

Try intersection with the default state:

sum({$*<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}>} Price)

/

sum({$*<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}>} Sales)

Or intersection with only the possible Month values from the default state:

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}*P(Month)>} Price)

/

sum({<Year={$(=max(Year))}, MarketCd=-{'PA','SPO','OF','AM','AC'}, Month={'4','5','6'}*P(Month)>} Sales)


talk is cheap, supply exceeds demand
mfigueiredo
Contributor III
Author

Thank you so much Gysbert.

The first expression works perfectly! I had tried the dollar sign but without the * and in the wrong place it seems.

Ashamed to find out how simple it was... then again I am a Qlik Newbie!

Best regards,

Mariana.