Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
James_B
Contributor II
Contributor II

Help Please

hi All,  I am having issues working out what I am doing wrong, below is the expression I'm using to calculate the cover for all departments which works but when i filter each department to make sure they have enough cover it still shows the same overall figure. how can i link the result to what i have filtered?

 

 

=avg({<[Cost Ctr]={'1234'}>} CoverLine)+avg({<[Cost Ctr]={'1235'}>} CoverLine)+avg({<[Cost Ctr]={'1245'}>} CoverLine)+avg({<[Cost Ctr]={'1235'}>} CoverLine)

Labels (1)
1 Solution

Accepted Solutions
GaryGiles
Specialist
Specialist

Okay, let's start by rewriting your expression with the following:

=sum(aggr(avg({<[Cost Ctr]={'1234','1235','1245','1235'}>} CoverLine), [Cost Ctr]))

(Not sure why '1235' is repeated.  Was that supposed to be a different [Cost Ctr]?)

That will give you the same results as your expression with multiple avg functions.

What behavior you looking for via your filter?  Are you wanting to select [Cost Ctr] outside of the ones listed or will your selections be within that group?

=sum(aggr(avg({<[Cost Ctr]*={'1234','1235','1245','1235'}>} CoverLine), [Cost Ctr]))

will isolate a [Cost Ctr] selected within the group and return 0 if the selection is outside the group.

 

 

View solution in original post

8 Replies
GaryGiles
Specialist
Specialist

Does the field [Cost Ctr] represent the department and is that the field you are filtering on?

Is so, add an * before each = in your set analysis, like this:

=avg({<[Cost Ctr]*={'1234'}>} CoverLine)+avg({<[Cost Ctr]*={'1235'}>} CoverLine)+avg({<[Cost Ctr]*={'1245'}>} CoverLine)+avg({<[Cost Ctr]*={'1235'}>} CoverLine)

It will create an Intersection between the value specified and the selection made in the filter.  So, you choose '1235', that [Cost Ctr] will remain.

James_B
Contributor II
Contributor II
Author

yes that's correct the field I'm filtering is [Cost Ctr] and yes it represents the department. i will add this expression Thank you.

James_B
Contributor II
Contributor II
Author

unfortunately this seems not to be working, when I filter a specific cost center the value is - 

GaryGiles
Specialist
Specialist

Okay, let's start by rewriting your expression with the following:

=sum(aggr(avg({<[Cost Ctr]={'1234','1235','1245','1235'}>} CoverLine), [Cost Ctr]))

(Not sure why '1235' is repeated.  Was that supposed to be a different [Cost Ctr]?)

That will give you the same results as your expression with multiple avg functions.

What behavior you looking for via your filter?  Are you wanting to select [Cost Ctr] outside of the ones listed or will your selections be within that group?

=sum(aggr(avg({<[Cost Ctr]*={'1234','1235','1245','1235'}>} CoverLine), [Cost Ctr]))

will isolate a [Cost Ctr] selected within the group and return 0 if the selection is outside the group.

 

 

James_B
Contributor II
Contributor II
Author

Thank you very much this worked brilliantly.

James_B
Contributor II
Contributor II
Author

Hi Gary, I have a bit of a Problem, the above Expression has  worked with regards to Cost Center filtering but unfortunately when I select a specific Date the calculation doesn't display the correct data. 

What would i need to add to the expression to incorporate the date filter? ( to only show data for that date)

GaryGiles
Specialist
Specialist

I'm not sure I understand your question because that expression, as written, should react to other filters.  If you filter on a date, it would show the results of the set analysis only for rows associated with that date.  Can you be more specific about why you feel the results are incorrect?

James_B
Contributor II
Contributor II
Author

Thank you for your quick response.

The data in the excel sheet when selecting a date doesn't match the data displaying in Qlik i have double checked the Expression to see if I made any faults but looks good, thought I would need to include the date in the expression but as you stated it should already include that filter so the error must be elsewhere.