Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Nested If Then Else Statement

msawyer
5 - Atom

Is it possible to create an If Then Else statement that allows for more than three conditions?  For example, I need to create an If Then Else statement that looks at a number and determines if it falls in the following buckets; late, on-time, within 30 days, between 31 and 60 days, between 61 and 90 days, and greater than 90 days.

 

Thanks!!

13 REPLIES 13
JohnJPS
15 - Aurora
Sure - just put the entire nested IF wherever needed, including its own ENDIF.... example: IF c THEN t ELSE (IF c THEN t ELSE f ENDIF) ENDIF.

The parnthese aren't needed either - just there for clarification. Hope that helps!
dataMack
12 - Quasar

You should also check out the tile tool for quickly creating custom range bands like that.  Assuming you have (or used a formula to create) a field that is numeric (ex. days late), then in the tile tool, you can pick 'Manual' for the tile method then just type your cutoffs.

MarqueeCrew
20 - Arcturus
20 - Arcturus

If arg1 then result1 elseif

arg2 then result2 elseif

arg3 then result3 else

default

endif

 

with dates you can use <= as once 30 days is used in an argument , when you check for 60 days the result must be between 30 and 60. 

 

Just a thought for you. 

 

Thanks,

Mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
Please Subscribe to my youTube channel.
RJS
7 - Meteor

Hello there!

Good topic

I have a statement that will create a column of day ranges but it will only create 2 ranges for some reason.

It seems to like only the  "Over 180" and the "0-30"  I have several others that just wont compute out.

Also the 2 groupings are not lining up with the days they are supposed to be lined up with

 

The [Days Open] field is the result of 2 diff dates calculated in 'days'

 

If [Days Open] >= '180' THEN "Over 180" elseif  [Days Open] >= '90' THEN "90-180" elseif  [Days Open] >= '60'  THEN "60-90" elseif  [Days Open] >= '40'  THEN "40-60" elseif  [Days Open] >= '30' THEN "30-40" elseif  [Days Open] >= '0' THEN "0-30" Else [Days Open] ENDIF 

 

Any help would be extremely appreciated!

thomas_vdb
7 - Meteor

You don't need single quotes around your conditions. Doing so interprets you difference of date as a number, and then your nested IF THEN ELSEIF statement is working

 

Capture2.PNG

RJS
7 - Meteor

Perfect and Thank you!

anup_joseph1989
5 - Atom

I have a CSV file with column PDPDESC which has values I (stands for Inconsistent), S( stands for Satisfactory) and L (Leading Performance). Below was a formula I added to my existing workflow to include this particular metric:-

 

IF [PDPDESC]="I" THEN "INCONSISTENT PERFORMANCE" ELSE(IF [PDPDESC]="S" THEN "SATISFACTORY PERFORMANCE" ELSE (IF [PDPDESC]="L" THEN "LEADING PERFORMANCE" ELSE "N/A" ENDIF) ENDIF

 

It still gives me Parse Error when I try IF c THEN t ELSEIF c2 THEN t2 ELSE f ENDIF. Then tried using the above formula but gives me "Unmatched ( " error.

 

Need some help on this

thomas_vdb
7 - Meteor

You have 3 IF but only 2 ENDIF
You opened 2 (, but only closed one;

Try indenting your code. You'll see not all is closed :)

 

IF [PDPDESC]="I"
THEN "INCONSISTENT PERFORMANCE"
ELSE(
               IF [PDPDESC]="S"
               THEN "SATISFACTORY PERFORMANCE"
               ELSE (
                           IF [PDPDESC]="L"
                           THEN "LEADING PERFORMANCE"
                           ELSE "N/A"
                           ENDIF)
               ENDIF

 

With this in mind you can complete your code - one ) and one ENDIF missing

anup_joseph1989
5 - Atom

Perfecto ! Thanks bro

Labels