# Nested if/selection statements not working

1677
6
02-16-2021 12:09 PM
New Contributor II

Hello! I am creating a conditional calculation for an integer field based on selection/input in a different field.  To me, this seemed like a simple nested if statement, so please help me fix where I am going wrong with the logic or formatting.

I've attached a word doc with all of the different attempts, but below is the last one I tried, selection options '2'-'6' are domain values for the field name ObstructionImpacted

(if(selected(\${ObstructionImpacted},’2’),5div10), if(selected(\${ObstructionImpacted},’3’),2div10), if(selected(\${ObstructionImpacted},’4’),4div10), if(selected(\${ObstructionImpacted},’5’),1div10), if(selected(\${ObstructionImpacted},’6’),1),0)

So basically the logic I am trying to calculate is:

IF {ObstructionImpacted} = '2' then calculate 5/10

IF {ObstructionImpacted} = '3' then calculate 2/10

IF {ObstructionImpacted} = '4' then calculate 4/10

IF {ObstructionImpacted} = '5' then calculate 1/10

IF {ObstructionImpacted} = '3' then the result is 1

OR the result is 0

Any help would be greatly appreciated! @JamesTedrick

Tags (3)
1 Solution

Accepted Solutions
MVP Esteemed Contributor

Each has it own errors.  Try this one with some spaces missing.  Also all the parens all go at the end.

(if(selected(\${ObstructionImpacted}, ’2’), 5 div 10, if(selected(\${ObstructionImpacted}, ’3’), 2 div 10, if(selected(\${ObstructionImpacted}, ’4’), 4 div 10, if(selected(\${ObstructionImpacted}, ’5’), 1 div 10, if(selected(\${ObstructionImpacted}, ’6’), 1 , 0)))))

Hope that does it

6 Replies
MVP Esteemed Contributor

Each has it own errors.  Try this one with some spaces missing.  Also all the parens all go at the end.

(if(selected(\${ObstructionImpacted}, ’2’), 5 div 10, if(selected(\${ObstructionImpacted}, ’3’), 2 div 10, if(selected(\${ObstructionImpacted}, ’4’), 4 div 10, if(selected(\${ObstructionImpacted}, ’5’), 1 div 10, if(selected(\${ObstructionImpacted}, ’6’), 1 , 0)))))

Hope that does it

New Contributor II

That did it! Thank you SO MUCH! This helps me write several more codes in my form as well; I really appreciate it.

Occasional Contributor

I'm having a similar issue with this kind of nested if statement.  I'm not sure if I am able to do a calculation like this with text instead of numbers. What I am trying to do is add a hidden field of "category."  I want some utilities labeled as Water, or Sanitary, or Storm all in one field.

Would someone look to see what I'm doing wrong, because I keep getting this automatic entry on the actual survey: ReferenceError: Water is not defined in expression.

(if(selected(\${utility}, 'Hydrant'), Water Distribution, if(selected(\${utility}, 'Gate Valve'), Water Distribution, if(selected(\${utility}, 'Curb Stop'), Water Distribution, if(selected(\${utility}, 'Sanitary Manhole'), Sanitary Sewer, if(selected(\${utility}, 'Clean Out'), Sanitary Sewer, if(selected(\${utility}, 'Storm Manhole'), Storm Drain, if(selected(\${utility}, 'Inlets/Catch Basin'), Storm Drain, Other))))))))

Thank you!

Esri Contributor

Hi Kaitlyn

You just needed to put single quotes around the true parts of your if statement:

(if(selected(\${utility}, 'Hydrant'), 'Water Distribution', if(selected(\${utility}, 'Gate Valve'), 'Water Distribution', if(selected(\${utility}, 'Curb Stop'), 'Water Distribution', if(selected(\${utility}, 'Sanitary Manhole'), 'Sanitary Sewer', if(selected(\${utility}, 'Clean Out'), 'Sanitary Sewer', if(selected(\${utility}, 'Storm Manhole'), 'Storm Drain', if(selected(\${utility}, 'Inlets/Catch Basin'), 'Storm Drain', 'Other'))))))))

It was complaining about 'water' not being a defined expression because it was the first string that wasnt quoted in single quotations.

Hope that helps. If there's still issues then please post your survey, it would make it easier to assist

Occasional Contributor

Thanks so much!  Worked like a charm!

MVP Esteemed Contributor

If it gets any bigger than this use pulldata to go get the category it will be easier.