Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
jamielim
Contributor III
Contributor III

If filter selection by user exists in list, then use a certain expression, else 0

Hi, I have a filter on this field DEPT that user can select from a list of values (e.g. DeptA, DeptB, DeptC, DeptD)

In a measure, i want to set up an expression that calculates NoStaff which depends on what DEPT is selected by the user.

If user select DeptA, the measure returns value using NoStaff in DeptA

If user select DeptB, the measure returns value using NoStaff in DeptB

if user select DeptC &/or DeptD, the measure returns '0'

If user select DeptA & DeptC, the measure returns value using NoStaff in DeptA only

If user select DeptA, DeptB & DeptC, the measure returns value using NoStaff in DeptA & DeptB only

...

Based on the above logic, how should I set up my expression?

I know I can use If, then, else. But this seems to suggest that I need to list every possible permutation of choice by the user. Is there an easier way, similar to the way SQL allows

if (DEPT in ('DeptA', 'DeptB'),  sum({<DEPT={'DeptA', 'DeptB'}>}NoStaff),0)--> but I'm not sure if this will handle case where user selects DeptA and DeptC.

Any advice?

1 Solution

Accepted Solutions
tresesco
MVP
MVP

Set analysis in qv is very powerful. Try implicit intersection  like:

Sum({<DEPT * = {'DeptA', 'DeptB'}>} NoStaff)

View solution in original post

4 Replies
tresesco
MVP
MVP

Set analysis in qv is very powerful. Try implicit intersection  like:

Sum({<DEPT * = {'DeptA', 'DeptB'}>} NoStaff)

shraddha_g
Partner - Master III
Partner - Master III

Try

if(wildmatch(getfieldselection(DEPT),'DeptA','DeptB'),sum({<DEPT={'DeptA', 'DeptB'}>}NoStaff),0)

jamielim
Contributor III
Contributor III
Author

Thanks!

jamielim
Contributor III
Contributor III
Author

Thank you!