Solved! Unknown Binary Operator in Adaptive Planning

When working with formulas in your model sheets in Adaptive Planning you may come across an oblique error which doesn’t initially appear to make sense, but once you understand what it is, it becomes fairly obvious what it means (like most errors!).


So what is the error and how do you fix it?

Have you been writing an if statement or two in your formula?

The reason for the error is that it relates to an if function used in your formula. You need to make sure the structure of your if formula statements contain a truth-y capture, and a false-y capture.

For example:

if ( 2 > 1, 3, 0 )

In the above if formula, we have a capture of the statement first, which asks: is 2 is greater than 1 ( 2 > 1 )?

If the statement is true then we return the first capture in our if statement structure, being 3 . If the statement is false then we return the second part of our if statement, being 0 .


So look at your if statement in your model and check the following:

  • Is there a true and false section to the if statement?
  • If there are nested if statements check the brackets are in the right areas.

Simple examples of where I’ve encountered the error in my own model sheets:

  1. I’ve removed a function within the statement part of the if function and have forgotten to remove all the brackets from within that section, or perhaps I did not have enough brackets:
if ( 2 > 1 ) 3, 0 )
  1. The other times I have made this mistake is when I go a bit crazy on nested if functions and forget one of the outer if statements didn’t have its false-y value.
if ( 2 > 1, if ( 3 = 0, 1, 2 ) )


If you come from an Excel or spreadsheet background these errors should be relatively easy to spot. If you are more familiar with a programming language writing if statements like this can be a bit of hassle.

If you’re coming from another language just remember the if statement is a function and requires 3 parameters.

Photo of author
Ryan Sheehy
Ryan has been dabbling in code since the late '90s when he cut his teeth exploring VBA in Excel. Having his eyes opened with the potential of automating repetitive tasks, he expanded to Python and then moved over to scripting languages such as HTML, CSS, Javascript and PHP.