Where is the IF
function in Netsuite’s saved search area?
It can seem quite odd at first trying to find the standard IF
function in Netsuite’s saved search area, but you are not losing your eyesight, there is no IF
function in Netsuite’s formulas.
Instead of using an IF
function you have two other types of functions available:
CASE
statementDECODE
function
Let’s explore these in a little more detail for your use case.
Where Is NetSuite’s IF
Formula?
The NetSuite IF
formula does not exist in the Saved Search section.
Instead you need to learn how to use the CASE
statement which is helpful if your usage will involve IF-ELSEIF-ELSE
type logic, or the DECODE
function if you have a simple logic check and want to display one result if true and another if false.
Here is the syntax for each expression.
CASE
Statement
The CASE
statement is syntax that is structured as follows:
CASE WHEN condition1 THEN do_this
WHEN condition2 THEN do_that
ELSE do_the_other
END
Here’s what the above code means:
CASE
: this is essential as it defines the beginning of the conditional checks that will be performed.WHEN condition
: this is where you define your logic condition.THEN do_something
: this is where you define what to return should thecondition
preceding betrue
.WHEN condition_N
: this is where you can continue to define more conditions.THEN do_something_N
: this is where you attach what you want to return according to the preceding condition.ELSE do_else
: this is the last result you would like to return should all previous conditions fail.END
: the essential code to define the closure of theCASE
statement. This is useful should you want to nest multipleCASE
statements.
Nesting Multiple IF
Formulas
The beauty of the CASE
statement is that you can nest multiple IF
conditions within the statement.
Here’s how this would look:
CASE WHEN condition_1 THEN
CASE WHEN sub_condition_1A THEN do_this
WHEN sub_condition_1B THEN do_that
END
WHEN condition_2 THEN
CASE WHEN sub_condition_2A THEN do_this
ELSE do_that
END
ELSE do_the_other
END
As you can see you can have as many nested IF
conditions using the CASE
statement in Netsuite’s Saved Search area. However, do be mindful it can be difficult to read and you may want to use a text editor which swaps out tabs for spaces so that when the formula is pasted into your Saved Search you can read it somewhat easier.
Notice also that it’s very important to use the END
clause corresponding to each CASE
to ensure the proper closure of the conditions.
DECODE
Function
Another simpler form of using an IF
condition in your Netsuite saved search is the DECODE
function.
The syntax for the DECODE
function is as follows:
DECODE(expression, search_item_1, result_1, [search_item_2, result_2, ..., default_result])
This function operates very much like the SWITCH
statement where you have an expression to compare against and every capture is defined in the search_item_n
with its result to return in the subsequent parameter result_n
. The final result is the default
returning result.
Therefore, while the DECODE
function can be more than an IF
formula, it can be used as an IF
formula if it is used as follows:
DECODE(expression, item_if_true, result_true, result_false)
This means you can insert into the DECODE
function’s first parameter the value to check, and what the corresponding value of that field will be if true
and then what to return if true and what to return if false.
For example, if I had a Saved Search being performed on Customer records and I wanted to display if a Customer was overdue by a certain amount then I could perform the following IF
condition using a Formula (Text) field with the DECODE
function:
DECODE(INSTR({entityid}, 'WD')
0, 'Active',
'Withdrawn'
)
What this simple DECODE
function I use the INSTR()
function on the Customer’s ID to check if it contains a certain string 'WD'
, if it does not (INSTR()
returns 0 when it cannot find the string) it returns Active
otherwise it returns Withdrawn
.
Summary
As there is no IF
function in a saved search with Netsuite you can use two other popular alternatives CASE
and DECODE
.
CASE
statements allow for nesting, conditional ranges, and complex IF
condition structures, whereas the DECODE
function is limited but can allow for multiple precise criteria, it doesn’t allow for nesting though.