Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to a acheive CASE statement in Qlikview?

Hi Folks,

I have a requirement to create a group something like this,

There is a sales column and I have to create the groups as a filter for the sales amount.

Case when (Sales > 0 and Sales < 1000000)

then

"$0 to $1M"

when (Sales > 1000000 and Sales < 2000000)

then

"1M to 2M"

when (Sales >2000000 and Sales < 5000000)

then

"$2M to $5M"

else

">$5M'

Expected result should be:

$0 to $1M

$1M to $2M

$2M to $5M

>$5M

User should be able to see all of the above options in the filter and select them accordingly.

Kindly do the needful.

Thanks in advance.

3 Replies
sunny_talwar

Try nested if....

If(Sales > 0 and Sales < 1000000, Dual('$0 to $1M', 1),

     If(Sales < 2000000, Dual('$1M to $2M', 2),

          If(Sales < 5000000, Dual('$2M to $5M', 3), Dual('>$5M', 4))))

Fixed the expression by adding the Dual as per swuehl‌ below

swuehl
MVP
MVP

I think you missed accidently a Dual():

If(Sales > 0 and Sales < 1000000,

      Dual('$0 to $1M', 1),

      If(Sales < 2000000,

          Dual('$1M to $2M', 2),

          If(Sales < 5000000, Dual('$2M to $5M', 3), Dual('>$5M', 4) )

     )

)

Colin-Albert

You may want to trap sales < 0  - if a customer only has a credit you don't want it classed in the >$5M bucket!.
Rare but it does happen!

either use

If(Sales < 1000000,

      Dual('$0 to $1M', 1),

      If(Sales < 2000000,

          Dual('$1M to $2M', 2),

          If(Sales < 5000000,

               Dual('$2M to $5M', 3),

               Dual('>$5M', 4)

           )

     )

)

or

If(Sales < 0,

     Dual('< $0', 0),

     If(Sales >= 0 and Sales < 1000000,

           Dual('$0 to $1M', 1),

           If(Sales < 2000000,

               Dual('$1M to $2M', 2),

               If(Sales < 5000000,

                    Dual('$2M to $5M', 3),

                    Dual('>$5M', 4)

               )

          )

     )

)