Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Limit line chart dimension by top 5 values

Hi all

I am working with a line chart and would like to limit one of the dimensions to the top 5, ranked according to the most recent data for a second dimension on the x axis. Please see attached example - Destination is the dimension I would like to limit, Phase is on the x axis  and the y axis is the % of respondents who selected the Destination.

On the left hand chart I have used the  'Fixed number' limitation and set this to top  5 for the Destination dimension. This approach shows the top five data points determined separately for each Phase, which means I don't have a continuous series. For example, Japan is among the top 5 Destinations in Phase 4 and 5 but not Phases 1-3 and hence the data does not show for Phases 1-3. I would like to show the top 5 destinations ranked according to Phase 5, and then show the data for these five destinations for Phases 1-4 as well, to produce a continuous series. If Australia is not among the top 5, I also need to show Australia.

On the right hand chart I have tried a different approach by specifying Australia in the dimension field expression. How can I extend this to show the top 5 destinations in Phase 5 and Australia if it is not ranked among the top five?

Any help would be greatly appreciated.

Thank you

Emma

1 Solution

Accepted Solutions
sunny_talwar

May be this

If(Aggr(NODISTINCT Rank(count({<Q11_Selection={"Selected"}, Phase = {5}>}RESPID)), Q11_Destination) < 6,

Count({<Q11_Selection={"Selected"},Phase=>}  RESPID)/Count( {<Phase=>}distinct (RESPID)))

Capture.PNG

View solution in original post

4 Replies
sunny_talwar

May be this

If(Aggr(NODISTINCT Rank(count({<Q11_Selection={"Selected"}, Phase = {5}>}RESPID)), Q11_Destination) < 6,

Count({<Q11_Selection={"Selected"},Phase=>}  RESPID)/Count( {<Phase=>}distinct (RESPID)))

Capture.PNG

Not applicable
Author

Hi Sunny

Thanks again for your help, I should have realised that I could add an IF statement to the measure expression. Works perfectly and I also added an OR so that if Australia doesn't fall into the top 5 then it still appears on the chart:

If(Aggr(NODISTINCT Rank(count({<Q11_Selection={"Selected"}, Phase = {5}>}RESPID)), Q11_Destination) < 6 or Q11_Destination='Australia',

Count({<Q11_Selection={"Selected"},Phase=>}  RESPID)/Count( {<Phase=>}distinct (RESPID)))

Thanks so much

Emma

Not applicable
Author

Hi Sunny

Just on this chart again, do you know why when I use the Phase filter the line chart X axis updates? I need the line chart to always show Phase 1-5. I thought adding Phase=> to the below expression would achieve this, is there something else I need to add?

If(Aggr(NODISTINCT Rank(count({<Q11_Selection={"Selected"}, Phase = {5}>}RESPID)), Q11_Destination) < 6 or Q11_Destination='Australia',

Count({<Q11_Selection={"Selected"},Phase=>}  RESPID)/Count( {<Phase=>}distinct (RESPID)))

Thanks

Emma

sunny_talwar

May be try this

If(Only({<Phase>}Aggr(NODISTINCT Rank(count({<Q11_Selection={"Selected"}, Phase = {5}>}RESPID)), Q11_Destination)) < 6 or Only({<Phase>}Q11_Destination) = 'Australia',

Count({<Q11_Selection={"Selected"},Phase=>}  RESPID)/Count( {<Phase=>}distinct (RESPID)))