Qlik Community

QlikView Creating Analytics

Discussion Board for collaboration related to Creating Analytics for QlikView.

Not applicable

if statement in qlikview expressions

Hi there,

I am creating an analysis dashboard. Since the currency rate does not include 1 for US Dollars, I need to write an If statement for the sales in US$ across the stores around the world. Since store ID 1,16, 19 are all using US dollars, the expression I wrote is :

If (StoreID=1 or 16 or 19, sum(sale), sum(sale/rate)).  But when I double check, say Japanese store, the result returned to me is still sum(sale) instead of sum(sale/rate). Can someone tell me what goes wrong here?

Thank you so much!

Best Regards,

Gloria

4 Replies
venkatg6759
Contributor III

Re: if statement in qlikview expressions

if(sum({$<StoreID={'1','16','19'}>}sale),sum(sale),sum(sale/rate))

MVP
MVP

Re: if statement in qlikview expressions

Your condition is always true.

Try

If (StoreID=1 or StoreID = 16 or StoreID =19, sum(sale), sum(sale/rate))


or


If (match(StoreID,1,16,19), sum(sale), sum(sale/rate))

shawn-qv
Contributor

Re: if statement in qlikview expressions

Or you could convert the Sale values in your script instead, and just do a sum(Sale) in your chart expression.

If doing it in script, either one of swuehl's expression will work and you would just alias it as Sale.

S.

MVP
MVP

Re: if statement in qlikview expressions

Hi,

Converting in script itself is a good idea, because if you are doing this in expression then you have to write if in all the set analysis expression.

Try like this in script

LOAD

*,

If(Match(StoreID, 1, 16, 19), sale, sale/rate) AS SalesValue

FROM Datasource;

Now in set analysis just use

Sum(SalesValue)

If you don't want to handle this in script then use this expression

If (Match(StoreID, 1, 16, 19), sum(sale), sum(sale/rate))


OR

Sum({<StoreID*={1, 16, 19}>}sale) + Sum({<StoreID-={1, 16, 19}>}sale/rate)


Hope this helps you.


Regards,

Jagan.

Community Browser