Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Lacinne
Partner - Contributor
Partner - Contributor

Use a measure from a straight table in another straight table - Qlik Sense

Hi,  I have managed to create a calculated ABC Ranking based off of sliders..  Now I need to get a count of the A's, B's, etc in another table.  Is there a way to reference the TestRANK measure in my other table?  

Lacinne_0-1662332709262.png

 

Labels (1)
3 Replies
oskartoivonen
Partner - Contributor III
Partner - Contributor III

In Qlik Sense you should use create your measure as a master measure, which then allows re-use across multiple objects. Depending on the calculation, the master measure version might need slight modification as a measure created in a table might not transfer into another table one-for-one.

Lacinne
Partner - Contributor
Partner - Contributor
Author

Thank you for the quick reply.  My measure will not work as a master measure because it is using the “above” feature in my straight table. Perhaps there is a better way to calculate my measure.  I am having to teach myself so am always open to new ways to do things.

 

What I’m trying to calculate:  Based on sliders (percentage) selection the RANK column should display A, B, C, D. 

 

Here is my formula:

=IF(Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL)))  <= sum(Total IV_TaskCnt) * (($(A-Movers))/100), 'A',

 

IF( Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL))) > sum(Total IV_TaskCnt) * (($(B-Movers))/100)

       and  Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL))) <= (floor(sum(Total IV_TaskCnt) * $(A-Movers)/100) + floor(sum(Total IV_TaskCnt) * ($(B-Movers)/100))), 'B',

 

IF( Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL))) > (floor(sum(Total IV_TaskCnt) * $(A-Movers)/100) + floor(sum(Total IV_TaskCnt) * ($(B-Movers)/100)))

                   and Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL))) <= (floor(sum(Total IV_TaskCnt) * $(A-Movers)/100) + floor(sum(Total IV_TaskCnt) * ($(B-Movers)/100)) + floor(sum(Total IV_TaskCnt) * ($(C-Movers)/100))), 'C',

 

IF( Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL))) > (floor(sum(Total IV_TaskCnt) * $(A-Movers)/100) + floor(sum(Total IV_TaskCnt) * ($(B-Movers)/100)) + floor(sum(Total IV_TaskCnt) * ($(C-Movers)/100)))

                   and Rangesum(Above(TOTAL Sum(IV_TaskCnt),0,rowno(TOTAL))) <= (floor(sum(Total IV_TaskCnt) * $(A-Movers)/100) + floor(sum(Total IV_TaskCnt) * ($(B-Movers)/100)) + floor(sum(Total IV_TaskCnt) * ($(C-Movers)/100)) + floor(sum(Total IV_TaskCnt) * ($(D-Movers)/100))),'D'))))

 

Where Variables are tied to sliders except D-Movers which is this calculation: 100 - (($(A-Movers)) +($(B-Movers)) +($(C-Movers)))

 

Based on this ranking I would want the A Sku Total (highlighted in Green) at the top to equal 9.

 

Lacinne_0-1662387879883.png

 

oskartoivonen
Partner - Contributor III
Partner - Contributor III

I think I got the idea, and your calculation is quite ambitious. You're basically trying to create a new dimension on the fly with dynamic sliders to set the threshold between rank groups. It's still possible to use above-function outside of a table, it just means you need to surround your measure with an Aggr, which basically allows you to add dimensions to the calculation, and more importantly, it allows you to sort the dimensions as well.

Only weakness is, that the dimensions cannot be measures/expressions themselves, so if you're sorting your rows based on an aggregation, it wouldn't most likely work unfortunately.