Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
aviadbein
Contributor II
Contributor II

If Condition for Multiple And values in expression

I All,

I'm trying to write an expression with using if statement in order to sum multiple field values.

I've got "Source" field with 2 values: Order, Invoice.

I tried the following if statement:

if(Source='Order' and Source='Invoice', sum(OrderUnits) + sum(InvoiceUnits),

  if(Source='Order', sum(OrderUnits), if(Source='Invoice', sum(InvoiceUnits))))

but I get wrong numbers.

I know that for multiple Or values I can use match(), in what function or condition can I use for multiple And values?

Thanks in advance,

Aviad

1 Solution

Accepted Solutions
sunny_talwar

Or this

If(SubStringCount('|' & GetFieldSelections(Source, '|,|') & '|', '|Order|') = 1 and SubStringCount('|' & GetFieldSelections(Source, '|,|') & '|', '|Invoice|') = 1,  Sum(OrderUnits) + Sum(InvoiceUnits),

     If(Source='Order', Sum(OrderUnits),

          If(Source = 'Invoice', Sum(InvoiceUnits))))

View solution in original post

3 Replies
sunny_talwar

Try this:

If(GetSelectedCount(Source) = 2, Sum(OrderUnits) + Sum(InvoiceUnits),

  If(Source='Order', Sum(OrderUnits),

     If(Source = 'Invoice', Sum(InvoiceUnits))))

sunny_talwar

Or this

If(SubStringCount('|' & GetFieldSelections(Source, '|,|') & '|', '|Order|') = 1 and SubStringCount('|' & GetFieldSelections(Source, '|,|') & '|', '|Invoice|') = 1,  Sum(OrderUnits) + Sum(InvoiceUnits),

     If(Source='Order', Sum(OrderUnits),

          If(Source = 'Invoice', Sum(InvoiceUnits))))

aviadbein
Contributor II
Contributor II
Author

Hi Sunny,

Both solutions work like a charm.

However, I prefer the second solution because it's generic and suitable for cases like field with three or more values by make it possible to combine different sets of values.

Thanks for your help!