Switch Statement Formula

Adding a switch statement formula to Anaplan to get rid of long nested IFs!

This would assist in readability (and therefore maintenance) of complex formulae.

Switch statements allow you to test a condition, and assign an outcome to each condition.

For instance you may have want to test what mode of transport is being used: car, boat, or aeroplane.

Using an IF statement your formula may look like this:

IF Transport = Modes.Car THEN Car Outcome ELSE IF Transport = Modes.Boat THEN Boat Outcome ELSE IF Transport = Modes.Aeroplane THEN Aeroplane Outcome ELSE BLANK

The nested IFs cause Anaplan to check each condition in turn and doesn't represent the underlying logic of the calculation. You want one mode of transport to map to one condition, and not cycle through all conditions.

A switch could look like this:

SWITCH Transport CASE Modes.Car: Car Output CASE Modes.Boat: Boat Output CASE Modes.Aeroplane: Aeroplane Output CASE DEFAULT: BLANK

This also allows a model building to add a default, or exception, case.

4 Comments
Master Anaplanner/Community Boss

Could  you not have a module dimensioned on mode with outcome and just lookup against it?

Potentially will also need to use FINDITEM if transport isn't formatted on Mode.

Community Manager
 
Status changed to: Needs Community Support
Master Anaplanner/Community Boss

@Nicolas Cadier  I agree that the CASE statement could be more "readable" than "IF ELSE IF" statement...but I do not agree about the performance. 

 

Using "IF ELSE IF" statements you could have the same result as a "CASE" statement that stops at the first "TRUE" condition.   

 

In Anaplan the "IF ELSE IF" statement applies the "first true" exit and there is the possibility that not all the "IF's" in the statement are evaluated. 

At the first TRUE "IF".. the calculation stops and the other "IF's" on that "ELSE" are not evaluated anymore. 

 

This is why, as "best practice for performance" when using "IF ELSE IF" statements, is to put as early as possible the most probable TRUE "IF" statement in order to make Anaplan evaluate as less as possible from all the possibilities of an "IF ELSE IF" statements from a formula. 

 

see below more information about this:

https://community.anaplan.com/t5/Best-Practices/Formula-Structure-for-Performance/ta-p/33177

 

Contributor

YES!

Users Online
Currently online: 211 members 444 guests
Please welcome our newest community members: